본문 바로가기

Development/Linux

t4g EC2 서버(arm64)를 위한 Docker Image Build 방법

 

Amazon EC2 T4g 인스턴스는 Arm 기반 AWS Graviton2 프로세서로 구동됩니다. T4g 인스턴스는 버스트 가능한 차세대 저비용 범용 인스턴스 유형으로, 기본 수준의 CPU 성능과 함께, 필요할 때는 언제든지 CPU 사용량을 버스트할 수 있는 기능을 제공합니다. T3 인스턴스보다 최대 40% 더 향상된 가격 대비 성능을 제공하며 사용 중에 일시적인 스파이크를 경험하는 중간 정도의 CPU 사용량을 가진 애플리케이션을 실행하는 데 적합합니다.

T4g 인스턴스는 대규모 마이크로서비스, 중소형 데이터베이스, 가상 데스크톱 및 비즈니스 크리티컬 애플리케이션을 비롯하여 다양한 범용 워크로드를 위해 컴퓨팅, 메모리 및 네트워크 리소스를 균형 있게 제공합니다. 또한 개발자는 이러한 인스턴스를 사용하여 코드 리포지토리를 실행하고 기본적으로 클라우드에 Arm 기반 애플리케이션을 구축하여 교차 규정 준수 및 에뮬레이션에 대한 필요성을 없애고, 시장 출시를 앞당길 수 있습니다.

 

 

 

 

t4g는 기존 T3 인스턴스보다 최대 40% 더 향상된 가격 대비 성능을 제공한다고 AWS측에서는 이야기하고 있다.

하지만 t4g가 Arm 기반의 프로세서로 구동되다 보니 기존 x86-64용의 Docker Build 형태가 아닌 arm64형태로 Build 하여야 t4g에서 정상적으로 운영이 가능하다.

 

 

주의사항!!!!

래의 방법으로 Arm기반으로 docker 이미지를 Build 하였으나 이는 Base가 arm64를 지원해야 가능하다.

몇몇 Base 이미지가 arm64로 제공되지 않으므로 인스턴스 생성전 꼭 확인해야 한다.

 

확인방법

https://hub.docker.com/ 에서 구성하고자 하는 Base 이미지가 아래와 같이 arm64를 지원하는지 확인 

 

ex1) mysql => arm64 지원

 

ex2) phpmyadmin => arm64 미지원

 

 

docker 이미지 build (arm64)

  • docker desktop 실행후 빌드 가능
  • buildx를 이용하여 arm64 버전으로 빌드
#arm64버전을 별도 tag로 구분하기 위해 arm_v1로 설정함.
docker buildx build --platform linux/arm64 -t mesoft/meoilbackend:arm_v1 .
  • 빌드후 docker desktop에서 빌드된 이미지 확인(ARM64 버전으로 아이콘이 추가됨)