0
1

[ECS] CPUアーキテクチャ違いでクラスターのタスクが強制停止になってしまう件について。

Posted at

目的

CPUアーキテクチャの違いを解決し、タスクが強制停止されないようにする

前提

  • ECRにdocker イメージプッシュ済み
  • タスク定義作成済み

タスクが強制停止になってしまう?!

タスク定義を作成後、クラスターでタスクを起動設定しました
ただ、タスクがいつまでも実行中になりません
タスクのログを確認すると以下のようにエラーが出ています

exec format error

タスクログ___Elastic_Container_Service___ap-northeast-1.png

少し時間がタスクが停止してしまいました

image.png

タスクが期限を損ね、いなくなっちゃいました
image.png

原因は?

CPUアーキテクチャの違いが原因のようです

タスク定義の作成に利用したECRにプッシュされたdockerイメージは以下の構成になっています

  • OS
    • linux
  • CPUアーキテクチャ
    • arm64
❯ docker image inspect aaaabbbbcccc

## 結果が長いので必要なところだけ↓
        "Architecture": "arm64",
        "Os": "linux",
        

タスク定義を作成する際、OS/アーキテクチャの設定をデフォルト(Linux/X86_64)としていたため、食い違いが発生し、今回のエラーが起きたようです

タスク定義の設定の際、Linux/ARM64に修正しておきましょう

Elastic_Container_Service___ap-northeast-1.png

再び、クラスター上でタスクを実行すると正常に動作しました

クラスタータスク___Elastic_Container_Service___ap-northeast-1.png

コンテナのログにて起動していることが確認できました

image.png

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1