Amazon ECS 최적화 Linux AMI

Amazon ECS 최적화 Linux AMI

Amazon ECS는 컨테이너 워크로드를 실행하기 위한 요구 사항과 권장 사항이 사전 구성된 Amazon ECS 최적화 AMI를 제공합니다. 이 글에서는 Amazon Linux 2023과 Amazon Linux 2 기반의 AMI 변형을 알아봅니다.

출처: 문서

본문

중요: Amazon ECS 최적화 Amazon Linux 2 AMI는 업스트림 Amazon Linux 2 운영 체제의 EOL 날짜와 동일한 2026년 6월 30일에 수명 종료(EOL)에 도달합니다(자세한 내용은 Amazon Linux 2 FAQ 참고). 애플리케이션이 2028년까지 장기 지원을 포함하는 Amazon Linux 2023을 사용하도록 업그레이드할 것을 권장합니다. Amazon Linux 2에서 Amazon Linux 2023으로 마이그레이션하는 방법은 Amazon Linux 2 Amazon ECS 최적화 AMI에서 Amazon Linux 2023 Amazon ECS 최적화 AMI로 마이그레이션 문서를 참고하세요.

기본적으로 모든 Amazon ECS 최적화 AMI의 폐기(deprecation) 날짜는 AMI 생성 날짜로부터 2년 후로 설정됩니다. Amazon EC2 DescribeImages API를 사용해 AMI의 폐기 상태와 날짜를 확인할 수 있어요. 자세한 내용은 Amazon Elastic Compute Cloud API Reference의 DescribeImages 문서를 참고하세요.

Amazon ECS는 컨테이너 워크로드를 실행하기 위한 요구 사항과 권장 사항이 사전 구성된 Amazon ECS 최적화 AMI를 제공합니다. Amazon EC2 인스턴스에는 Amazon ECS 최적화 Amazon Linux 2023 AMI를 사용할 것을 권장합니다. 가장 최근의 Amazon ECS 최적화 AMI에서 컨테이너 인스턴스를 실행하면 최신 보안 업데이트와 컨테이너 에이전트 버전을 받을 수 있어요. 인스턴스 실행 방법은 Amazon ECS Linux 컨테이너 인스턴스 시작 문서를 참고하세요.

콘솔을 사용해 클러스터를 만들 때 Amazon ECS는 선택한 운영 체제와 연결된 최신 AMI로 인스턴스용 시작 템플릿(launch template)을 만듭니다. CloudFormation으로 클러스터를 만들 때 SSM 파라미터는 Auto Scaling 그룹 인스턴스의 Amazon EC2 시작 템플릿의 일부입니다. 템플릿을 동적 Systems Manager 파라미터를 사용하도록 구성하여 배포할 Amazon ECS 최적화 AMI를 결정할 수 있어요. 이 파라미터는 스택을 배포할 때마다 EC2 인스턴스에 적용해야 하는 사용 가능한 업데이트가 있는지 확인하도록 보장합니다. Systems Manager 파라미터 사용 예시는 AWS CloudFormation 사용자 가이드의 Amazon ECS 최적화 Amazon Linux 2023 AMI로 Amazon ECS 클러스터 생성 문서를 참고하세요.

Amazon ECS 최적화 AMI를 사용자 지정해야 한다면 GitHub의 Amazon ECS Optimized AMI Build Recipes 문서를 참고하세요.

Amazon Linux 2023 운영 체제용 AMI

다음 Amazon ECS 최적화 AMI 변형이 Amazon Linux 2023 운영 체제의 Amazon EC2 인스턴스에 사용 가능합니다.

Amazon Linux 2023 — Amazon ECS-optimized Amazon Linux 2023 AMI

Amazon Linux 2023은 AWS의 차세대 Amazon Linux입니다. 대부분의 경우 Amazon ECS 워크로드용 Amazon EC2 인스턴스 실행에 권장됩니다. 자세한 내용은 Amazon Linux 2023 사용자 가이드의 Amazon Linux 2023이란 무엇인가 문서를 참고하세요.

Amazon Linux 2023 (arm64) — Amazon ECS-optimized Amazon Linux 2023 (arm64) AMI

Amazon Linux 2023 기반으로, Arm 기반 AWS Graviton/Graviton 2/Graviton 3/Graviton 4 프로세서로 구동되는 Amazon EC2 인스턴스 실행에 권장되는 AMI입니다. 자세한 내용은 Amazon EC2 Instance Types 가이드의 Amazon EC2 범용 인스턴스 사양 문서를 참고하세요.

Amazon Linux 2023 (Neuron) — Amazon ECS-optimized Amazon Linux 2023 AMI

