web-dev-qa-db-ja.com

IPアドレスに基づいてaws ec2インスタンスIDを取得することは可能ですか?

アドレス指定されたIPのリストを持っています。そのIPアドレスに関連付けられたインスタンスがまだ実行中または終了しているかどうかを確認したいと思います。私は毎日多くのインスタンスを起動して終了していますが、puppetmasterから証明書を削除したいだけです。

別の方法があれば、目標を達成できます。

8
Ramesh Kumar

aws ec2 describe-instances --filter Name=ip-address,Values=IP_1,..IP_N

必要なことを行う必要があります。

vPCでプライベートアドレスを使用することを選択するには、private-ip-addressのフィルター名を使用します。

のようなものを通してパイプ

jq -r '.Reservations[].Instances[] | .InstanceId, .PublicIpAddress'

対応するInstanceIDが必要な場合

11
Jamie W

別のアプローチは、終了するEC2インスタンスをリッスンするために CloudWatch Events を使用し、リスナー( Lambda関数 か、またはSQSをリッスンするカスタムサービス)を使用することです)対応する証明書をPuppetから削除します。

参照:

1
markusk

これをbashスクリプトで使用する場合は、-queryおよび--output形式を使用できます。

aws ec2 describe-instances --filter Name=private-ip-address,Values=x.x.x.x --query 'Reservations[].Instances[].InstanceId' --output text

これはjsonフォーマットなしであなたにテキスト応答を与えます

i-03c1ad0d6abe32323
1
Mihir Bhende