Amazon Web Services 한국 블로그

Amazon EC2 Image Builder – OS 이미지 빌드 파이프라인 자동화 (서울 리전 포함)

Amazon EC2에 사용되는 AMI(Amazon Machine Image)를  최신 상태로 유지하려면 인스턴스 업데이트 및 스냅샷 생성 작업을 수동으로 수행하거나 이미지를 유지 관리하는 자동화 스크립트를 빌드해야 합니다. 두 방법 모두 여전히 시간 소모적이고 리소스 집약적이며 오류가 발생하기 쉽습니다.

오늘 부터 자동화된 빌드 파이프라인을 사용하여 Windows Server 및 Amazon Linux 2용 보안 OS 이미지를 더 쉽고 빠르게 빌드하고 유지 관리할 수 있는 서비스인 Amazon EC2 Image Builder를 사용할 수 있습니다. EC2 Image Builder로 생성된 이미지를 Amazon Elastic Compute Cloud(EC2)와 온프레미스에서 사용할 수 있으며 보안을 적용하고 강화하여 해당하는 보안 규정(InfoSec)을 준수할 수 있습니다. AWS는 규제 산업에서의 운영에 필요한 표준인 “STIG(Security Technical Implementation Guide)” 준수를 위한 시작점으로 사용할 수 있는 보안 강화 정책을 제공합니다.

Amazon EC2 Image Builder에서 구성할 수 있는 파이프라인에는 이미지 레시피, 인프라 구성, 배포 및 테스트 설정이 포함되며 이러한 파이프라인을 통해 결과 이미지를 생성할 수 있습니다. 이미지를 새로운 소프트웨어 업데이트(예: 보안 패치)로 자동으로 프로비저닝하는 기능도 곧 제공될 예정입니다. 파이프라인에서 새로운 이미지가 생성되면 지정한 AWS 리전에 배포하기 전에 이러한 이미지의 검증을 위해 실행할 자동화된 테스트를 추가로 구성할 수 있습니다.

EC2 VM Import/Export와 함께 사용하면 VMDK, VHDX 및 OVF 등 온프레미스에서 사용할 수 있는 다양한 형식으로 이미지를 빌드할 수 있습니다. 테스트할 때는 AWS가 제공하는 테스트와 직접 작성한 사용자 지정 테스트를 함께 사용할 수 있습니다.

이제 어떻게 사용하는 지 잠깐 알아봅시다.

OS 이미지 빌드 파이프라인 생성하기
콘솔 홈 페이지에서 [Create image pipeline]을 클릭하여 빠르게 시작할 수 있습니다. 여기서는 사용자 지정 Amazon Linux 2 이미지를 빌드하는 파이프라인을 구성하겠습니다. 첫 번째 단계는 레시피를 정의하는 것입니다. 시작할 소스 이미지, 생성할 이미지에 적용할 빌드 구성 요소 및 실행할 테스트를 선택해야 합니다.

소스 이미지부터 시작합시다. EC2 Image Builder가 제공하는 관리형 이미지를 선택하겠습니다. 이전에 생성한 다른 이미지 또는 공유 이미지를 선택하거나 사용자 지정 AMI ID를 지정할 수도 있습니다.

다음으로, 레시피에 포함할 빌드 구성 요소를 선택합니다. 즉, 새 이미지에 설치하려는 소프트웨어를 선택합니다. 마법사 안에서 [Create build component] 옵션을 클릭하면 새 빌드 구성 요소를 생성할 수 있습니다. 빌드 구성 요소에는 이름(및 선택적 설명), 대상 운영 체제, 구성 요소 암호화를 위한 선택적 AWS Key Management Service(KMS) 키 및 구성 요소에 대한 사용자 지정 단계 세트를 지정하는 YAML 문서가 포함됩니다. 빌드 구성 요소의 버전을 지정할 수도 있으므로 이미지에 적용할 소프트웨어를 유연하게 사용자 지정할 수 있습니다. 여러 빌드 구성 요소를 생성하고 선택하면 단일 구성 요소에서 모든 사용자 지정 작업을 수행하지 않아도 됩니다.

