ハンズオン(簡易版): AWS CLI入門

3.2. EC2インスタンス(インスタンスID)の一覧取得

手順の目的

EC2インスタンスの一覧(インスタンスID)を取得します。

設定値の指定

設定値の指定

手順に必要な設定値を変数に格納をします。

0. リージョン

リージョンを指定します。

環境変数の設定:

export AWS_DEFAULT_REGION='ap-northeast-1'

設定値の確認

各変数に正しい設定値が格納されていることを確認します。

変数の確認:

cat << END

  # 0. AWS_DEFAULT_REGION:"ap-northeast-1"
       AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"

END

下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

EC2インスタンスの確認

EC2インスタンスの一覧(タグ名)を確認します。

コマンド:

aws ec2 describe-instances 

結果(例):

{
  "Reservations": [
    {
        "Groups": [],
        "Instances": [
            {
                "AmiLaunchIndex": 0,
                "ImageId": "ami-xxxxxxxxxxxxxxxxx",
                "InstanceId": "i-xxxxxxxxxxxxxxxxx",
                "InstanceType": "t3.micro",
                "LaunchTime": "2023-04-06T01:23:45.000Z",
                "Monitoring": {
                    "State": "disabled"
                },
                "Placement": {
                    "AvailabilityZone": "ap-northeast-1a",
                    "GroupName": "",
                    "Tenancy": "default"
                },
                "PrivateDnsName": "ip-172-31-xxx-xxx.ap-northeast-1.compute.internal",
                "PrivateIpAddress": "172.31.xxx.xxx",
                "ProductCodes": [],
                "PublicDnsName": "ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com",
                "PublicIpAddress": "xxx.xxx.xxx.xxx",
                "State": {
                    "Code": 16,
                    "Name": "running"
                },
                "StateTransitionReason": "",
                "SubnetId": "subnet-xxxxxxxx",
                "VpcId": "vpc-xxxxxxxx",
                "Architecture": "x86_64",
                "BlockDeviceMappings": [
                    {
                        "DeviceName": "/dev/xvda",
                        "Ebs": {
                            "AttachTime": "2023-04-06T01:23:45.000Z",
                            "DeleteOnTermination": true,
                            "Status": "attached",
                            "VolumeId": "vol-xxxxxxxxxxxxxxxxx"
                        }
                    }
                ],
                "ClientToken": "aws-c-Insta-xxxxxxxxxxxxx",
                "EbsOptimized": false,
                "EnaSupport": true,
                "Hypervisor": "xen",
                "IamInstanceProfile": {
                    "Arn": "arn:aws:iam::XXXXXXXXXXXX:instance-profile/handson-cloud9/admin-cloud9-environment-role",
                    "Id": "AIPAXXXXXXXXXXXXXXXXX"
                },
                "NetworkInterfaces": [
                    {
                        "Association": {
                            "IpOwnerId": "amazon",
                            "PublicDnsName": "ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com",
                            "PublicIp": "xxx.xxx.xxx.xxx"
                        },
                        "Attachment": {
                            "AttachTime": "2023-04-06T01:23:45.000Z",
                            "AttachmentId": "eni-attach-xxxxxxxxxxxxxxxxxx",
                            "DeleteOnTermination": true,
                            "DeviceIndex": 0,
                            "Status": "attached"
                        },
                        "Description": "",
                        "Groups": [
                            {
                                "GroupName": "aws-cloud9-handson-cloud9-env-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-InstanceSecurityGroup-xxxxxxxxxxxxx",
                                "GroupId": "sg-xxxxxxxxxxxxxxxxx"
                            }
                        ],
                        "Ipv6Addresses": [],
                        "MacAddress": "06:f3:5d:03:c2:d4",
                        "NetworkInterfaceId": "eni-xxxxxxxxxxxxxxxxx",
                        "OwnerId": "XXXXXXXXXXXX",
                        "PrivateDnsName": "ip-172-31-xxx-xxx.ap-northeast-1.compute.internal",
                        "PrivateIpAddress": "172.31.xxx.xxx",
                        "PrivateIpAddresses": [
                            {
                                "Association": {
                                    "IpOwnerId": "amazon",
                                    "PublicDnsName": "ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com",
                                    "PublicIp": "xxx.xxx.xxx.xxx"
                                },
                                "Primary": true,
                                "PrivateDnsName": "ip-172-31-xxx-xxx.ap-northeast-1.compute.internal",
                                "PrivateIpAddress": "172.31.xxx.xxx"
                            }
                        ],
                        "SourceDestCheck": true,
                        "Status": "in-use",
                        "SubnetId": "subnet-xxxxxxxx",
                        "VpcId": "vpc-xxxxxxxx",
                        "InterfaceType": "interface"
                    }
                ],
                "RootDeviceName": "/dev/xvda",
                "RootDeviceType": "ebs",
                "SecurityGroups": [
                    {
                        "GroupName": "aws-cloud9-handson-cloud9-env-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-InstanceSecurityGroup-xxxxxxxxxxxxx",
                        "GroupId": "sg-xxxxxxxxxxxxxxxxx"
                    }
                ],
                "SourceDestCheck": true,
                "Tags": [
                    {
                        "Key": "aws:cloud9:owner",
                        "Value": "AIDAXXXXXXXXXXXXXXXXX"
                    },
                    {
                        "Key": "aws:cloudformation:stack-id",
                        "Value": "arn:aws:cloudformation:ap-northeast-1:XXXXXXXXXXXX:stack/aws-cloud9-handson-cloud9-env-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                    },
                    {
                        "Key": "aws:cloudformation:stack-name",
                        "Value": "aws-cloud9-handson-cloud9-env-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                    },
                    {
                        "Key": "aws:cloudformation:logical-id",
                        "Value": "Instance"
                    },
                    {
                        "Key": "Name",
                        "Value": "aws-cloud9-handson-cloud9-env-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                    },
                    {
                        "Key": "aws:cloud9:environment",
                        "Value": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                    }
                ],
                "VirtualizationType": "hvm",
                "CpuOptions": {
                    "CoreCount": 1,
                    "ThreadsPerCore": 2
                },
                "CapacityReservationSpecification": {
                    "CapacityReservationPreference": "open"
                },
                "HibernationOptions": {
                    "Configured": false
                },
                "MetadataOptions": {
                    "State": "applied",
                    "HttpTokens": "optional",
                    "HttpPutResponseHopLimit": 1,
                    "HttpEndpoint": "enabled"
                }
            }
        ],
        "OwnerId": "XXXXXXXXXXXX",
        "RequesterId": "331753876576",
        "ReservationId": "r-xxxxxxxxxxxxxxxxx"
    }
  ]
}

queryオプションの利用例

EC2インスタンスの一覧(タグ名)を確認します。

コマンド:

aws ec2 describe-instances \
  --query 'Reservations[].Instances[].InstanceId' \
  --output text

結果(例):

i-xxxxxxxxxxxxxxxxx

完了確認

「EC2インスタンスのタグ名の一覧を取得できている。」ことを確認します。

注釈

主処理で取得できていればOKです。

手順の完了