사용자 지정 AMI(Amazon Machine Image) 사용 - AWS Elastic Beanstalk

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

사용자 지정 AMI(Amazon Machine Image) 사용

AWS Elastic Beanstalk 환경을 생성할 때 플랫폼 버전에 포함된 표준 Elastic Beanstalk AMI 대신 사용할 Amazon Machine Image(AMI)를 지정할 수 있습니다. 사용자 지정 AMI는 표준 AMI에 포함되어 있지 않은 여러 소프트웨어를 설치해야 할 경우 환경에서 인스턴스를 시작할 때 프로비저닝 시간을 향상할 수 있습니다.

구성 파일의 사용은 빠르고 지속적으로 환경을 구성 및 사용자 지정하는 데 유용합니다. 그러나 구성을 적용하게 되면 환경이 생성되고 업데이트되는 데 시간이 오래 걸릴 수 있습니다. 구성 파일에서 여러 서버 구성을 처리해야 하는 경우, 이미 필요한 소프트웨어와 구성이 갖춰진 사용자 지정 AMI를 만들어서 시간을 단축할 수 있습니다.

사용자 지정 AMI를 통해 구성 파일에 적용하기까지 시간이 오래 걸리거나 구현하기 까다로운 하위 수준 구성 요소(예: Linux 커널)를 변경할 수 있습니다. 사용자 지정 AMI를 생성하려면 Amazon EC2에 Elastic Beanstalk 플랫폼 AMI를 시작하고 필요에 따라 소프트웨어와 구성을 사용자 지정한 후 인스턴스를 중지하고 AMI를 저장합니다.

사용자 지정 AMI 생성

기본 Elastic Beanstalk AMI를 식별하려면
  1. 명령 창에서 다음과 같은 명령을 실행합니다. 자세한 내용은 AWS CLI 명령 참조describe-platform-version을 참조하세요.

    사용자 지정 AMI를 사용할 AWS 리전을 지정하고 플랫폼 ARN 및 버전 번호를 애플리케이션이 기반으로 하는 Elastic Beanstalk 플랫폼으로 바꿉니다.

    예 - Mac OS/Linux OS
    $ aws elasticbeanstalk describe-platform-version --region us-east-2 \ --platform-arn "arn:aws:elasticbeanstalk:us-east-2::platform/Tomcat 8.5 with Java 8 running on 64bit Amazon Linux/3.1.6" \ --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
    예 - Windows OS
    C:\> aws elasticbeanstalk describe-platform-version --region us-east-2 --platform-arn"arn:aws:elasticbeanstalk:us-east-2::platform/IIS 10.0 running on 64bit Windows Server 2019/2.6.4" --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
  2. 결과에서 ami-020ae06fdda6a0f66와 같은 형태의 ImageId 값을 기록해 두십시오.

값은 애플리케이션과 관련된 플랫폼 버전, EC2 인스턴스 아키텍처 및 AWS 리전의 재고 Elastic Beanstalk AMI입니다. 여러 플랫폼, 아키텍처 또는 AWS 리전에 AMI를 생성해야 한다면 이 프로세스를 반복하여 각 조합에 알맞은 기본 AMI를 식별합니다.

주의
  • Elastic Beanstalk 환경에서 시작된 인스턴스에서 AMI를 생성하지 마십시오. Elastic Beanstalk는 프로비저닝 중에 인스턴스를 변경하며, 이는 저장된 AMI에 문제를 일으킬 수 있습니다. Elastic Beanstalk 환경의 인스턴스에서 이미지를 저장하면 인스턴스에 배포된 애플리케이션의 버전이 이미지의 일부분으로 고정됩니다.

  • 항상 최신 플랫폼 버전을 사용하는 것이 좋습니다. 새 플랫폼 버전으로 업데이트할 때는 사용자 지정 AMI를 새 플랫폼 버전의 AMI로 리베이스하는 것이 좋습니다. 이렇게 하면 호환되지 않는 패키지 또는 라이브러리 버전으로 인한 배포 실패가 최소화됩니다.

Linux의 경우, Elastic Beanstalk에 게시되지 않은 커뮤니티 AMI에서 사용자 지정 AMI를 생성할 수도 있습니다. 최신 Amazon Linux AMI를 시작점으로 사용할 수 있습니다. Elastic Beanstalk에서 관리하지 않는 Linux AMI로 환경을 시작하면 Elastic Beanstalk는 플랫폼 소프트웨어(예: 언어, 프레임워크, 프록시 서버 등)와 확장 상태 보고 등의 기능을 지원하는 추가 구성 요소의 설치를 시도합니다.

참고

Windows Server를 기반으로 하는 사용자 지정 AMI에는 1단계 앞부분에서 설명한 것처럼 describe-platform-version에서 반환된 Elastic Beanstalk AMI가 필요합니다.

Elastic Beanstalk가 Elastic Beanstalk에서 관리하지 않는 AMI를 사용할 수 있더라도 Elastic Beanstalk가 누락된 구성 요소를 설치하여 프로비저닝 시간이 늘어나면 무엇보다 사용자 지정 AMI 생성의 혜택이 줄어들거나 없어질 수 있습니다. 다른 Linux 배포는 일부 문제 해결을 처리할 수 있으나 공식적으로 지원되지 않습니다. 애플리케이션에 특정 Linux 배포가 필요한 경우, 한 가지 대안은 Docker 이미지를 생성하여 Elastic Beanstalk Docker 플랫폼 또는 멀티컨테이너 Docker 플랫폼에서 실행하는 것입니다.

