클라우드/AWS

[Mac OS]ECS exec format error (ECR, ECS 오류, task, cluster)

chanstory 2023. 1. 25. 23:41
반응형

ECS cluster를 통해 service 배포 중 

 

 

exec format error 이라는 에러가 떴다.

 

Mac M1 환경에서 빌드된 이미지를 통해 Task definition 을 진행하여 서비스를 배포시도를 하고 있는 상황이다.

(git 으로 code push 시 Github Action 을  통한 이미지 자동 빌드 및 ECR로 push)

 

 

오류 원인

- Task Definition 시 운영체제/아키텍처 선택 오류

Fargate 는 x86 아키텍쳐만 지원하므로 Mac M1 환경에서 이미지를 빌드할 때

아래와 같은 코드 수정이 필요하다. 

#FROM node:16   //x86
FROM --platform=linux/amd64 node:16-alpine   // ARM64

임시로 도커 빌드 시 platform 을 명시하여 이미지 빌드 시 x86 아키텍처에도 적용될 수 있도록 한다.

 

이외의 방법으로는

 

로컬에서 빌드된 이미지를 통한 태스크 정의 = ARM64 아키텍처 적용

 

Github Action 에서 빌드된 이미지를 통한 태스크 정의 = x86 아키텍처 적용

 

위 방법이 있다.

 

코드에서 platform 을 명시해주는것이 현재 실습환경에서는 더 유용한 방법 이다.

 

반응형