VM Import License Type and License Manager BYOL Conversion
VM Import License Type and License Manager BYOL Conversion
A Windows instance imported via VM Import/Export without specifying --license-type BYOL defaults to Amazon-provided Windows licensing (incurring extra license fees). Can it be converted to BYOL afterwards? Yes, via License Manager.
Core Concepts
Conversion Eligibility
| Instance Source | Can Convert to BYOL |
|---|---|
| Own VM imported via VM Import/Export | Yes |
| Launched from an AWS-provided AMI | No |
Usage Operation Mapping
| Platform Details | Usage Operation | Meaning |
|---|---|---|
| Windows | RunInstances:0002 | Amazon-provided Windows license (charged) |
| Windows BYOL | RunInstances:0800 | Bring-your-own-license (no license fee) |
Prerequisites
- The instance must be a VM Import (your media), not launched from an AWS-provided AMI
- The instance must be associated with SSM Inventory
- You must have your own KMS server for Windows activation
Steps
1. Confirm the current license type
aws ec2 describe-instances \
--instance-ids <instance-id> \
--query "Reservations[*].Instances[*].{PlatformDetails:PlatformDetails,UsageOperation:UsageOperation}"Confirm UsageOperation is RunInstances:0002 (license included).
2. Switch the KMS address to your own KMS server
The conversion path requires modifying the Windows KMS configuration to point to your own KMS first:
slmgr.vbs /skms <your-kms-address>3. Stop the instance
aws ec2 stop-instances --instance-ids <instance-id>4. Initiate the license type conversion
aws license-manager create-license-conversion-task-for-resource \
--resource-arn arn:aws-cn:ec2:cn-northwest-1:<account-id>:instance/<instance-id> \
--source-license-context UsageOperation=RunInstances:0002 \
--destination-license-context UsageOperation=RunInstances:08005. Monitor conversion status
aws license-manager get-license-conversion-task \
--license-conversion-task-id <task-id> \
--query "{Status:Status,StatusMessage:StatusMessage}"Status: IN_PROGRESS -> SUCCEEDED (usually 1-2 minutes).
6. Start the instance and activate Windows
aws ec2 start-instances --instance-ids <instance-id>RDP in and activate:
slmgr.vbs /ato7. Verify
aws ec2 describe-instances \
--instance-ids <instance-id> \
--query "Reservations[*].Instances[*].{PlatformDetails:PlatformDetails,UsageOperation:UsageOperation}"Expected: PlatformDetails = "Windows BYOL", UsageOperation = "RunInstances:0800".
Console Path
License Manager -> License type conversion -> Create -> Source OS "Windows with included license" -> Select instance -> Select target license type -> Start conversion.
Bonus: Specify BYOL at VM Import time
To avoid post-hoc conversion, specify BYOL on the next import:
aws ec2 import-image \
--license-type BYOL \
--disk-containers "Format=VMDK,UserBucket={S3Bucket=<bucket>,S3Key=<file.vmdk>}"Without --license-type, Windows Server defaults to --license-type AWS (license included).
Notes
- Do not start/stop the instance while conversion is in progress
- "Windows Server BYOL + SQL Server license included" is not a supported combination
- After conversion, the AMI billing-product field does not change; use
DescribeInstancesfor accurate billing - The instance must be stopped and associated with SSM Inventory for License Manager console to display it
