LoginSignup
0
1

Amazon linux 2023でインスタンスメタデータを利用

Posted at

前置き

現在、EC2のOSを「Amazon linux 2」 から「Amazon linux 2023」へ移行する行検証をしております。
その中で判明した事象の一つである、インスタンスメタデータ取得方法の変更について記録しておきます。

実施したいこと

EC2上で動くバッチ上で、サーバーのインスタンスIDを取得したい

Amazon linux 2023でインスタンスメタデータからインスタンスIDを取得する方法(お急ぎの方はこちらだけ)

amazonlinux2023_test.sh
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
INSTANCE_ID=`curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/instance-id`
echo $INSTANCE_ID

検証の経緯

そもそもインスタンスメタデータとは?

インスタンスメタデータは「インスタンスに関するデータ」のことで、実行中のインスタンス自身から取得できるようになっております。
取得できるデータはamiのidやセキュリティグループなど、多岐にわたります。

↓AWS公式ドキュメント
・インスタンスメタデータとは

・取得されるインスタンスメタデータ一覧

Amazon linux 2の際の取得方法

以下の1行でインスタンスIDが取得できていました。

amazonlinux2_test.sh
INSTANCE_ID=`curl -s http://169.254.169.254/latest/meta-data/instance-id`

Amazon linux 2023の際の取得方法(失敗)

amazon linux2と同じバッチファイルを実行したところ、なぜかエラーが発生。
確認したところ、インスタンスIDが取得できていませんでした。
コマンドで実施しても何も出ません。

[root@ip-xxx ~]# INSTANCE_ID=`curl -s http://169.254.169.254/latest/meta-data/instance-id`
[root@ip-xxx ~]# echo $INSTANCE_ID

[root@ip-xxx ~]# curl -s http://169.254.169.254/latest/meta-data/instance-id
[root@ip-xxx ~]#

Amazon linux 2023の変更点

インスタンスメタデータサービスバージョン 2 (IMDSv2)からでしかメタデータが取得できなくなっておりました。
このため、上記のバッチで使っているコマンド(旧バージョン)では取得できなかったようです。

・2023の公式FAQ

・インスタンスメタデータサービスバージョン 2 (IMDSv2)について

ということで、インスタンスメタデータサービスバージョン 2 (IMDSv2)で再度実施してみます。

Amazon linux 2023でインスタンスメタデータからインスタンスIDを取得する方法

[root@ip-xxx ~]# TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    56  100    56    0     0  11247      0 --:--:-- --:--:-- --:--:-- 14000
[root@ip-xxx ~]# INSTANCE_ID=`curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/instance-id`
[root@ip-xxx ~]# echo $INSTANCE_ID
i-xxxxxxxxxx

無事インスタンスIDが取得できました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1