기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
컨테이너 레시피의 새 버전 생성
이 섹션에서는 컨테이너 레시피의 새 버전을 생성하는 방법을 보여줍니다.
콘솔을 사용하여 새 컨테이너 레시피 버전 생성
컨테이너 레시피의 새 버전을 만드는 것은 새 레시피를 만드는 것과 거의 같습니다. 차이점은 대부분의 경우 기본 레시피와 일치하도록 특정 세부 정보가 미리 선택된다는 것입니다. 다음 목록은 새 레시피 생성과 기존 레시피의 새 버전 생성 간의 차이점을 설명합니다.
레시피 세부 정보
-
이름 - 편집할 수 없습니다.
-
버전 – 필수입니다. 이 세부 정보는 현재 버전이나 다른 종류의 시퀀스로 미리 채워져 있지 않습니다. 만들려는 버전 번호를 major.minor.patch 형식으로 입력합니다. 버전이 이미 있는 경우 오류가 발생합니다.
기본 이미지
-
이미지 옵션 선택 - 미리 선택되었지만 편집할 수 있습니다. 기본 이미지의 소스 선택을 변경하면 선택한 원본 옵션에 따라 달라지는 기타 세부 정보가 손실될 수 있습니다.
기본 이미지 선택과 관련된 세부 정보를 보려면 선택 항목과 일치하는 탭을 선택하십시오.
인스턴스 구성
-
AMI ID - 미리 채워졌지만 편집할 수 있습니다.
-
스토리지(볼륨)
EBS 볼륨 1(AMI 루트) - 미리 채워집니다. 루트 볼륨 디바이스 이름, 스냅샷 또는 IOPS 선택은 편집할 수 없습니다. 하지만 크기와 같은 나머지 설정은 모두 변경할 수 있습니다. 새 볼륨을 추가할 수도 있습니다.
참고
다른 계정에서 공유AMI된 기본을 지정한 경우 지정된 보조 볼륨의 스냅샷도 계정과 공유해야 합니다.
작업 디렉터리
-
작업 디렉터리 경로 - 미리 입력되지만 편집할 수 있습니다.
구성 요소
구성 요소 - 레시피에 이미 포함된 구성 요소는 각 구성 요소 목록(빌드 및 테스트) 끝에 있는 선택된 구성 요소 섹션에 표시됩니다. 필요에 맞게 선택한 구성 요소를 제거하거나 재정렬할 수 있습니다.
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 섹션을 참조하십시오.
버전 관리 옵션 또는 입력 파라미터 설정을 확장하려면 설정 이름 옆에 있는 화살표를 선택하면 됩니다. 선택한 모든 구성 요소의 모든 설정을 확장하려면 모두 확장 스위치를 끄고 켤 수 있습니다.
-
Dockerfile 템플릿
-
Dockerfile 템플릿 - 미리 채워져 있지만 편집할 수 있습니다. Image Builder가 런타임 시 빌드 정보로 대체하는 다음과 같은 컨텍스트 변수를 지정할 수 있습니다.
- parentImage (필수)
-
빌드 시 이 변수는 레시피의 기본 이미지로 확인됩니다.
예시
FROM {{{ imagebuilder:parentImage }}}
- 환경(구성 요소가 지정된 경우 필수)
-
이 변수는 구성 요소를 실행하는 스크립트로 확인됩니다.
예시
{{{ imagebuilder:environments }}}
- 구성 요소(선택 사항)
-
Image Builder는 컨테이너 레시피에 포함된 구성 요소에 대한 빌드 및 테스트 구성 요소 스크립트를 해결합니다. 이 변수는 환경 변수 뒤에 Dockerfile의 아무 곳에나 배치할 수 있습니다.
예시
{{{ imagebuilder:components }}}
대상 리포지토리
-
대상 리포지토리 이름 - 파이프라인이 실행되는 리전(리전 1)에 대한 파이프라인의 배포 구성에 지정된 다른 리포지토리가 없는 경우 출력 이미지가 저장되는 Amazon 리포지토리입니다. ECR
새 컨테이너 레시피 버전을 생성하려면:
-
컨테이너 레시피 세부 정보 페이지 상단에서 새 버전 생성을 선택합니다. 컨테이너 레시피의 레시피 생성 페이지로 이동합니다.
-
새 버전을 만들려면 변경한 다음 레시피 생성을 선택합니다.
이미지 파이프라인을 생성할 때 컨테이너 레시피를 생성하는 방법에 대한 자세한 내용은 이 가이드의 시작하기 섹션의 2단계: 레시피 선택 섹션을 참조하십시오.
AWS CLI(을)를 사용하여 컨테이너 레시피 생성
의 imagebuilder create-container-recipe
명령을 사용하여 Image Builder 컨테이너 레시피를 생성하려면 다음 단계를 AWS CLI따르세요.
사전 조건
이 섹션에서 Image Builder 명령을 실행하여 를 사용하여 컨테이너 레시피를 생성하기 전에 레시피에서 사용할 구성 요소를 생성 AWS CLI해야 합니다. 다음 단계의 컨테이너 레시피 예제는 이 가이드의 에서 사용자 지정 구성 요소 생성 AWS CLI 섹션에서 만든 예제 구성 요소를 참조합니다.
구성 요소를 생성한 후 또는 기존 구성 요소를 사용하는 경우 레시피에 ARNs 포함할 를 기록해 둡니다.
-
CLI 입력 JSON 파일 생성
create-container-recipe 명령의 모든 입력을 인라인 명령 파라미터로 제공할 수 있습니다. 하지만 결과로 생성되는 명령은 상당히 길 수 있습니다. 명령을 간소화하기 위해 대신 모든 컨테이너 레시피 설정이 포함된 JSON 파일을 제공할 수 있습니다.
참고
JSON 파일의 데이터 값에 대한 이름 지정 규칙은 Image Builder API 작업 요청 파라미터에 지정된 패턴을 따릅니다. API 명령 요청 파라미터를 검토하려면 EC2 Image Builder API 참조의 CreateContainerRecipe 명령을 참조하세요.
데이터 값을 명령줄 파라미터로 제공하려면 AWS CLI 명령 참조에 지정된 파라미터 이름을 참조하십시오.
다음은 이 예제의 파라미터를 요약한 것입니다.
-
구성 요소(객체 배열, 필수) -
ComponentConfiguration
객체 배열을 포함합니다. 빌드 구성 요소를 하나 이상 지정해야 합니다.참고
Image Builder는 레시피에 지정한 순서대로 구성 요소를 설치합니다. 그러나 CIS 강화 구성 요소는 항상 마지막으로 실행되어 벤치마크 테스트가 출력 이미지에 대해 실행되도록 합니다.
-
구성 요소ARN(문자열, 필수) - 구성 요소 ARN입니다.
작은 정보
예제를 사용하여 자체 컨테이너 레시피를 생성하려면 레시피에 사용 중인 ARNs 구성 요소의 예제를 ARNs 로 바꿉니다. 여기에는 각각의 AWS 리전, 이름, 버전 번호가 포함됩니다.
파라미터(객체 배열) -
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 사용합니다.
-
-
-
containerType (문자열, 필수) - 생성할 컨테이너 유형입니다. 유효한 값으로는
DOCKER
가 포함됩니다. -
dockerfileTemplateData (문자열) - 인라인 데이터 블롭으로 표현되는 이미지를 빌드하는 데 사용되는 Dockerfile 템플릿입니다.
-
name(문자열, 필수) - 컨테이너 레시피의 이름입니다.
-
description(문자열) - 컨테이너 레시피에 대한 설명입니다.
-
parentImage (문자열, 필수) - 컨테이너 레시피가 사용자 지정 이미지의 기반으로 사용하는 이미지입니다. 값은 기본 이미지 ARN 또는 AMI ID일 수 있습니다.
-
platformOverride (문자열) - 사용자 지정 기본 이미지를 사용할 때 운영 체제 플랫폼을 지정합니다.
-
semanticVersion (문자열, 필수) - 특정 버전을 나타내는 숫자 값이 각 위치에 있는 컨테이너 레시피의 의미 버전: <major>.<minor>.<patch>. 예를 들어
1.0.0
(이)가 됩니다. Image Builder 리소스의 시맨틱 버전 관리에 대한 자세한 내용은 Image Builder의 의미 체계 버전 관리(을)를 참조하십시오. -
tags(문자열 맵) – 컨테이너 레시피에 연결되는 태그입니다.
-
instanceConfiguration (객체) - 컨테이너 이미지를 구축하고 테스트하기 위한 인스턴스를 구성하는 데 사용할 수 있는 옵션 그룹입니다.
-
이미지(문자열) - 컨테이너 빌드 및 테스트 인스턴스의 기본 이미지로 사용할 AMI ID입니다. 이 값을 지정하지 않으면 Image Builder는 적절한 Amazon ECS 최적화를 기본 이미지AMI로 사용합니다.
-
blockDeviceMappings (객체 배열) - image 파라미터에 AMI 지정된 Image Builder에서 인스턴스를 빌드하기 위해 연결할 블록 디바이스를 정의합니다.
-
deviceName (문자열) - 이러한 매핑이 적용되는 디바이스입니다.
-
ebs(객체) - 이 매핑에 대한 AmazonEBS별 구성을 관리하는 데 사용됩니다.
-
deleteOnTermination (부울) - 연결된 디바이스 종료 시 삭제를 구성하는 데 사용됩니다.
-
encrypted(부울) – 장치 암호화를 구성하는 데 사용됩니다.
-
volumeSize (정수) - 디바이스의 볼륨 크기를 재정의하는 데 사용됩니다.
-
volumeType (문자열) - 디바이스의 볼륨 유형을 재정의하는 데 사용됩니다.
-
-
-
-
targetRepository (객체, 필수) - 파이프라인이 실행되는 리전(리전 1)에 대한 파이프라인의 배포 구성에 지정된 다른 리포지토리가 없는 경우 컨테이너 이미지의 대상 리포지토리입니다.
-
repositoryName (문자열, 필수) - 출력 컨테이너 이미지가 저장되는 컨테이너 리포지토리의 이름입니다. 이 이름에 리포지토리 위치가 접두사로 추가됩니다.
-
service(문자열, 필수) – 이 이미지가 등록된 서비스를 지정합니다.
-
-
workingDirectory (문자열) - 빌드 및 테스트 워크플로에 사용할 작업 디렉터리입니다.
{ "components": [ { "componentArn": "arn:aws:imagebuilder:us-east-1:123456789012:component/helloworldal2/x.x.x" } ], "containerType": "DOCKER", "description": "My Linux Docker container image", "dockerfileTemplateData": "FROM {{{ imagebuilder:parentImage }}}\n{{{ imagebuilder:environments }}}\n{{{ imagebuilder:components }}}", "name": "amazonlinux-container-recipe", "parentImage": "amazonlinux:latest", "platformOverride": "Linux", "semanticVersion": "1.0.2", "tags": { "sometag" : "Tag detail" }, "instanceConfiguration": { "image": "ami-1234567890", "blockDeviceMappings": [ { "deviceName": "/dev/xvda", "ebs": { "deleteOnTermination": true, "encrypted": false, "volumeSize": 8, "volumeType": "gp2" } } ] }, "targetRepository": { "repositoryName": "myrepo", "service": "ECR" }, "workingDirectory": "/tmp" }
-
-
레시피 생성
다음 명령을 사용하여 레시피를 생성합니다.
--cli-input-json
파라미터의 이전 단계에서 생성한 JSON 파일의 이름을 입력합니다.aws imagebuilder create-container-recipe --cli-input-json file://
create-container-recipe.json
참고
-
JSON 파일 경로 시작 부분에
file://
표기법을 포함해야 합니다. -
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\)를 사용하고 Linux에서는 슬래시(/)를 사용합니다.
-