이미지 레시피의 새 버전 생성 - EC2 Image Builder

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

이미지 레시피의 새 버전 생성

이 섹션에서는 새 버전의 이미지 레시피를 만드는 방법을 설명합니다.

콘솔에서 새 이미지 레시피 버전 생성

새 레시피 버전을 만드는 것은 새 레시피를 만드는 것과 거의 같습니다. 차이점은 대부분의 경우 기본 레시피와 일치하도록 특정 세부 정보가 미리 선택된다는 것입니다. 다음 목록은 새 레시피 생성과 기존 레시피의 새 버전 생성 간의 차이점을 설명합니다.

새 버전의 기본 레시피 세부 정보
  • 이름편집할 수 없습니다.

  • 버전 – 필수입니다. 이 기본 세부 정보는 현재 버전이나 다른 종류의 시퀀스로 미리 채워져 있지 않습니다. <major>.<minor>.<patch> 형식으로 생성하려는 버전 번호를 입력합니다. 버전이 이미 있는 경우 오류가 발생합니다.

  • 이미지 선택 옵션 - 미리 선택되어 있지만 편집할 수 있습니다. 기본 이미지의 소스 선택을 변경하면 선택한 원본 옵션에 따라 달라지는 기타 세부 정보가 손실될 수 있습니다.

    기본 이미지 선택과 관련된 세부 정보를 보려면 선택 항목과 일치하는 탭을 선택하십시오.

    Managed image
    • 이미지 운영 체제(OS) - 편집할 수 없습니다.

    • 이미지 이름 - 기존 레시피에 대해 선택한 기본 이미지 조합을 기반으로 미리 선택됩니다. 하지만 이미지 선택 옵션을 변경하면 미리 선택한 이미지 이름을 잃게 됩니다.

    • 자동 버전 관리 옵션 - 기본 레시피와 일치하지 않습니다. 이 이미지 옵션의 기본값은 선택한 OS 버전 사용 옵션입니다.

      중요

      시맨틱 버전 관리를 사용하여 파이프라인 빌드를 시작하는 경우 이 값을 사용 가능한 최신 OS 버전 사용으로 변경해야 합니다. Image Builder 리소스의 시맨틱 버전 관리에 대한 자세한 내용은 Image Builder의 시맨틱 버전 관리(을)를 참조하십시오.

    AWS Marketplace image
    • 구독 — 이 탭은 열려 있어야 하며 구독한 이미지 양식을 기본 AWS Marketplace 레시피에 맞게 미리 선택해야 합니다. 레시피가 기본 이미지로 사용하는 이미지를 변경하면 선택한 원본 이미지에 의존하는 기타 세부 정보가 손실될 수 있습니다.

    AWS Marketplace 제품에 대한 자세한 내용은 구매자 안내서의 제품 구매를 참조하십시오.AWS Marketplace

    Custom AMI
    • AMI ID — 필수입니다. 하지만 이 설정은 원래 입력 내용에 미리 입력되어 있지 않습니다. 기본 이미지의 AMI ID를 입력해야 합니다.

  • 인스턴스 구성 - 설정이 미리 선택되어 있지만 편집할 수 있습니다.

    • Systems Manager 에이전트 - 이 확인란을 선택하거나 선택 취소하여 새 이미지에 Systems Manager 에이전트 설치를 제어할 수 있습니다. 새 이미지에 Systems Manager 에이전트를 포함하도록 기본적으로 확인란이 선택되어 있지 않습니다. 최종 이미지에서 Systems Manager 에이전트를 제거하려면 에이전트가 AMI에 포함되지 않도록 확인란을 선택합니다.

    • 사용자 데이터 – 이 영역을 사용하여 빌드 인스턴스를 시작할 때 실행할 명령 또는 명령 스크립트를 제공합니다. 하지만 이 값은 Systems Manager가 설치되었는지 확인하기 위해 Image Builder가 추가했을 수 있는 모든 명령을 대체합니다. 이러한 명령에는 새 이미지를 생성하기 전에 Image Builder가 Linux 이미지에 대해 일반적으로 실행하는 정리 스크립트가 포함됩니다.

      참고
      • 사용자 데이터를 입력하는 경우 기본 이미지에 Systems Manager 에이전트가 사전 설치되어 있거나 사용자 데이터에 설치를 포함해야 합니다.

      • Linux 이미지의 경우 사용자 데이터 스크립트에 perform_cleanup(이)라는 이름이 지정된 빈 파일을 만드는 명령을 포함하여 정리 단계를 실행해야 합니다. Image Builder는 이 파일을 탐지하고 새 이미지를 만들기 전에 정리 스크립트를 실행합니다. 자세한 내용과 샘플 스크립트는 EC2 Image Builder의 보안 모범 사례 섹션을 참조하세요.

  • 작업 디렉토리 - 미리 선택되어 있지만 편집할 수 있습니다.

  • 구성 요소 - 레시피에 이미 포함된 구성 요소는 각 구성 요소 목록(빌드 및 테스트) 끝에 있는 선택된 구성 요소 섹션에 표시됩니다. 필요에 맞게 선택한 구성 요소를 제거하거나 재정렬할 수 있습니다.

    CIS 강화 구성 요소는 Image Builder 레시피의 표준 구성 요소 순서 지정 규칙을 따르지 않습니다. 출력 이미지에 대해 벤치마크 테스트가 실행되도록 하기 위해 CIS 강화 구성 요소는 항상 마지막에 실행됩니다.

    참고

    빌드 및 테스트 구성 요소 목록에는 구성 요소 소유자 유형에 따라 사용 가능한 구성 요소가 표시됩니다. 레시피에 구성 요소를 추가하거나 업데이트하려면 찾고 있는 구성 요소의 소유자 유형을 선택합니다. 예를 들어 구독한 기본 이미지와 관련된 구성 요소를 추가하려면 검색 창 옆의 소유자 유형 Third party managed 목록에서 선택하십시오. AWS Marketplace

    선택한 구성 요소에 대해 다음 설정을 구성할 수 있습니다.

    • 버전 관리 옵션 - 미리 선택되어 있지만 변경할 수 있습니다. 이미지 빌드가 항상 최신 버전의 구성 요소를 사용하도록 하려면 사용 가능한 최신 구성 요소 버전 사용 옵션을 선택하는 것이 좋습니다. 레시피에서 특정 구성 요소 버전을 사용해야 하는 경우 구성 요소 버전 지정을 선택하고 나타나는 구성 요소 버전 상자에 버전을 입력할 수 있습니다.

    • 입력 파라미터 - 구성 요소가 받아들이는 입력 파라미터를 표시합니다. 은 이전 버전의 레시피 값으로 미리 채워집니다. 이 레시피에서 이 구성 요소를 처음 사용하는 경우 입력 매개변수에 대해 기본값이 정의된 경우 기본값은 상자에 회색으로 표시된 텍스트와 함께 나타납니다. 다른 값을 입력하지 않은 경우 Image Builder는 기본값을 사용합니다.

      입력 매개 변수가 필요하지만 구성 요소에 정의된 기본값이 없는 경우 값을 제공해야 합니다. 필수 매개변수가 누락되어 있고 기본값이 정의되지 않은 경우 Image Builder는 레시피 버전을 생성하지 않습니다.

      중요

      구성 요소 파라미터는 일반 텍스트 값이며 AWS CloudTrail에 기록됩니다. AWS Secrets Manager 또는 AWS Systems Manager 파라미터 저장소를 사용하여 암호를 저장하는 것이 좋습니다. Secrets Manager에 대한 자세한 내용은 AWS Secrets Manager 사용 설명서Secrets Manager란 무엇입니까?를 참조하십시오. AWS Systems Manager Parameter Store에 대한 자세한 내용은 AWS Systems Manager 사용 설명서AWS Systems Manager Parameter Store 섹션을 참조하십시오.

    버전 관리 옵션 또는 입력 파라미터 설정을 확장하려면 설정 이름 옆에 있는 화살표를 선택하면 됩니다. 선택한 모든 구성 요소의 모든 설정을 확장하려면 모두 확장 스위치를 끄고 켤 수 있습니다.

  • 스토리지(볼륨) — 미리 채워져 있습니다. 루트 볼륨 디바이스 이름, 스냅샷IOPS 선택은 편집할 수 없습니다. 하지만 크기와 같은 나머지 설정은 모두 변경할 수 있습니다. 새 볼륨을 추가하고 새 볼륨 또는 기존 볼륨을 암호화할 수도 있습니다.

    Image Builder가 소스 리전((빌드가 실행되는 리전)의 사용자 계정으로 생성한 이미지의 볼륨을 암호화하려면 이미지 레시피의 스토리지 볼륨 암호화를 사용해야 합니다. 빌드의 배포 단계에서 실행되는 암호화는 다른 계정이나 리전에 배포되는 이미지에만 적용됩니다.

    참고

    볼륨에 암호화를 사용하는 경우, 키가 루트 볼륨에 사용된 것과 동일하더라도 각 볼륨의 키를 개별적으로 선택해야 합니다.

새 이미지 레시피 버전을 만들려면
  1. 레시피 세부정보 페이지 상단에서 새 버전 생성을 선택합니다. 그러면 이미지 레시피 만들기 페이지로 이동합니다.

  2. 새 버전을 만들려면 변경한 다음 이미지 레시피 만들기를 선택합니다.

이미지 파이프라인을 생성할 때 이미지 레시피를 생성하는 방법에 대한 자세한 내용은 이 가이드의 시작하기 섹션의 2단계: 레시피 선택(을)를 참조하십시오.

를 사용하여 이미지 레시피를 생성하십시오. AWS CLI

에서 Image Builder create-image-recipe 명령을 사용하여 이미지 레시피를 AWS CLI생성하려면 다음 단계를 따르십시오.

사전 조건 

이 섹션의 Image Builder 명령을 실행하여 AWS CLI에서 이미지 레시피를 만들려면 먼저 레시피에서 사용하는 구성 요소를 만들어야 합니다. 다음 단계의 이미지 레시피 예제는 이 가이드의 에서 사용자 지정 구성 요소를 생성합니다. AWS CLI 섹션에서 만든 예제 구성 요소를 참조합니다.

구성 요소를 만든 후 또는 기존 구성 요소를 사용하는 경우, 레시피에 포함하려는 ARN을 기록해 두십시오.

  1. CLI 입력 JSON 파일 생성

    create-image-recipe 명령의 모든 입력을 인라인 명령 파라미터로 제공할 수 있습니다. 하지만 결과로 생성되는 명령은 상당히 길 수 있습니다. 명령을 간소화하기 위해 모든 레시피 설정이 포함된 JSON 파일을 대신 제공할 수 있습니다.

    참고

    JSON 파일의 데이터 값에 대한 명명 규칙은 Image Builder API 작업 요청 파라미터에 지정된 패턴을 따릅니다. API 명령 요청 파라미터를 검토하려면 EC2 Image Builder API 레퍼런스의 CreateImageRecipe명령을 참조하십시오.

    데이터 값을 명령줄 파라미터로 제공하려면 AWS CLI 명령 참조에 지정된 파라미터 이름을 참조하십시오.

    다음은 이러한 예제에서 지정하는 파라미터를 요약한 것입니다.

    • 이름(문자열, 필수) — 이미지 레시피의 이름입니다.

    • 설명(문자열) – 이미지 레시피에 대한 설명입니다.

    • parentImage(문자열, 필수) — 이미지 레시피가 사용자 지정 이미지의 기본으로 사용하는 이미지입니다. 값은 기본 이미지 ARN 또는 AMI ID일 수 있습니다.

      참고

      리눅스 예제에서는 Image Builder AMI를 사용하고, 윈도우 예제에서는 ARN을 사용합니다.

    • semanticVersion(문자열, 필수) — 이미지 레시피의 시맨틱 버전으로, <major>.<minor>.<patch> 형식으로 표현되며 각 위치에 숫자 값이 있어 특정 버전을 나타냅니다. 예를 들어, 값이 1.0.0(이)가 될 수 있습니다. Image Builder 리소스의 시맨틱 버전 관리에 대한 자세한 내용은 Image Builder의 시맨틱 버전 관리(을)를 참조하십시오.

    • 구성 요소(배열, 필수) - ComponentConfiguration 객체 배열을 포함합니다. 빌드 구성 요소를 하나 이상 지정해야 합니다.

      참고

      Image Builder는 레시피에 지정한 순서대로 구성 요소를 설치합니다. 하지만 CIS 강화 구성 요소는 출력 이미지에 대해 벤치마크 테스트가 실행되도록 하기 위해 항상 마지막에 실행됩니다.

      • componentARN(문자열, 필수) – 구성 요소 ARN입니다.

        작은 정보

        예제 중 하나를 사용하여 고유한 이미지 레시피를 만들려면 예제 ARN을 레시피에 사용 중인 구성 요소의 ARN으로 바꿔야 합니다.

      • 파라미터(객체 배열) - ComponentParameter 객체 배열을 포함합니다. 입력 파라미터가 필요하지만 구성 요소에 정의된 기본값이 없는 경우 값을 제공해야 합니다. 필수 매개변수가 누락되어 있고 기본값이 정의되지 않은 경우 Image Builder는 레시피 버전을 생성하지 않습니다.

        중요

        구성 요소 파라미터는 일반 텍스트 값이며 AWS CloudTrail에 기록됩니다. AWS Secrets Manager 또는 AWS Systems Manager 파라미터 저장소를 사용하여 암호를 저장하는 것이 좋습니다. Secrets Manager에 대한 자세한 내용은 AWS Secrets Manager 사용 설명서Secrets Manager란 무엇입니까?를 참조하십시오. AWS Systems Manager Parameter Store에 대한 자세한 내용은 AWS Systems Manager 사용 설명서AWS Systems Manager Parameter Store 섹션을 참조하십시오.

        • 이름(문자열, 필수) — 설정할 구성 요소 파라미터의 이름입니다.

        • (문자열 배열, 필수) - 명명된 구성 요소 파라미터의 값을 설정하는 문자열 배열을 포함합니다. 구성 요소에 대해 정의된 기본값이 있고 다른 값이 제공되지 않은 경우 기본값을 AWSTOE 사용합니다.

    • additionalInstanceConfiguration(객체) — 빌드 인스턴스의 추가 설정을 지정하고 스크립트를 시작합니다.

      • systemsManagerAgent(객체) - 빌드 인스턴스의 Systems Manager 에이전트에 대한 설정을 포함합니다.

        • uninstallAfterBuild(Boolean) - 새 AMI를 생성하기 전에 최종 빌드 이미지에서 Systems Manager 에이전트를 제거할지 여부를 제어합니다. 이 옵션을 true(으)로 설정하면 에이전트가 최종 이미지에서 제거됩니다. 이 옵션을 false(으)로 설정하면 에이전트가 그대로 남아 있으므로 새 AMI에 포함됩니다. 기본 값은 false입니다.

          참고

          uninstallAfterBuild 속성이 JSON 파일에 포함되어 있지 않고 다음 조건에 해당하는 경우 Image Builder는 최종 이미지에서 Systems Manager 에이전트를 제거하여 AMI에서 사용할 수 없도록 합니다.

          • userDataOverride 파일이 비어 있거나 JSON 파일에서 생략되었습니다.

          • Image Builder는 기본 이미지에 에이전트가 사전 설치되어 있지 않은 운영 체제의 빌드 인스턴스에 Systems Manager 에이전트를 자동으로 설치했습니다.

      • userDataOverride(문자열) - 빌드 인스턴스를 시작할 때 실행할 명령 또는 명령 스크립트를 제공합니다.

        참고

        사용자 데이터는 항상 base 64로 인코딩됩니다. 예를 들어, 다음 명령은 IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhcg==(으)로 인코딩됩니다.

        #!/bin/bash mkdir -p /var/bb/ touch /var

        Linux 예제에서는 이 인코딩된 값을 사용합니다.

    Linux

    다음 예제의 기본 이미지(parentImage 속성)는 AMI입니다. AMI를 사용하는 경우 AMI에 액세스할 수 있어야 하며 AMI는 소스 지역(Image Builder가 명령을 실행하는 동일한 지역)에 있어야 합니다. 파일을 create-image-recipe(으)로 저장하고 create-image-recipe.json 명령에 사용합니다.

    { "name": "BB Ubuntu Image recipe", "description": "Hello World image recipe for Linux.", "parentImage": "ami-0a01b234c5de6fabc", "semanticVersion": "1.0.0", "components": [ { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/bb$" } ], "additionalInstanceConfiguration": { "systemsManagerAgent": { "uninstallAfterBuild": true }, "userDataOverride": "IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhcg==" } }
    Windows

    다음 예제는 최신 버전의 Windows Server 2016 영어 풀 베이스 이미지를 참조합니다. 이 예제의 ARN은 사용자가 지정한 의미 체계 버전 필터(arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/x.x.x)를 기반으로 SKU의 최신 이미지를 참조합니다.

    { "name": "MyBasicRecipe", "description": "This example image recipe creates a Windows 2016 image.", "parentImage": "arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/x.x.x", "semanticVersion": "1.0.0", "components": [ { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.02/1" }, { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-imported-component/1.0.0/1" } ] }
    참고

    Image Builder 리소스의 시맨틱 버전 관리에 대한 자세한 내용은 Image Builder의 시맨틱 버전 관리(을)를 참조하십시오.

  2. 레시피 생성

    다음 명령을 사용하여 레시피를 생성합니다. 이전 단계에서 생성한 JSON 파일의 이름을 --cli-input-json 파라미터에 입력합니다.

    aws imagebuilder create-image-recipe --cli-input-json file://create-image-recipe.json
    참고
    • JSON 파일 경로의 시작 부분에 file:// 표기법을 포함시켜야 합니다.

    • JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\)를 사용하고 Linux에서는 슬래시(/)를 사용합니다.

콘솔에서 VM을 기본 이미지로 가져옵니다.

이 섹션에서는 가상 머신(VM)을 이미지 레시피의 기본 이미지로 가져오는 방법을 중점적으로 다룹니다. 레시피 또는 레시피 버전 생성과 관련된 다른 단계는 여기서 다루지 않습니다. Image Builder 콘솔에서 파이프라인 생성 마법사를 사용하여 새 이미지 레시피를 생성하는 추가 단계는 콘솔 마법사: AMI 생성(을)를 참조하십시오. 새 이미지 레시피 또는 레시피 버전을 생성하기 위한 추가 단계는 이미지 레시피의 새 버전 생성(을)를 참조하십시오.

Image Builder 콘솔에서 VM을 이미지 레시피의 기본 이미지로 가져오려면 다음 단계와 기타 필수 단계를 따라 레시피 또는 레시피 버전을 생성하십시오.

  1. 기본 이미지의 이미지 선택 섹션에서 기본 이미지 가져오기 옵션을 선택합니다.

  2. 평소와 같이 이미지 운영 체제 (OS)OS 버전을 선택합니다.

VM 가져오기 구성

가상화 환경에서 VM을 내보내는 경우 이 프로세스는 VM 환경, 설정 및 데이터의 스냅샷 역할을 하는 하나 이상의 디스크 컨테이너 파일 세트를 만듭니다. 이러한 파일을 사용하여 VM을 이미지 레시피의 기본 이미지로 가져올 수 있습니다. Image Builder에서 VM을 가져오는 작업에 대한 자세한 내용은 VM 이미지 가져오기 및 내보내기(을)를 참조하십시오.

가져오기 소스의 위치를 지정하려면 다음 단계를 따르세요.

소스 가져오기

디스크 컨테이너 1 섹션에서 가져올 첫 번째 VM 이미지 디스크 컨테이너 또는 스냅샷의 소스를 지정합니다.

  1. 소스 - S3 버킷 또는 EBS 스냅샷일 수 있습니다.

  2. 디스크의 S3 위치 선택 - 디스크 이미지가 저장되어 있는 Amazon S3의 위치를 입력합니다. 위치를 찾아보려면 S3 찾아보기를 선택합니다.

  3. 디스크 컨테이너를 추가하려면 디스크 컨테이너 추가를 선택합니다.

IAM 역할

IAM 역할을 VM 가져오기 구성에 연결하려면 IAM 역할 드롭다운 목록에서 역할을 선택하거나 새로운 역할 생성을 선택하여 새 역할을 생성합니다. 새 역할을 생성하면 IAM 역할 콘솔 페이지가 별도의 탭에 열립니다.

고급 설정 - 선택 사항

다음 설정은 선택 사항입니다. 이러한 설정을 사용하여 가져오기로 생성되는 기본 이미지에 대한 암호화, 라이선스, 태그 등을 구성할 수 있습니다.

일반
  1. 기본 이미지에 고유한 이름을 지정합니다. 값을 입력하지 않으면 기본 이미지가 레시피 이름을 상속합니다.

  2. 기본 이미지의 버전을 지정합니다. <major>.<minor>.<patch> 형식을 사용합니다. 값을 입력하지 않으면 기본 이미지가 레시피 버전을 상속합니다.

  3. 기본 이미지에 대한 설명을 입력할 수도 있습니다.

기본 이미지 아키텍처

VM 가져오기 소스의 아키텍처를 지정하려면 아키텍처 목록에서 값을 선택합니다.

암호화(Encryption)

VM 디스크 이미지가 암호화된 경우 가져오기 프로세스에 사용할 키를 제공해야 합니다. 가져오기를 AWS KMS key 지정하려면 암호화 (KMS 키) 목록에서 값을 선택합니다. 목록에는 현재 리전에서 사용자 계정이 액세스할 수 있는 KMS 키가 포함되어 있습니다.

라이선스 관리

VM을 가져오면 가져오기 프로세스에서 VM OS를 자동으로 탐지하고 적절한 라이선스를 기본 이미지에 적용합니다. OS 플랫폼에 따라 라이선스 유형은 다음과 같습니다.

  • 라이선스 포함 - 플랫폼에 적합한 AWS 라이선스가 기본 이미지에 적용됩니다.

  • 기존 보유 라이선스 사용(BYOL) - 해당하는 경우 VM의 라이선스를 보유합니다.

로 AWS License Manager 생성한 라이선스 구성을 기본 이미지에 첨부하려면 라이선스 구성 이름 목록에서 선택합니다. License Manager에 대한 자세한 내용은 다음을 참조하십시오. AWS License Manager

참고
  • 라이선스 구성은 기업 계약 조건에 기반한 라이선스 규칙을 포함합니다.

  • Linux는 BYOL 라이선스만 지원합니다.

태그(기본 이미지)

태그는 키-값 페어를 사용하여 검색 가능한 텍스트를 Image Builder 리소스에 할당합니다. 가져온 기본 이미지에 태그를 지정하려면 상자에 키-값 페어를 입력합니다.

태그를 추가하려면 태그 추가를 선택합니다. 태그를 제거하려면 태그 제거를 선택합니다.