꺼내먹어요

AWS Lambda Image Architecture - arm64, x86_64의 차이

양승길 2025. 2. 20. 08:36

1. 아키텍처의 기본적인 차이:
- x86_64: Intel/AMD의 전통적인 컴퓨터 프로세서 아키텍처
- ARM64: 모바일 기기에서 시작해서 서버까지 확장된, 전력 효율적인 RISC 기반 아키텍처

2. AWS Lambda의 환경:
- AWS는 비용 효율성과 성능을 위해 Graviton2/3 프로세서(ARM64 기반)를 많이 사용
- Lambda 실행 환경이 ARM64인데 x86_64로 빌드된 이미지를 실행하려고 하면 CPU 명령어 세트가 달라서 실행 불가

3. 실패 원인:
```
RequestId: 9f3fce15-e2b9-47ab-b906-47c9aa5eceb6 Error: fork/exec /lambda-entrypoint.sh: exec format error
```
이 에러는 바이너리가 현재 CPU 아키텍처에서 실행될 수 없다는 것을 의미합니다.

4. 해결 방법:
```dockerfile
# 빌드 시 플랫폼 명시
docker build --platform linux/arm64/v8 ...
```
이렇게 하면 ARM64용 바이너리가 생성되어 Lambda 환경에서 정상 실행됩니다.

반응형