概要
タイトルのままです。
ECSクラスターを作成し、そのクラスターの中にEC2を立て、
そのEC2を使ってタスク定義からECSタスクを起動すると、そのECSタスクから外界に接続できないエラーとなり、ハマっていました。
症状
EC2は起動テンプレートを利用して作成していました。
また、ECSのネットワークはawsvpc を利用しており、エラーとなっていたのでその後bridgeにしました。
やりたかったことは、ECSタスクからS3にアクセスしてファイルをダウンロードすることでした。
が、エラーとなっていたので、以下のことを試しました。
- EC2にSSHして、EC2からS3にアクセスできることを確かめる(できた)
- ECS Task に EC2からDocker exec し、pythonのrequests などを送ってyahoo.co.jp とかにそもそも接続できるかやった(エラーとなった)
解決策
EC2を起動テンプレートから作成していたのですが、
その起動テンプレートに紐ついているSubnetをパブリックにすることで解決しました。
また、ECSネットワークはbridge にしました。
その際、タスク定義に書くEC2とのポートマッピングは空欄で大丈夫でした。
以上。