状況
Fargate のサービスを、パブリックサブネットから新設のプライベートサブネットに移した。直後から新しいタスクが起動後すぐ停止し、停止理由は CannotPullContainerError … request canceled while waiting for connection。イメージとタスク定義は変えていない。
最も疑わしいのは?
- Aプライベートサブネットから ECR へ出る経路
- Bタスク実行ロールの ECR の権限
- Cイメージのタグがリポジトリにあるか
- Dタスク定義の CPU とメモリの組み合わせ
正答
- A
- B
- C
- D
解説
停止理由の request canceled while waiting for connection は、ECR への接続そのものが確立できていないことを示す。権限の不足や存在しないタグなら、ECR から応答が返ったうえでの拒否や not found のエラーになる。しかも変えたのはサブネットだけで、イメージ・タスク定義・ロールは動いていたときのまま(B・C・D は否定)。プライベートサブネットのタスクが ECR からイメージを取得するには、NAT ゲートウェイを通る外向きの経路か、ECR(api と dkr)のインターフェイス型と S3 のゲートウェイ型の VPC エンドポイントが必要になる。直前に変えたものと、エラーが示す層が重なる所を最初に疑う。
この問題を含む AWS のテストを制限時間つきで解く
AWSクイズへ