Skip to content

Windows warm AMI: optional --generalize (sysprep) for fleet/unique-SID use #101

Description

@scttfrdmn

Follow-up to #98 (warm AMI baked into spawn image import).

#98 ships a non-generalized warm AMI: it images a fully-booted seed, so every
instance launched from it shares the seed's machine SID. That's correct for
spawn's ephemeral single-instance model and was verified to boot fast (SSM-ready
~4 min vs ~28 min cold).

For fleet/multi-instance or domain-join scenarios that need unique SIDs, add an
optional --generalize: before imaging the seed, run EC2Launch/Sysprep
generalize (e.g. via SSM RunCommand: the EC2Launch v2 sysprep task, or
C:\ProgramData\Amazon\EC2Launch\settings\... ; ec2launch sysprep), let it
shut down, then image. The generalized warm AMI re-specializes on launch (still
far faster than the raw import, just not as instant as non-generalized).

Considerations:

  • Sysprep generalize on Win11 client has limits (e.g. provisioned appx packages
    can fail it); needs testing.
  • Must handle the seed shutting itself down (image a stopped instance) vs the
    current running-image flow.
  • Keep non-generalized the default.

Refs #98.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:windowsWindows AMIs, RDP, SSM on Windows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions