Amazon EKS 최적화 Windows AMI 관리 - Amazon EKS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EKS 최적화 Windows AMI 관리

Windows Amazon EKS 최적화 AMI는 Windows Server 2019 및 Windows Server 2022를 기반으로 빌드되었습니다. Amazon EKS 노드의 기본 이미지 역할을 하도록 구성되었습니다. 기본적으로 AMI에는 다음 구성 요소가 포함됩니다.

AWS Systems Manager Parameter Store API를 쿼리하여 Amazon EKS 최적화 AMIs) ID를 프로그래밍 방식으로 검색할 수 있습니다. 이 파라미터를 사용하면 Amazon EKS 최적화 AMI ID를 수동으로 조회할 필요가 없습니다. Systems Manager 파라미터 스토어 API에 대한 자세한 내용은 GetParameter 섹션을 참조하세요. Amazon EKS 최적화 AMI 메타데이터를 검색하려면 사용자 계정에 ssm:GetParameter IAM 권한이 있어야 합니다.

다음 예시에서는 Windows Server 2019 LTSC Core용 최신 Amazon EKS 최적화 AMI의 AMI ID를 검색합니다. AMI 이름에 나열된 버전 번호는 준비된 해당 Kubernetes 빌드와 관련이 있습니다.

aws ssm get-parameter --name /aws/service/ami-windows-latest/Windows_Server-2019-English-Core-EKS_Optimized-1.21/image_id --region us-east-1 --query "Parameter.Value" --output text

출력 예시:

ami-09770b3eec4552d4e

자체 Amazon EKS 최적화 Windows AMI 관리

프로덕션 환경을 위한 필수 단계는 Amazon EKS 클러스터에서 동일한 Amazon EKS 최적화 Windows AMI 및 kubelet 버전을 유지하는 것입니다.

Amazon EKS 클러스터에서 동일한 버전을 사용하면 문제 해결 시간이 단축되고 클러스터 일관성이 향상됩니다. Amazon EC2 Image Builder는 Amazon EKS 클러스터에서 사용할 사용자 지정 Amazon EKS 최적화 Windows AMIs를 생성하고 유지 관리하는 데 도움이 됩니다.

Amazon EC2 Image Builder를 사용하여 Windows Server 버전, AWS Windows Server AMI 릴리스 날짜 및/또는 OS 빌드 버전 중에서 선택합니다. 빌드 구성 요소 단계에서는 기존 EKS 최적화 Windows 아티팩트와 kubelet 버전 중에서 선택할 수 있습니다. 자세한 내용은 https://docs.aws.amazon.com/eks/latest/userguide/eks-custom-ami-windows.html 참조하십시오.

빌드 구성 요소

참고: 기본 이미지를 선택하기 전에 릴리스 채널 업데이트와 관련된 중요한 세부 정보는 Windows Server 버전 및 라이선스 섹션을 참조하세요.

사용자 지정 EKS 최적화 AMIs 대한 더 빠른 시작 구성

사용자 지정 Windows Amazon EKS 최적화 AMI를 사용하는 경우 빠른 시작 기능을 활성화하여 Windows 작업자 노드를 최대 65% 더 빠르게 시작할 수 있습니다. 이 기능은 Sysprep 전문화, Windows OOBE(Out of Box Experience) 단계 및 필요한 재부팅이 이미 완료된 사전 프로비저닝된 스냅샷 세트를 유지합니다. 그런 다음 이러한 스냅샷은 후속 시작 시 사용되므로 노드를 스케일 아웃하거나 교체하는 데 걸리는 시간이 줄어듭니다. 빠른 시작은 EC2 콘솔 또는 AWS CLI를 통해 소유AMIs에 대해서만 활성화할 수 있으며 유지 관리되는 스냅샷 수는 구성할 수 있습니다.

참고: Fast Launch는 기본 Amazon 제공 EKS 최적화 AMI와 호환되지 않습니다. 활성화하기 전에 위와 같이 사용자 지정 AMI를 생성합니다.

자세한 내용: AWS Windows AMIs- 더 빠른 시작을 위해 AMI 구성

사용자 지정 AMIs에서 Windows 기본 계층 캐싱

Windows 컨테이너 이미지는 Linux 컨테이너 이미지보다 큽니다. 컨테이너화된 .NET Framework 기반 애플리케이션을 실행하는 경우 평균 이미지 크기는 약 8.24GB입니다. 포드 예약 중에 포드가 실행 중 상태에 도달하기 전에 컨테이너 이미지를 완전히 가져와 디스크에서 추출해야 합니다.

이 프로세스 중에 컨테이너 런타임(컨테이너드)은 디스크에서 전체 컨테이너 이미지를 가져와 추출합니다. 풀 작업은 병렬 프로세스입니다. 즉, 컨테이너 런타임은 컨테이너 이미지 계층을 병렬로 가져옵니다. 반대로 추출 작업은 순차적 프로세스에서 수행되며 I/O 집약적입니다. 따라서 컨테이너 이미지를 완전히 추출하고 컨테이너 런타임(컨테이너드)에서 사용할 준비가 되는 데 8분 이상 걸릴 수 있으므로 포드 시작 시간이 몇 분 정도 걸릴 수 있습니다.

Windows Server 및 컨테이너 패치 적용 주제에서 언급했듯이 EKS를 사용하여 사용자 지정 AMI를 빌드하는 옵션이 있습니다. AMI 준비 중에 EC2 Image Builder 구성 요소를 추가하여 필요한 모든 Windows 컨테이너 이미지를 로컬에서 가져온 다음 AMI를 생성할 수 있습니다. 이 전략은 포드가 실행 중 상태에 도달하는 시간을 크게 줄입니다.

Amazon EC2 Image Builder에서 구성 요소를 생성하여 필요한 이미지를 다운로드하고 이미지 레시피에 연결합니다. 다음 예시에서는 ECR 리포지토리에서 특정 이미지를 가져옵니다.

name: ContainerdPull
description: This component pulls the necessary containers images for a cache strategy.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: containerdpull
        action: ExecutePowerShell
        inputs:
          commands:
            - Set-ExecutionPolicy Unrestricted -Force
            - (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 111000111000.dkr.ecr.us-east-1.amazonaws.com
            - ctr image pull mcr.microsoft.com/dotnet/framework/aspnet:latest
            - ctr image pull 111000111000.dkr.ecr.us-east-1.amazonaws.com/myappcontainerimage:latest

다음 구성 요소가 예상대로 작동하는지 확인하려면 EC2 Image 빌더(EC2InstanceProfileForImageBuilder)에서 사용하는 IAM 역할에 연결된 정책이 있는지 확인합니다.

권한 정책

블로그 게시물

다음 블로그 게시물에서는 사용자 지정 Amazon EKS Windows AMIs에 캐싱 전략을 구현하는 방법에 대해 단계별로 설명합니다.

EC2 이미지 빌더 및 이미지 캐시 전략을 사용하여 Windows 컨테이너 시작 시간 단축