Amazon Linux 2023 기반으로, Amazon EC2 Inf1, Trn1 또는 Inf2 인스턴스용 AMI입니다. AWS Inferentia와 AWS Trainium 드라이버, 그리고 Docker용 AWS Neuron 런타임이 사전 구성되어 있어 Amazon ECS에서 머신 러닝 추론 워크로드를 더 쉽게 실행할 수 있습니다. 자세한 내용은 AWS Neuron 머신 러닝 워크로드용 Amazon ECS 태스크 정의 문서를 참고하세요. Amazon ECS 최적화 Amazon Linux 2023 (Neuron) AMI에는 AWS CLI가 사전 설치되어 있지 않습니다.

Amazon Linux 2023 GPU — Amazon ECS optimized Amazon Linux 2023 GPU AMI

Amazon Linux 2023 기반으로, Amazon ECS 워크로드용 Amazon EC2 GPU 기반 인스턴스 실행에 권장되는 AMI입니다. NVIDIA 커널 드라이버와 Docker GPU 런타임이 사전 구성되어 있어 AMD ECS에서 GPU를 활용하는 워크로드를 더 쉽게 실행할 수 있습니다. 자세한 내용은 GPU 워크로드용 Amazon ECS 태스크 정의 문서를 참고하세요.

기본적으로 Amazon ECS 최적화 Amazon Linux 2023 AMI는 단일 30-GiB 루트 볼륨과 함께 제공됩니다. 시작 시 30-GiB 루트 볼륨 크기를 수정하여 컨테이너 인스턴스의 사용 가능한 스토리지를 늘릴 수 있어요. 이 스토리지는 운영 체제, Docker 이미지와 메타데이터에 사용됩니다. Amazon ECS 최적화 Amazon Linux 2023 AMI의 기본 파일 시스템은 xfs이고, Docker는 overlay2 스토리지 드라이버를 사용합니다. 자세한 내용은 Docker 문서의 OverlayFS 스토리지 드라이버 사용 문서를 참고하세요.

Amazon Linux 2 운영 체제용 AMI

다음 Amazon ECS 최적화 AMI 변형이 Amazon Linux 2 운영 체제의 Amazon EC2 인스턴스에 사용 가능합니다.

  • Amazon Linux 2 — Amazon ECS-optimized Amazon Linux 2 kernel 5.10 AMI — Amazon Linux 2 기반으로, Amazon ECS 워크로드에 Linux 커널 4.14 대신 커널 5.10을 사용하려는 경우에 사용하는 AMI입니다. 이 AMI에는 AWS CLI가 사전 설치되어 있지 않습니다.
  • Amazon Linux 2 — Amazon ECS-optimized Amazon Linux 2 AMI — Amazon ECS 워크로드용 AMI입니다. AWS CLI가 사전 설치되어 있지 않습니다.
  • Amazon Linux 2 (arm64) — Amazon ECS-optimized Amazon Linux 2 kernel 5.10 (arm64) AMI — Amazon Linux 2 기반으로, Arm 기반 AWS Graviton/Graviton 2/Graviton 3/Graviton 4 프로세서로 구동되며 Linux 커널 4.14 대신 커널 5.10을 사용하려는 Amazon EC2 인스턴스용 AMI입니다. 자세한 내용은 Amazon EC2 Instance Types 가이드의 Amazon EC2 범용 인스턴스 사양 문서를 참고하세요. AWS CLI가 사전 설치되어 있지 않습니다.
  • Amazon Linux 2 (arm64) — Amazon ECS-optimized Amazon Linux 2 (arm64) AMI — Amazon Linux 2 기반으로, Arm 기반 AWS Graviton/Graviton 2/Graviton 3/Graviton 4 프로세서로 구동되는 Amazon EC2 인스턴스용 AMI입니다. AWS CLI가 사전 설치되어 있지 않습니다.
  • Amazon Linux 2 (GPU) — Amazon ECS GPU-optimized kernel 5.10 AMI — Amazon Linux 2 기반으로, Linux 커널 5.10과 함께 Amazon ECS 워크로드용 Amazon EC2 GPU 기반 인스턴스 실행에 권장되는 AMI입니다. NVIDIA 커널 드라이버와 Docker GPU 런타임이 사전 구성되어 있습니다. 자세한 내용은 GPU 워크로드용 Amazon ECS 태스크 정의 문서를 참고하세요.
  • Amazon Linux 2 (GPU) — Amazon ECS GPU-optimized AMI — Amazon Linux 2 기반으로, Linux 커널 4.14와 함께 Amazon ECS 워크로드용 Amazon EC2 GPU 기반 인스턴스 실행에 권장되는 AMI입니다. NVIDIA 커널 드라이버와 Docker GPU 런타임이 사전 구성되어 있습니다. 자세한 내용은 GPU 워크로드용 Amazon ECS 태스크 정의 문서를 참고하세요.
  • Amazon Linux 2 (Neuron) — Amazon ECS optimized Amazon Linux 2 (Neuron) kernel 5.10 AMI — Amazon Linux 2 기반으로, Amazon EC2 Inf1, Trn1 또는 Inf2 인스턴스용 AMI입니다. Linux 커널 5.10과 함께 AWS Inferentia와 AWS Trainium 드라이버, Docker용 AWS Neuron 런타임이 사전 구성되어 있어 Amazon ECS에서 머신 러닝 추론 워크로드를 더 쉽게 실행할 수 있습니다. 자세한 내용은 AWS Neuron 머신 러닝 워크로드용 Amazon ECS 태스크 정의 문서를 참고하세요. AWS CLI가 사전 설치되어 있지 않습니다.
  • Amazon Linux 2 (Neuron) — Amazon ECS optimized Amazon Linux 2 (Neuron) AMI — Amazon Linux 2 기반으로, Amazon EC2 Inf1, Trn1 또는 Inf2 인스턴스용 AMI입니다. AWS Inferentia와 AWS Trainium 드라이버, Docker용 AWS Neuron 런타임이 사전 구성되어 있습니다. 자세한 내용은 AWS Neuron 머신 러닝 워크로드용 Amazon ECS 태스크 정의 문서를 참고하세요. AWS CLI가 사전 설치되어 있지 않습니다.

