|

インスタンスの イメージID を取得する | AWS サンプルプログラム

AWS の Windows 環境におけるPowershell サンプルプログラムを紹介します。

インスタンスの イメージID を取得するサンプルプログラムです。



PS> Set-Variable -name ID -value(Invoke-RestMethod -uri "http://169.254.169.254/latest/dynamic/instance-identity/document/")
$imageId=$ID.imageId
echo $imageId


以下はプログラムの実行例です。




PS C:\> Set-Variable -name ID -value(Invoke-RestMethod -uri "http://169.254.169.254/latest/dynamic/instance-identity/document
/")
PS C:\> $imageId=$ID.imageId
PS C:\> echo $imageId
ami-********


補助説明

インスタンスメタデータをメタデータを提供するサーバから取得することが可能です。
これによりインスタンス自身のデータなら、CLI など使用せずに簡単に情報を取得することが可能です。

例えばインスタンス自身のパブリックIPアドレスやリージョンなどはWindows や Linuxの機能では取得できません。
通常は CLI などにより AWS の APIを発行して取得することができますが、インスタンスメタデータを使用すればCLIなどを使用することなく簡単に取得することが可能です。
ただし自分自身の情報のみであり、他のインスタンスの情報は取得できません。

メタデータを取得するサーバの IPアドレスは 169.254.169.254 です。
これはローカルリンクアドレスと呼ばれていて自分自身のネットワークからのみ有効です。

インスタンス上のブラウザから でアクセスすることが可能です。デバッグなどが簡単に可能です。

EC2 インスタンスのメタデータ取得



http://169.254.169.254/

認証エラー


CLI のコマンドで以下のエラーが発生する場合はクレデンシャルが構成されていません。

An error occurred (AuthFailure) when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials


もしコマンドを実行している機器がEC2インスタンスなら適切なロールを設定することを推奨します。
その他の機器の場合は次のページを参考にしてクレデンシャルを設定してください。認証情報はとても重要なので取り扱いの十分注意してください。

https://awsjp.com/AWS/Faq/c/cli-secretkey-enviroment-6FE4.html


メタデータによる情報取得 へ戻る