それでも気分は高専生

元高専生が自分のやってきたことを記事として残すためのてきとーなブログ

Fargateでタスク定義実行時,ECRからイメージの取得に失敗

問題

  • タスク定義を走らせると状態が PENDING → STOPPED
  • CloudWatchにもログが貯まっていない
  • エラーメッセージは
    CannotPullContainerError: Error response from daemon: Get <Repository URL>: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

原因

いつも通りGitHub Issueの紹介記事になっちゃうのですが,原因はこれでした.

Fargate: CannotPullContainer located on ECS registry · Issue #1128 · aws/amazon-ecs-agent · GitHub

ECSはインターネットアクセス経由でイメージを取得するのでFargate側からインターネットへアクセスできるようにする 必要がある. - Public IPを使うなら0.0.0.0/0へのアウトバウンドをインターネットゲートウェイへルーティングしているか,
- Public IPを使わないなら0.0.0.0/0をNATゲートウェイ/インスタンスへルーティングさしているか,
- Security Groupが0.0.0.0/0へのアウトバウンドを許可しているか,
確認して.

とのこと.

結果

Public IPの自動割り当てを許可したら走りました.