본문 바로가기

AWS

AWS - AMI (Amazon Machine Image) / Image Builder

728x90

■ AMI (Amazon Machine Image) 개요

  - 가상 서버를 생성하기 위한 템플릿이며, 인스턴스를 실행하는데 필요한 정보를 포함하고 있으며, 운영 체제(OS), 애플리케이션 서버, 애플리케이션 소프트웨어, 설정 데이터 등을 포함하여 생성할 수 있음

  • 빠른 배포: AMI를 사용하면 사전에 구성된 환경을 바탕으로 새로운 인스턴스를 빠르게 시작할 수 있어, 시간을 절약하고 일관된 환경 배포 가능 
  • 사용자 정의 가능: 사용자는 자신의 요구 사항에 맞게 운영 체제, 설치된 애플리케이션, 호스트된 데이터 등을 포함한 AMI를 생성하고 사용자 정의 가능
  • 공유 및 재사용: 사용자는 자신이 생성한 AMI를 다른 AWS 계정과 공유할 수 있으며, AWS 마켓플레이스에서 다른 사용자가 생성한 AMI를 사용 가능하며 사용자가 생성한 AMI를 다른 리전으로 옮겨서 사용 가능 
  • 다양한 운영 체제 지원: AWS는 다양한 운영 체제와 구성을 지원하는 여러 AMI를 제공
  • 보안: AMI는 물리적인 하드웨어에서 분리되어 실행되므로, 보안성이 높습니다. 또한 AWS는 AMI의 보안 업데이트와 패치를 정기적으로 제공합니다.

 

■ AMI (Amazon Machine Image) 생성

  • 생성 된 EC2 인스턴스 우클릭 → 이미지 및 템플릿 → 이미지 생성 → AMI 이름 입력 후  이미지 생성, 일정 시간이 지나면 AMI 이미지 생성.
  • EC2에 연결된 EBS 볼륨의 스냅샷이 생성되며 (EC2 인스턴스 서비스에서 스냅샷 확인) 해당 정보로 AMI 생성
  • AMI 생성시 데이터 무결성을 위해 AMI 생성 원본이 되는 EC2는 재부팅이 발생 함. 재부팅을 비활성화 시킬 수 있으나 데이터 무결성이 보장되지 않음
  • EC2 AWS Backup  (백업 서비스)에 의한 백업 수행 시 AMI는 재부팅을 수행하지 않고 AMI 생성, EvnetBridge Rule(Schedule)을 사용하면 Lambda 함수를 호출하여 EC2를 재부팅 하고 AMI 생성
  • 생성된 AMI를 활용하여 새로운 EC2 인스턴스 생성 시(EC2 생성 시 내 AMI 탭에서 선택) AMI 구성 당시 설치된 소프트웨어 역시 동일하게 설치됨. 소프트웨어를 별도로 설치할 필요가 없기 때문에 빠른 속도로 부팅 가능

 

 

■ AMI (Amazon Machine Image) 공유 & 복사

  • AWS는 다른 계정과 공유가 가능하며, AMI 공유는 해당 소유권에 영향을 미치지 않는다. 
  • EBS 볼륨은 평문으로 공유되거난 암호화 되어 공유 되며, 암호화 여부에 따라서 이후 일부 변화가 있므
    • 만약 암호화 되지 않은 볼륨을 공유 했다면 별다른 조치 없이 해당 볼륨 사용 가능
    • 만약 암호화 된 볼륨을 공유 했다면 복호화 하기 위해 고객 관리 키 정보(KMS)를 같이 공유하고 키 설명 권한 (IAM) 역시 부여 되어야 한다

 

  • 계정에 공유된 AMI를 복사하면 복사된 AMI의 소유주는 복사를 수행한 사용자로 변경되기 때문에, 복사를 하기 위해서는 원본 AMI 소유주가 EBS 스냅샷의 읽기 권한을 주어야  한다. ( EBS → 스냅샷 → 스냅샷 ID 선택 → 스냅샷 설정 → 권한 수정)

  • AMI를 복사하는 하면서 사용자 키 (Cumtomer Master Key, CMK)를 이용하여 암호화가 가능하다.
  • 암호화된 볼륨을 공유 받았을 때 소유자 A의 키 (CMK-A)를 공유 받고 해당 키에 대한 권한에 대한 명세인 IAM을 사용하여 암호화된 볼륨을 복호화 하고 B의 키를 사용하여 공유 받은 볼륨을 다시 암호화 시킬 수 있다.

 

