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단계 인프라 구성 정의
- 서비스 기본값을 사용하면 정상적으로 동작하지 않는 경우 발생
- 새 인프라 구성 생성 선택
- IAM 역할 생성
- EC2 Image Builder가 시작한 인스턴스가 계정에 보유한 권한 정의
- IAM Role 추가, 추가할 Role은 인프라 구성 항목에서 기본값으로 제공하는 IAM Role 역할 3가지
- EC2InstanceProfileForImageBuilder, EC2InstanceProfileForImageBuilderECRContainerBuilds, AmazonSSMManagedInstanceCore - AWS 인프라 구성
- 인스턴스 타입 구성 (다양한 인스턴스 타입 지원), SNS 설정 - VPC, 서브넷 및 보안 그룹 설정 (중요)
- 설정 및 문제 해결 (중요)
- Key Pair 지정
- IAM 역할 생성
- 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 |