AWS ECS Task 생성시 나타나는 standard_init_linux.go:228: exec user process caused: exec format error 에러 해결

AWS ECS Task 생성시 나타나는 standard_init_linux.go:228: exec user process caused: exec format error 에러를 해결 하는 방법에 대해서 정리해 봤습니다.
2022.06.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS ECS Task 생성시 나타나는 standard_init_linux.go:228: exec user process caused: exec format error 에러를 해결 하는 방법에 대해서 정리해 봤습니다.

에러 발생

standard_init_linux.go:228: exec user process caused: exec format error

ECS Task를 생성하고 기다려보면, 계속 Pending과 Provisioning 상태가 반복 되는 것을 확인

로그를 확인해 보니 다음과 같은 에러가 발생

Task 상태를 확인해 보면 계속 멈추고 실행시키는 작업이 반복 되고 있는 것을 볼 수 있습니다.

에러 해결

standard_init_linux.go:228: exec user process caused: exec format error

다음과 같은 에러 원인은 먼저 Mac M1에서 일부 이미지를 지원하지 않기 때문입니다.

docker build -t ecs-nginx .

따라서 다음과 같이 dockerfile을 build 할 시, 다른 아키텍처에서 build된 이미지로 인식해서 에러가 발생합니다.

docker build --platform=linux/amd64 -t ecs-nginx .

그렇기 때문에「platform」이라는 옵션을 추가해서 아키텍처를 지정해줄 필요가 있습니다.

이 상태에서 다시 태스크를 만들어서 확인해 보면 Running 상태로 바뀐 것을 확인할 수 있습니다.

ALB의 DNS로 접속해 보면 문제 없이 웹 페이지가 출력되는 것을 확인할 수 있습니다.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !