📝
[小ネタ] AWS CLI バージョン 2 は EC2 インスタンスメタデータからリージョン情報を取得している
aws-cli should set default region to EC2 instance region · Issue #486 · aws/aws-cli
This has been implemented in v2: #3680 and it pulls region from the instance metadata service by default.
AWS CLI のバージョンによって以下の違いがあることを確認できました。
- AWS CLI バージョン 1 で EC2 インスタンスメタデータからリージョン情報を取得していない
- AWS CLI バージョン 2 は EC2 インスタンスメタデータからリージョン情報を取得している
Amazon Linux 2 での確認
AWS CLI v2 - Amazon Linux 2023
AL2023 ships with AWS CLI version 2, whereas AL2 ships with version 1 of the AWS CLI.
Amazon Linux 2 には AWS CLI バージョン 1 がインストールされているので、Amazon Linux 2 の AMI から EC2 インスタンスを作成して確認してみます。
$ aws ec2 describe-images \
--owners amazon \
--filters "Name=name,Values=amzn2-ami-hvm-2.0.*-x86_64-gp2" \
--query 'sort_by(Images, &CreationDate)[-1].ImageId'
"ami-0c40d378a8f941c31"
上記 AMI ID から作成した EC2 インスタンスではリージョン情報が設定されていませんでした。
$ aws --version
aws-cli/1.18.147 Python/2.7.18 Linux/4.14.355-280.708.amzn2.x86_64 botocore/1.18.6
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************K2JR iam-role
secret_key ****************sL9z iam-role
region <not set> None None
Amazon Linux 2023 での確認
Amazon Linux 2023 には AWS CLI バージョン 2 がインストールされているので、Amazon Linux 2023 の AMI から EC2 インスタンスを作成して確認してみます。
$ aws --version
aws-cli/2.30.4 Python/3.9.24 Linux/6.1.158-178.288.amzn2023.x86_64 source/x86_64.amzn.2023
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************HWQP iam-role
secret_key ****************eAaH iam-role
region ap-northeast-1 imds
以上より、AWS CLI バージョン 2 ではリージョン情報を自動で取得していることを確認できました。
まとめ
今回は AWS CLI バージョン 2 は EC2 インスタンスメタデータからリージョン情報を取得しているという内容を紹介しました。
どなたかの参考になれば幸いです。
Discussion