AWS CLI を使用して、EC2 インスタンスで実行されている OS を確認する方法を教えてください。
このec2 describe-instance
コマンドは多くの情報を吐き出しますが、OS を示すものは何もありません。
私もec2 describe-images
特定の画像を試してみました。繰り返しますが、OSの兆候はないようです。
ヘルプ..?
AWS CLI を使用して、EC2 インスタンスで実行されている OS を確認する方法を教えてください。
このec2 describe-instance
コマンドは多くの情報を吐き出しますが、OS を示すものは何もありません。
私もec2 describe-images
特定の画像を試してみました。繰り返しますが、OSの兆候はないようです。
ヘルプ..?
少なくとも Windows と Linux を区別する Platform フィールドを一覧表示する簡単な方法を次に示します。
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,Platform]' --output text
i-78b4ef47 windows
i-b8ae3386 windows
i-9d3611a2 None
i-1c57c651 windows
i-a241ec91 None
i-7d26b630 None
インスタンスの特定の OS を AWS cli からクエリすることはできませんが、インスタンスのベースとなっている AMI をクエリすることはできます。また、「OS」属性を取得することはできませんが、AMI のDescription
またはName
を取得できるため、意味のある説明で AMI を作成すると、それを機能させることができます。
$ aws ec2 describe-images --image-ids "ami-xxxxxxxx"
{
"Images": [
{
"VirtualizationType": "paravirtual",
"Name": "amazon-linux-20130509",
"Tags": [
{
"Value": "amazon-linux-20130509",
"Key": "Name"
}
],
"Hypervisor": "xen",
"ImageId": "ami-xxxxxxxx",
"RootDeviceType": "ebs",
"State": "available",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sda1",
"Ebs": {
"DeleteOnTermination": true,
"SnapshotId": "snap-xxxxxxxx",
"VolumeSize": 100,
"VolumeType": "standard"
}
}
],
"Architecture": "x86_64",
"ImageLocation": "123456789012/amazon-linux-20130509",
"KernelId": "aki-fc37bacc",
"OwnerId": "123456789012",
"RootDeviceName": "/dev/sda1",
"Public": false,
"ImageType": "machine",
"Description": "Amazon Linux"
}
]
}
詳細を知りたい場合は、いつでも独自のスクリプトを記述してマシンに ssh し、cat /etc/issue
それぞれのマシンで実行できます。