기본적으로 Amazon Linux 2 기반 Amazon ECS 최적화 AMI(Amazon ECS 최적화 Amazon Linux 2 AMI, Amazon ECS 최적화 Amazon Linux 2 (arm64) AMI, Amazon ECS GPU 최적화 AMI)는 단일 30-GiB 루트 볼륨과 함께 제공됩니다. 시작 시 30-GiB 루트 볼륨 크기를 수정하여 컨테이너 인스턴스의 사용 가능한 스토리지를 늘릴 수 있어요. 이 스토리지는 운영 체제, Docker 이미지와 메타데이터에 사용됩니다. 기본 파일 시스템은 xfs이고, Docker는 overlay2 스토리지 드라이버를 사용합니다. 자세한 내용은 Docker 문서의 OverlayFS 스토리지 드라이버 사용 문서를 참고하세요.

변경 로그와 릴리스 정보 (Changelogs and release notes)

Amazon ECS는 GitHub에서 Amazon ECS 최적화 AMI의 Linux 변형에 대한 변경 로그(changelog)를 제공합니다. 자세한 내용은 Changelog 문서를 참고하세요. Amazon ECS 최적화 AMI의 Linux 변형은 Amazon Linux 2 AMI 또는 Amazon Linux 2023 AMI를 기본으로 사용합니다. 각 변형의 AMI 이름은 Systems Manager Parameter Store API를 조회해 검색할 수 있어요. 자세한 내용은 Amazon ECS 최적화 Linux AMI 메타데이터 검색 문서를 참고하세요.

Amazon Linux 2 AMI 릴리스 정보도 사용할 수 있습니다. 자세한 내용은 Amazon Linux 2 릴리스 정보 문서를 참고하세요. Amazon Linux 2023 릴리스 정보도 사용할 수 있습니다. 자세한 내용은 Amazon Linux 2023 릴리스 정보 문서를 참고하세요.

다음 페이지는 변경 사항에 대한 추가 정보를 제공합니다:

  • GitHub의 소스 AMI 릴리스 정보
  • Docker 문서의 Docker 엔진 릴리스 정보
  • NVIDIA 문서의 NVIDIA 드라이버 문서
  • GitHub의 Amazon ECS 에이전트 변경 로그

ecs-init 애플리케이션의 소스 코드와 에이전트 패키징을 위한 스크립트 및 구성은 이제 에이전트 저장소의 일부입니다. 더 오래된 버전의 ecs-init 및 패키징은 GitHub의 Amazon ecs-init 변경 로그를 참고하세요.

Amazon ECS 최적화 AMI에 보안 업데이트 적용 (Applying security updates)

Amazon Linux 기반 Amazon ECS 최적화 AMI에는 사용자 지정 버전의 cloud-init이 포함되어 있습니다. Cloud-init은 클라우드 컴퓨팅 환경에서 Linux 이미지를 부트스트랩하고 인스턴스 시작 시 원하는 작업을 수행하는 데 사용되는 패키지입니다. 기본적으로 2024년 6월 12일 이전에 릴리스된 모든 Amazon Linux 기반 Amazon ECS 최적화 AMI는 인스턴스 시작 시 모든 "Critical" 및 "Important" 보안 업데이트가 적용됩니다.

