カマカマの雑草ブログ

個人の日記です

Amazon ECSでコンテナから外への通信がタイムアウトするときはネットワークモードを見直す

タイトルのとおりです。

問題

ECSのあるクラスタで、コンテナ内部でhttpsに対してリクエストを送る処理があるタスクをEC2起動タイプで実行したときにタイムアウトが発生してエラーで終わる。 タスク定義上のネットワークモードはawsvpcであり、vpc上のネットワークACLとSecurityGroupのアウトバウンドは正しく設定してある状態。

原因

awsvpc ネットワークモードは、EC2 起動タイプを使用するタスクには、パブリック IP アドレスを使用する Elastic Network Interface を提供しません。
EC2 起動タイプを使用するタスクでインターネットにアクセスするには、NAT ゲートウェイを使用するよう設定されたプライベートサブネットでタスクを起動する必要があります。詳細については、Amazon VPC ユーザーガイドの「NAT ゲートウェイ」を参照してください。

パブリックサブネット内で起動されるタスクには、アウトバウンドのネットワークにアクセスできません。
上記の制限は FARGATE 起動タイプを使用するタスクには適用されません。

タスクネットワーキングと awsvpc ネットワークモード - Amazon Elastic Container Service

なるほど

対応

ネットワークモードをbridgeにしたら動きました。よかったですね。