Amazon EBS-backed Linux AMI 생성 - Amazon Elastic Compute Cloud

Amazon EBS-backed Linux AMI 생성

Amazon EBS 지원 Linux AMI를 생성하려면 기존 Amazon EBS 지원 Linux AMI에서 시작한 인스턴스에서 시작합니다. 이 AMI는 AWS Marketplace에서 받은 AMI, AWS Server Migration Service 또는 VM Import/Export를 사용하여 생성한 AMI 또는 액세스 권한이 있는 기타 AMI 등이 될 수 있습니다. 필요에 맞게 인스턴스를 사용자 지정한 후에는 이러한 사용자 지정을 적용하여 새 인스턴스를 시작하는 데 사용할 수 있는 새 AMI를 생성하여 등록합니다.

아래에 설명된 절차는 암호화된 Amazon Elastic Block Store(Amazon EBS) 볼륨(루트 볼륨 포함) 및 암호화되지 않은 볼륨에서 지원되는 Amazon EC2 인스턴스에 작동합니다.

AMI 생성 프로세스는 인스턴스 스토어 지원 AMIs의 경우와는 다릅니다. Amazon EBS 지원 인스턴스와 인스턴스 스토어 지원 인스턴스 간의 차이점에 대한 자세한 내용과 인스턴스의 루트 디바이스 유형을 확인하는 방법은 루트 디바이스 스토리지 섹션을 참조하세요. 인스턴스 스토어 지원 Linux AMI 생성에 대한 자세한 내용은 인스턴스 스토어 기반 Linux AMI 생성 섹션을 참조하세요.

Amazon EBS 지원 Windows AMI 생성에 대한 자세한 내용은 Amazon EC2 Windows Instances용 사용 설명서사용자 지정 Windows AMI 생성을 참조하세요.

Amazon EBS 지원 AMIs 생성 개요

다음 다이어그램은 실행 중인 EC2 인스턴스에서 Amazon EBS 지원 AMI를 생성하는 프로세스를 요약합니다. 기존 AMI로 시작하고, 인스턴스를 시작하고, 사용자 지정하고, 새 AMI를 생성하고, 마지막으로 새 AMI의 인스턴스를 시작합니다. 다이어그램의 숫자는 다음 설명의 숫자와 일치합니다.


				인스턴스에서 AMI를 생성하기 위한 워크플로
1 – AMI #1: 기존 AMI로 시작

생성하려는 AMI와 유사한 기존 AMI를 찾습니다. 이 AMI는 AWS Marketplace에서 받은 AMI, AWS Server Migration Service 또는 VM Import/Export를 사용하여 생성한 AMI 또는 액세스 권한이 있는 기타 AMI 등이 될 수 있습니다. 필요에 맞게 이 AMI를 사용자 지정합니다.

다이어그램에서 EBS 루트 볼륨 스냅샷 #1(EBS root volume snapshot #1)은 AMI가 Amazon EBS 지원 AMI이고 루트 볼륨에 대한 정보가 이 스냅샷에 저장됨을 나타냅니다.

2 – 기존 AMI에서 인스턴스 시작

AMI를 구성하는 방법은 새 AMI의 기반이 될 AMI에서 인스턴스를 시작한 다음 인스턴스를 사용자 지정하는 것입니다(다이어그램에서 3에 표시됨). 그런 다음 사용자 지정을 포함하는 새 AMI를 생성합니다(다이어그램에서 4에 표시됨).

3 - EC2 인스턴스 #1: 인스턴스 사용자 지정

인스턴스에 연결하고 필요에 맞게 인스턴스를 사용자 지정합니다. 새 AMI에 이러한 사용자 지정이 포함됩니다.

인스턴스에서 다음과 같은 작업을 수행하여 인스턴스를 사용자 지정할 수 있습니다.

  • 소프트웨어 및 애플리케이션 설치

  • 데이터 복사

  • 임시 파일 삭제, 하드 드라이브 조각 모음을 통한 시작 속도 향상

  • 추가 EBS 볼륨 연결

4 – 이미지 생성

인스턴스에서 AMI를 생성할 때 Amazon EC2는 인스턴스의 모든 기능을 중지하여 생성 프로세스 중 일관된 상태를 유지하기 위해 AMI를 생성하기 전에 인스턴스의 전원을 차단합니다. 인스턴스가 AMI 생성에 적합한 일관된 상태를 유지하는 경우 전원을 차단하지 않고 인스턴스를 재부팅하도록 Amazon EC2를 설정할 수 있습니다. 일부 파일 시스템(예: XFS)에서는 활동을 동결 및 동결 해제하여 인스턴스를 재부팅하지 않고 이미지를 안전하게 생성할 수 있습니다.