그러나 이 게시물에서는 [Browse build components]를 클릭하고 Amazon Corretto, Python 3 및 PowerShell Core에 대한 Amazon 제공 구성 요소 몇 개를 선택했습니다.

레시피에 대한 마지막 단계는 이미지 검증을 위해 적용할 테스트를 선택하는 것입니다. 빌드 구성 요소와 마찬가지로 마법사 안에서 테스트를 생성하고 지정할 수 있으며 빌드 구성 요소에 사용할 수 있는 동일한 기능을 사용하여 테스트를 정의할 수 있습니다. 여기서는 간편함을 위해 [Browse tests]를 클릭하여 Amazon 제공 테스트를 선택하겠습니다. 이미지가 성공적으로 재부팅됩니다. 여기서 여러 테스트를 선택해도 됩니다.

레시피가 완료되었으니 Next를 클릭하고 파이프라인을 정의합니다. 파이프라인 이름을 지정하고 새 이미지 빌드를 위해 EC2 인스턴스에 연결할 AWS Identity and Access Management(IAM) 역할을 선택합니다. EC2 Image Builder는 이 역할을 사용하여 사용자 지정 및 테스트 단계를 수행할 계정에 Amazon Elastic Compute Cloud(EC2) 인스턴스를 생성합니다. 파이프라인 빌드를 수동으로 수행하거나 예약된 날짜에 실행되도록 선택할 수 있습니다. 단순한 일/주/월 기간 및 시간 선택기를 사용하여 예약을 지정하거나 CRON 식을 사용할 수 있습니다.

여기서는 일반적인 AWS 제공 빌드 구성 요소를 사용하고 테스트를 실행하기에 충분한 권한이 포함된 관리형 IAM 정책(EC2InstanceProfileForImageBuilder)을 선택했습니다. 여러분이 직접 Image Builder 사용을 시작할 때는 사용자 지정을 수행하고 테스트를 실행하고 S3에 문제 해결 로그를 기록하기에 충분한 권한이 있는 역할을 설정해야 합니다. 처음에 적절한 권한을 설정하려면 AmazonSSMManagedInstanceCore IAM 정책을 인스턴스에 연결된 IAM 역할에 연결하는 것이 좋습니다.

마지막으로 필요한 경우 파이프라인에서 자동으로 시작되는 인프라 관련 설정을 지정할 수 있습니다. 예를 들어 이미지 사용자 지정 시 사용되는 인스턴스 유형의 크기와 알림을 전달할 Amazon Simple Notification Service(SNS) 주제가 여기에 포함됩니다. 원한다면 Amazon Virtual Private Cloud 관련 설정을 제어할 수도 있습니다.

빌드하는 이미지의 운영 체제에 라이선스가 연결된 경우 새 이미지의 이름 및 새 이미지를 공개 또는 비공개로 공유할 AWS 리전과 함께 라이선스를 지정하거나 새 라이선스 구성을 즉시 생성할 수 있습니다.

[Review]를 클릭하여 모든 설정을 검토하고 마지막으로 [Create Pipeline]을 클릭하여 프로세스를 완료합니다.

여기서 파이프라인을 구성할 때는 매일 06:00(UTC)에 파이프라인을 실행하도록 지정했지만 원할 때 언제든지 실행할 수 있습니다. 파이프라인을 선택하고 [Actions] 및 [Run pipeline]을 차례로 선택합니다.

빌드가 완료되면 Amazon EC2 콘솔에서 AMI를 시작할 수 있습니다!

예전에 제가 했던 작업에 비하면 시간과 수고가 크게 줄었습니다! EC2 Image Builder는 모든 상용 AWS 리전에서 무료로 제공됩니다. 이미지의 생성, 저장 및 공유에 사용되는 기반 AWS 리소스에 대한 요금만 부과됩니다.

— Steve