web-dev-qa-db-ja.com

CLIを使用してfargateタスクのパブリックIPを取得するにはどうすればよいですか?

サービスで実行しているクラスターがあり、コマンドラインから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
9
Mike N.

Describe-tasksがプライベートIPとともにENI IDを提供することに気付いたら、次の方法でパブリックIPを取得できました。

$ aws ec2 describe-network-interfaces --network-interface-ids eni-xxxxxxxx
7
Mike N.