Amazon Linux EC2 インスタンスのプライベート IP アドレスをそのインスタンス内のコマンドラインから返すには、どのような具体的な構文を使用できますか?
これまでに、私は次のことを思いつきました:
# Get private IP from inside the instance by filtering inside the following:
instanceid=$(curl http://169.254.169.254/latest/meta-data/instance-id)
echo $instanceid
aws ec2 describe-instances --instance-id $instanceid --region us-west-2
ただし、これらのコマンドを EC2 インスタンス内で自分で入力すると、上記の 3 行によって膨大な出力が生成され、手動でフィルタリングするのが困難になります。
インスタンスのプライベート IP のみを返し、他の情報は返さない 1 行または 2 行のコードを提案してもらえますか?
答え1
$ curl http://169.254.169.254/latest/meta-data/local-ipv4
インスタンスのプライベート IPv4 アドレス。複数のネットワーク インターフェイスが存在する場合、これは eth0 デバイス (デバイス番号が 0 のデバイス) を指します。
https://docs.aws.amazon.com/AWSEC2/latest/ユーザーガイド/ec2-instance-metadata.html
あるいは:
$ ec2metadata --local-ipv4