사용자 지정 AMI를 생성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 인스턴스 시작을 선택합니다.

  3. 커뮤니티 AMI를 선택합니다.

  4. 기본 Elastic Beanstalk AMI(describe-platform-version 사용) 또는 Amazon Linux AMI를 확인한 경우 검색 상자에 해당 AMI ID를 입력합니다. 그런 다음 Enter를 누릅니다.

    목록에서 필요에 맞는 다른 커뮤니티 AMI를 검색할 수도 있습니다.

    참고

    HVM 가상화를 사용하는 AMI를 선택하는 것이 좋습니다. 이러한 AMI는 설명에 Virtualization type: hvm(가상화 유형: hvm)이 표시되어 있습니다.

    
              EC2 콘솔에 나열된 HVM 가상화 유형 사용 AMI

    인스턴스 가상화 유형에 대한 자세한 내용은 Linux 인스턴스에 대한 Amazon EC2 사용 설명서Linux AMI 가상화 유형 또는 Windows 인스턴스에 대한 Amazon EC2 사용 설명서Windows AMI 가상화 유형을 참조하세요.

  5. Select(선택)를 선택하여 AMI를 선택합니다.

  6. 인스턴스 유형을 선택하고 Next: Configure Instance Details(다음: 인스턴스 정보 구성)를 선택합니다.

  7. (Linux 플랫폼) 고급 세부 정보 단원을 확장하고 사용자 데이터 필드에 다음 텍스트를 붙여 넣습니다.

    #cloud-config repo_releasever: repository version number repo_upgrade: none

    리포지토리 버전 번호는 AMI 이름의 연월 버전입니다. 예를 들어 2015년 3월 Amazon Linux를 출시한 AMI의 리포지토리 버전 번호는 2015.03입니다. Elastic Beanstalk 이미지에서 버전 번호는 Amazon Linux AMI(이전 Amazon Linux 2)를 기반으로 하는 플랫폼 버전의 솔루션 스택 이름에 표시되는 날짜와 일치합니다.

    참고

    repo_releasever 설정은 Amazon Linux AMI에 대한 lock-on-launch 기능을 구성합니다. 이렇게 하면 AMI가 시작될 때 고정된 특정 리포지토리 버전을 사용합니다. 이 기능은 Amazon Linux 2에서 지원되지 않습니다. 환경에서 현재 Amazon Linux 2 플랫폼 브랜치를 사용하는 경우 지정하지 마십시오. Amazon Linux AMI 플랫폼 브랜치(이전 Amazon Linux 2)에서 Elastic Beanstalk와 함께 사용자 지정 AMI를 사용하는 경우에만 이 설정이 필요합니다.

    repo_upgrade 설정은 보안 업데이트의 자동 설치를 비활성화합니다. Elastic Beanstalk에서 사용자 지정 AMI를 사용해야 합니다.

  8. 마법사를 진행하여 EC2 인스턴스를 시작합니다. 메시지가 표시되면 액세스할 키 페어를 선택하여 다음 단계에서 인스턴스에 연결하도록 합니다.

  9. SSH 또는 RDP로 인스턴스에 연결합니다.

  10. 원하는 사용자 지정을 수행합니다.

  11. (Windows 플랫폼) EC2Config 서비스 Sysprep을 실행합니다. EC2Config에 대한 자세한 내용은 EC2Config 서비스를 사용한 Windows 인스턴스 구성을 참조하십시오. Sysprep이 AWS Management Console에서 검색할 수 있는 임의 암호를 생성하도록 구성하세요.

  12. Amazon EC2 콘솔에서 EC2 인스턴스를 중지합니다. 그런 다음 인스턴스 작업 메뉴에서 이미지 생성(EBS AMI)을 선택합니다.

  13. AWS 추가 요금이 청구되지 않도록 하려면 EC2 인스턴스를 종료합니다.

Elastic Beanstalk 환경에서 사용자 지정 AMI를 사용하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. [용량] 구성 범주에서 [편집]을 선택합니다.

  5. AMI ID의 경우 사용자 지정 AMI ID를 입력합니다.

  6. 변경 사항을 저장하려면 페이지 하단에서 적용을 선택합니다.

사용자 지정 AMI로 새 환경을 생성할 때, AMI를 생성할 때 사용했던 기본 구성과 동일한 플랫폼 버전을 사용해야 합니다. 나중에 사용자 지정 AMI를 사용하여 플랫폼 업데이트를 환경에 적용하는 경우, Elastic Beanstalk는 부트스트래핑 프로세스 중 라이브러리 및 구성 업데이트 적용을 시도합니다.

사용자 지정 AMI 정리

사용자 지정 AMI를 사용한 후 Elastic Beanstalk 환경을 더 이상 시작할 필요가 없으면 해당 AMI를 정리하여 저장 비용을 최소화해 보십시오. 사용자 지정 AMI를 정리하면 Amazon EC2에서 등록 취소되고 기타 관련 리소스가 삭제됩니다. 자세한 내용은 Linux AMI 등록 취소 또는 Windows AMI 등록 취소를 참조하십시오.