サービスで実行しているクラスターがあり、コマンドラインからfargateタスクを起動することもできます。タスクの起動に対する応答としてtaskArnを取得でき、「aws ecs wait」を使用してタスクが実行状態になるのを待機できます。タスクのパブリックIPを取得する方法がわからない。ウェブページから簡単に見つけることができ、パブリックIP経由でマシンにアクセスできます...
CLIインターフェイスを使用してfargateタスクのパブリックIPを取得するにはどうすればよいですか?
次のコマンドを使用してタスクを起動し、タスクが実行されるのを待って、タスクの説明を取得します。
$ aws ecs run-task --launch-type FARGATE --cluster xxxx --task-definition xxxx --network-configuration xxxx
$ aws ecs wait <taskArn>
$ aws ecs describe-tasks --cluster xxxx --task <taskArn> | grep -i ipv4
最後のコマンドはプライベートIPのみを提供します...
"privateIpv4Address": "10.0.1.252",
"name": "privateIPv4Address"
私も使用してみました:
$ ecs-cli ps --cluster xxxx
ただし、[ポート]列は空白です。
Name State Ports TaskDefinition
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxxx RUNNING xxxx:1
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxxx RUNNING xxxx:1
Describe-tasksがプライベートIPとともにENI IDを提供することに気付いたら、次の方法でパブリックIPを取得できました。
$ aws ec2 describe-network-interfaces --network-interface-ids eni-xxxxxxxx