やったこと
ローカルでビルドしたDockerイメージをもとにECS Fargateでタスクを起動
エラー内容
exec /usr/local/bin/yarn: exec format error
原因
FargateのCPUアーキテクチャとDockerイメージをビルドしたCPUのアーキテクチャが異なることが原因。
自分の場合はMacのM1でdockerイメージをビルドしたが、Fargateではx86_64を指定していた。
CPUアーキテクチャは下記コマンドで確認可能
$ uname -m
arm64
対応
Dockerイメージをビルドする際に --platform
オプションでCPUアーキテクチャも指定する
docker pull --platform=linux/amd64 node:18-alpine