こんにちは、フルスタックエンジニアのryuです。
今回の記事は、AWSのFargateで出たエラーの対処方法について解説します。Fargateで以下のようなエラーがでました。
AWS Fargate ResourceInitializationError: unable to pull secrets or registry auth: pull command failed: : signal: killed
対処方法は、パブリックIPの自動割り当てを「ENABLED」にすることです。さらに詳しく解説します。
AWS Fargate ResourceInitializationErrorというエラーが出た場合の対処方法を解説
エラーの詳細
Fargateのタスクの起動が失敗して、ステータスが「STOPPED」になっていました。エラーを確認すると以下のように出ていました。
エラーを翻訳してみると、
AWS Fargate ResourceInitializationError:シークレットまたはレジストリ認証をプルできません:プルコマンドが失敗しました::シグナル:killed
とりあえず、pullが失敗しているらしい。エラーについて調べてみると、こちらの記事を発見しました。
英語記事でしたが、解決方法が載っていたので参考にさせていただきました。
エラーの解決方法
エラーの解決方法は、パブリックIPの自動割り当てを「ENABLED」にすることです。
まず、「新しいタスクの実行」をクリックします。
その中のパブリックIPの自動割り当てを「ENABLED」に設定します。
これで完了です!タスクが正常に起動されることが分かります。
パブリックIPを取得しても失敗する場合
パブリックIPを取得しても失敗する場合は、ルーティングテーブルに問題があるかもしれません。
VPC のルーティングテーブルには、送信トラフィックをインターネットゲートウェイに送信するためのルートが含まれていないとインターネットへアクセスができません。その場合も、エラーが発生します。
0.0.0.0/0 トラフィックをインターネット ゲートウェイにルーティングする設定をVPCのルーティングテーブルに設定しましょう。
関連:【AWS】VPCとは?初心者でも理解できるように概要を1から解説!
まとめ
今回の記事では、AWS Fargate ResourceInitializationErrorというエラーが出た場合の対処方法を解説しました。
Fargateのエラーについては英語の記事はありますが、日本語の記事は少ないです。ハマるとけっこうな時間が掛かるので、英語のブログなどを探してみると良い対処方法が載っています!
当ブログでは、このようなITに関する記事を発信しているので興味のある方は引き続きご覧ください。