AMI 생성 프로세스 중에 Amazon EC2는 인스턴스의 루트 볼륨과 인스턴스에 연결된 다른 EBS 볼륨의 스냅샷을 생성합니다. AMI 등록을 해제하고 스냅샷을 삭제할 때까지는 스냅샷에 대한 요금이 부과됩니다. 인스턴스에 연결된 볼륨이 암호화된 경우 새 AMI는 Amazon EBS 암호화를 지원하는 인스턴스에서만 시작됩니다.

볼륨의 크기에 따라 AMI 생성 프로세스를 완료하는 데 몇 분 정도 걸리지만 경우에 따라 24시간까지 걸릴 수도 있습니다. AMI를 생성하기 전에 볼륨의 스냅샷을 생성하는 것이 더 효율적일 수 있습니다. 이처럼 AMI를 생성할 때 작은 증분적 스냅샷만 만들어야 프로세스가 더 빠르게 완료됩니다. 스냅샷을 만드는 데 걸리는 전체 시간은 동일하게 유지됩니다.

5 - AMI #2: 새 AMI

프로세스가 완료되면 인스턴스의 루트 볼륨에서 새 AMI 및 스냅샷(스냅샷 #2(snapshot #2))이 생성됩니다. 인스턴스 스토어 볼륨 또는 EBS 볼륨을 인스턴스에 추가한 경우 루트 디바이스 볼륨 외에 새 AMI에 대한 블록 디바이스 매핑에는 이러한 볼륨에 대한 정보가 포함됩니다.

Amazon EC2는 자동으로 AMI를 등록합니다.

6 – 새 AMI에서 인스턴스 시작

새 AMI를 사용하여 인스턴스를 시작할 수 있습니다.

7 - EC2 인스턴스 #2: 새 인스턴스

새 AMI를 사용하여 인스턴스를 시작하면 Amazon EC2는 스냅샷을 사용하여 인스턴스의 루트 볼륨에 대한 새 EBS 볼륨을 생성합니다. 인스턴스를 사용자 지정할 때 인스턴스 스토어 볼륨 또는 EBS 볼륨을 추가한 경우 새 AMI에 대한 블록 디바이스 매핑에는 이러한 볼륨에 대한 정보가 포함되고 새 AMI에서 시작하는 인스턴스에 대한 블록 디바이스 매핑에는 이러한 볼륨에 대한 정보가 자동으로 포함됩니다. 새 인스턴스에 대한 블록 디바이스 매핑에 지정된 인스턴스 스토어 볼륨은 새 볼륨이므로 AMI를 생성하는 데 사용된 인스턴스에 대한 인스턴스 스토어 볼륨의 데이터가 포함되어 있지 않습니다. EBS 볼륨의 데이터는 유지됩니다. 자세한 내용은 블록 디바이스 매핑 섹션을 참조하세요.

EBS 지원 AMI에서 새 인스턴스를 만들 때는 루트 볼륨과 추가 EBS 저장소를 모두 프로덕션 환경에 배치하기 전에 초기화해야 합니다. 자세한 내용은 Amazon EBS 사용 설명서Initialize Amazon EBS volumes를 참조하세요.

인스턴스에서 Linux AMI 생성

AWS Management Console 또는 명령줄을 사용하여 AMI를 생성할 수 있습니다.

Console
API 생성
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  3. AMI를 생성할 인스턴스를 선택하고 Actions(작업), Image and templates(이미지 및 템플릿), Create image(이미지 생성)를 차례로 선택합니다.

    작은 정보

    이 옵션이 비활성화되어 있다면 Amazon EBS 지원 인스턴스가 아님을 의미합니다.

  4. Create image(이미지 생성) 페이지에서 다음 정보를 지정합니다.

    1. Image name(이미지 이름)에 이미지의 고유 이름을 최대 127자로 입력합니다.

    2. Image description(이미지 설명)에 이미지에 대한 선택적 설명을 최대 255자로 입력합니다.

    3. No reboot(재부팅 안 함)의 Enable(활성화) 확인란을 선택 취소(기본값)된 상태로 두거나 선택합니다.

      • 재부팅 안 함에 대한 활성화 확인란을 선택 취소하면 Amazon EC2에서 새 AMI를 생성할 때 인스턴스가 재부팅되므로, 일관된 상태를 유지하기 위해 데이터가 저장 상태인 동안 연결된 볼륨의 스냅샷을 생성할 수 있습니다.

      • 재부팅 안 함에 대한 활성화 확인란을 선택하면 Amazon EC2에서 새 AMI를 생성할 때 인스턴스가 종료되지 않으며 재부팅되지 않습니다.

      주의

      재부팅 안 함(No reboot)을 사용 설정하는 경우 생성된 이미지의 파일 시스템 무결성을 보장할 수 없습니다.

    4. Instance volumes(인스턴스 볼륨) - 다음과 같이 루트 볼륨을 수정하고, Amazon EBS 및 인스턴스 스토어 볼륨을 추가할 수 있습니다.

      1. 루트 볼륨은 첫 번째 행에 정의됩니다.

        • 루트 볼륨의 크기를 변경하려면 [크기(Size)] 에 필요한 값을 입력합니다.

        • [종료 시 삭제 여부(Delete on termination)]를 선택할 경우 이 AMI에서 생성된 인스턴스를 종료하면 EBS 볼륨이 삭제됩니다. [종료 시 삭제 여부(Delete on termination)]를 선택 취소할 경우 인스턴스를 종료하면 EBS 볼륨이 삭제되지 않습니다. 자세한 내용은 인스턴스가 종료될 때 데이터 보존 섹션을 참조하세요.

      2. EBS 볼륨을 추가하려면 [볼륨 추가(Add volume)]를 선택합니다(새 행이 추가됨). 스토리지 유형에서 EBS를 선택하고 행의 필드를 작성합니다. 새 AMI에서 인스턴스를 시작하면 추가 볼륨이 인스턴스에 자동으로 연결됩니다. 빈 볼륨은 반드시 포맷하고 탑재해야 합니다. 스냅샷 기반 볼륨을 반드시 마운트해야 합니다.

      3. 인스턴스 스토어 볼륨을 추가하려면 AMI에 인스턴스 스토어 볼륨 추가를 참조하세요. 새 AMI에서 인스턴스를 시작하면 추가 볼륨이 자동으로 시작되어 탑재됩니다. 이러한 볼륨에는 AMI를 기반으로 하는 실행 중인 인스턴스에 대한 인스턴스 스토어 볼륨의 데이터가 포함되어 있지 않습니다.

    5. [태그(Tags)] - 동일한 태그 또는 다른 태그를 사용하여 AMI와 스냅샷을 태깅할 수 있습니다.

      • AMI와 스냅샷에 동일한 태그를 지정하려면 [이미지와 스냅샷을 함께 태깅(Tag image and snapshots together)]을 선택합니다. 생성된 AMI와 모든 스냅샷에 동일한 태그가 적용됩니다.

      • AMI와 스냅샷에 다른 태그를 지정하려면 [이미지 및 스냅샷을 개별적으로 태깅(Tag image and snapshots separately)]을 선택합니다. 생성된 AMI와 스냅샷에 서로 다른 태그가 적용됩니다. 그러나 모든 스냅샷의 태그는 동일하며 각 스냅샷에 다른 태그를 지정할 수는 없습니다.

      태그를 추가하려면 [태그 추가(Add tag)]를 선택하고 해당 태그에 대한 키와 값을 입력합니다. 각 태그에 대해 반복합니다.

    6. AMI를 생성할 준비가 되면 Create image(이미지 생성)를 선택합니다.

  5. 생성 중인 AMI의 상태를 보려면

    1. 탐색 창에서 AMI를 선택합니다.

    2. 필터를 Owned by me(내 소유)로 설정하고 목록에서 AMI를 찾습니다.

      처음에 상태는 pending이지만 몇 분 후에 available로 변경되어야 합니다.

  6. (선택 사항) 새 AMI에 대해 생성된 스냅샷을 보려면

    1. 이전 단계에서 찾은 AMI의 ID를 기록해 둡니다.

    2. 탐색 창에서 스냅샷를 선택합니다.

    3. 필터를 Owned by me(내 소유)로 설정한 다음 Description(설명) 열에 새 AMI ID가 있는 스냅샷을 찾습니다.

      이 AMI에서 인스턴스를 시작할 때, Amazon EC2가 이 스냅샷을 사용하여 루트 디바이스 볼륨을 생성합니다.

AWS CLI

다음 명령 중 하나를 사용할 수 있습니다. 명령줄 인터페이스에 대한 자세한 내용은 Amazon EC2 액세스 단원을 참조하세요.

스냅샷에서 Linux AMI 생성

인스턴스의 루트 디바이스 볼륨에 대한 스냅샷이 있는 경우 AWS Management Console 또는 명령줄을 사용하여 이 스냅샷에서 AMI를 생성할 수 있습니다.

Console
스냅샷에서 AMI 생성
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 [스냅샷(Snapshots)]을 선택합니다.

  3. AMI를 생성할 스냅샷을 선택하고 Actions(작업), Create image from snapshot(스냅샷에서 이미지 생성)을 선택합니다.

  4. 스냅샷에서 이미지 생성 페이지에서 다음 정보를 지정합니다.

    1. 이미지 이름(Image name)에 이미지를 설명하는 이름을 입력합니다.

    2. 설명(Description)에 이미지에 대한 간략한 설명을 입력합니다.

    3. 아키텍처(Architecture)에 대해 이미지 아키텍처를 선택합니다. 32비트의 경우 i386, 64비트의 경우 x86_64, 64비트 ARM의 경우 arm64, 64비트 macOS의 경우x86_64를 선택합니다.

    4. 루트 디바이스 이름(Root device name)에서 루트 디바이스 볼륨에 사용할 디바이스 이름을 입력합니다. 자세한 내용은 Linux 인스턴스의 디바이스 이름 단원을 참조하십시오.

    5. 가상화 유형(Virtualization type)에서 이 AMI에서 시작된 인스턴스에서 사용할 가상화 유형을 선택합니다. 자세한 내용은 Linux AMI 가상화 유형 단원을 참조하십시오.

    6. (반가상화 가상화에만 해당) 커널 ID(Kernel ID)에서 이미지의 운영 체제 커널을 선택합니다. 인스턴스의 루트 디바이스 볼륨 스냅샷을 사용하는 경우 원래 인스턴스와 동일한 커널 ID를 선택합니다. 확실하지 않다면 기본 커널을 사용하십시오.

    7. (반가상화 가상화에만 해당) RAM 디스크 ID(RAM disk ID)에서 이미지의 RAM 디스크를 선택합니다. 특정 커널을 선택할 경우 해당 커널을 지원하는 드라이버가 설치된 특정 RAM 디스크를 선택해야 합니다.

    8. 부트 모드에서 이미지의 부트 모드를 선택하거나, 이 AMI로 인스턴스가 시작될 때 인스턴스 유형에서 지원하는 부트 모드로 부팅되도록 기본값 사용을 선택합니다. 자세한 내용은 AMI의 부팅 모드 설정 단원을 참조하십시오.

    9. (선택 사항) 블록 디바이스 매핑에서 루트 볼륨을 사용자 지정하고 데이터 볼륨을 더 추가합니다.

      각 볼륨에 대해 크기, 유형, 성능 특성, 종료 시 삭제 동작 및 암호화 상태를 지정할 수 있습니다. 루트 볼륨의 경우 크기는 스냅샷의 크기보다 작을 수 없습니다. 볼륨 유형의 경우 범용 SSD gp3이 기본 선택 사항입니다.

    10. (선택 사항) 태그에서 새 AMI에 하나 이상의 태그를 추가할 수 있습니다. 태그를 추가하려면 [태그 추가(Add tag)]를 선택하고 해당 태그에 대한 키와 값을 입력합니다. 각 태그에 대해 반복합니다.

    11. AMI를 생성할 준비가 되면 Create image(이미지 생성)를 선택합니다.

AWS CLI
명령줄을 사용하여 스냅샷에서 AMI를 생성하려면

다음 명령 중 하나를 사용할 수 있습니다. 명령줄 인터페이스에 대한 자세한 내용은 Amazon EC2 액세스 단원을 참조하세요.

생성한 AMI에서 인스턴스 시작

인스턴스 또는 스냅샷에서 생성한 AMI에서 인스턴스를 시작할 수 있습니다.

AMI에서 인스턴스를 시작하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창의 이미지(Images) 아래에서 AMI를 선택합니다.

  3. 필터를 내 소유(Owned by me)로 설정하고 AMI를 선택합니다.

  4. AMI로 인스턴스 시작을 선택합니다.

  5. 인스턴스 시작 마법사에서 기본값을 적용하거나 사용자 지정 값을 지정합니다. 자세한 내용은 새 인스턴스 시작 마법사를 사용하여 인스턴스 시작 섹션을 참조하세요.