■ Image Builder 개요

  - 자동화된 이미지 생성 및 관리 서비스이다. 자동화된 프로세스를 통해 이미지를 구축, 검증, 테스트하며, 최종적으로 AWS 환경에 배포를 수행함. AWS 기본 서비스이며 서비스 이용 자체는 무료이다. 

 

  • 자동화된 이미지 생성: Image Builder는 사용자가 정의한 요구 사항에 따라 이미지를 생성하고 생성된 AMI를 이용하여 EC2 생성, 검증 및 테스트 (정상동작  유무 및 보안 적합성 여부)자동화를 수행 합니다. 
  • 사용자 정의 및 관리: 사용자는 소프트웨어 설치, 구성 스크립트, 테스트 스크립트 등을 포함하여 이미지에 필요한 모든 세부 사항을 정의할 수 있습니다. 또한, Image Builder는 이미지 라이프사이클을 관리하여, 최신 상태로 유지할 수 있게 도와줍니다.
  • 통합 및 확장성: AWS Image Builder는 AWS EC2, Amazon EBS, AWS Marketplace 등 다른 AWS 서비스와 통합되어, 이미지 생성 및 배포 과정을 간소화합니다. 또한, 이미지 생성 프로세스를 CI/CD 파이프라인과 통합하여, 자동화된 배포 워크플로우를 구축할 수 있습니다.

 

■ Image Builder 구성 절차 

  • 1단계 파이프라인 생성 
    • 파이프라인 이름 지정 및 빌드 일정 선택 
  • 2단계 레시피 생성 
    • 출력 이미지 선택 (AMI or Docker) & 사용할 운영체제 선택 (Linux, Windows만 가능)
    • 빌드 구성 요소 (OS 설치 후 설치할 패키지) 선택 또는 YAML 언어로 정의
    • 출력 AMI 테스트 구성 요소 선택 
  • 3단계 이미지 생성 프로세스 정의 - 기본값 사용
  • 4단계 인프라 구성 정의
    • 서비스 기본값을 사용하면 정상적으로 동작하지 않는 경우 발생
    • 새 인프라 구성 생성 선택
      1. IAM 역할 생성 
        - EC2 Image Builder가 시작한 인스턴스가 계정에 보유한 권한 정의
        - IAM Role 추가, 추가할 Role은 인프라 구성 항목에서 기본값으로 제공하는 IAM Role 역할 3가지
        - EC2InstanceProfileForImageBuilder, EC2InstanceProfileForImageBuilderECRContainerBuilds, AmazonSSMManagedInstanceCore 
      2. AWS 인프라 구성
        - 인스턴스 타입 구성 (다양한 인스턴스 타입 지원), SNS 설정
      3. VPC, 서브넷 및 보안 그룹 설정 (중요)
      4. 설정 및 문제 해결 (중요)
        - Key Pair 지정
  • 5단계 배포 설정 정의
    • 서비스 기본값: 사용자가 현재 위치하고 있는 리전에만 배포
    • 새 배포 설정 생성: 최대 3개의 리전에 생성 
  • 6단계 모든 작업에 대한 결과 리뷰 후 파이프라인 생성
  • 모든 절차가 정상적으로 마무리 되었으면 "이미지 파이프라인"으로 이동 후 파이프라인 실행, 작업 절차에 문제가 없을 경우 테스트 EC2 생성이 되며 이후 2단계 레시피에 의해 정의된 EC2 인스턴스 생성 
728x90

'AWS' 카테고리의 다른 글

AWS - Tag & Resource Group  (0) 2024.02.17
AWS - SYSTEM MANAGER (SSM)  (0) 2024.02.07
AWS - Spot Instance / Spot Fleets  (0) 2024.02.04
AWS - EC2 구매옵션  (0) 2024.02.03
AWS - EC2  (0) 2024.02.03