2024년 6월 12일 릴리스부터 Amazon Linux 2 기반 Amazon ECS 최적화 AMI의 기본 동작은 시작 시 패키지 업데이트를 더 이상 포함하지 않습니다. 대신 릴리스가 제공될 때마다 새 Amazon ECS 최적화 AMI로 업데이트할 것을 권장합니다. Amazon ECS 최적화 AMI는 사용 가능한 보안 업데이트나 기본 AMI 변경이 있을 때 릴리스됩니다. 이렇게 하면 최신 패키지 버전과 보안 업데이트를 받을 수 있고, 인스턴스 시작을 통해 패키지 버전이 변경되지 않도록(immutable) 보장됩니다. 최신 Amazon ECS 최적화 AMI를 검색하는 방법에 대한 자세한 내용은 Amazon ECS 최적화 Linux AMI 메타데이터 검색 문서를 참고하세요.

환경이 새 AMI가 제공될 때마다 업데이트되도록 자동화할 것을 권장합니다. 사용 가능한 옵션에 대한 자세한 내용은 Amazon ECS, 관리형 인스턴스 드레이닝으로 더 쉬운 EC2 용량 관리를 가능하게 함 문서를 참고하세요.

AMI 버전에 "Critical" 및 "Important" 보안 업데이트를 수동으로 계속 적용하려면 Amazon EC2 인스턴스에서 다음 명령을 실행할 수 있어요.

yum update --security

경고: Docker 또는 containerd 패키지를 업데이트하면 호스트에서 실행 중인 모든 컨테이너가 중지되며, 이는 실행 중인 모든 Amazon ECS 태스크가 중지된다는 뜻입니다. 서비스 중단을 최소화하도록 계획하세요.

시작 시 보안 업데이트를 다시 활성화하려면 Amazon EC2 인스턴스를 시작할 때 cloud-init 사용자 데이터의 #cloud-config 섹션에 다음 줄을 추가할 수 있어요. 자세한 내용은 Amazon Linux 사용자 가이드의 Amazon Linux 2에서 cloud-init 사용 문서를 참고하세요.

#cloud-config
repo_upgrade: security

Amazon ECS 최적화 AL2023 GPU AMI의 버전 고정 패키지 (Version-locked packages)

Amazon ECS 최적화 AL2023 GPU AMI에서 GPU 기능의 정확하고 성능 좋은 동작에 중요한 일부 패키지가 있습니다. 여기에는 다음이 포함됩니다:

  • NVIDIA 드라이버 (nvidia*)
  • 커널 모듈 (kmod*)
  • NVIDIA 라이브러리 (libnvidia*)
  • 커널 패키지 (kernel*)
  • Xorg 서버 패키지 (xorg*)
  • NVIDIA Data Center GPU Manager (DCGM) (datacenter-gpu-manager-*)

참고: 이 목록은 완전한 목록이 아닙니다. 고정(locked) 패키지의 전체 목록은 dnf versionlock list로 확인할 수 있습니다.

이 패키지들은 GPU 워크로드를 방해할 수 있는 의도하지 않은 변경을 방지하고 안정성을 보장하기 위해 버전 고정(version-lock)되어 있습니다. 결과적으로 이 패키지들은 일반적으로 잠재적인 문제를 적절히 처리하고 GPU 기능을 유지하는 관리형 프로세스의 범위 내에서 수정해야 합니다. 의도하지 않은 수정을 방지하기 위해 이 패키지들에는 dnf versionlock 플러그인이 사용됩니다.

고정된 패키지를 수정하려면 다음을 수행할 수 있어요:

# unlock a single package
sudo dnf versionlock delete $PACKAGE_NAME

# unlock all packages
sudo dnf versionlock clear

중요: 이러한 패키지에 업데이트가 필요할 때 고객은 필수 업데이트가 포함된 최신 AMI 버전을 사용하는 것을 고려해야 합니다. 기존 인스턴스 업데이트가 필요하다면, 잠금 해제, 업데이트, 재잠금을 포함하는 신중한 접근 방식을 사용해야 하며, 항상 전체 과정에서 GPU 기능이 유지되도록 해야 합니다.

더 알아보기 (Learn more)

  • Amazon ECS 최적화 Linux AMI 메타데이터 검색과 AMI 버전 정보에 대한 자세한 내용은 AWS 개발자 가이드의 관련 문서를 참고하세요.