기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자습서: AWS CloudFormation 배포 작업의 변수를 사용하는 파이프라인 생성
이 자습서에서는 AWS CodePipeline 콘솔을 사용하여 배포 작업이 포함된 파이프라인을 생성합니다. 파이프라인이 실행되면 템플릿은 스택을 생성하고 outputs
파일도 생성합니다. 스택 템플릿에서 생성된 출력은 의 AWS CloudFormation 작업에서 생성된 변수입니다 CodePipeline.
템플릿에서 스택을 생성하는 작업에서 변수 네임스페이스를 지정합니다. 그런 다음 outputs
파일에 의해 생성된 변수는 후속 작업에서 사용할 수 있습니다. 이 예제에서는 AWS CloudFormation 작업에서 생성된 StackName
변수를 기반으로 변경 세트를 생성합니다. 수동 승인 후 변경 세트를 실행한 다음 StackName
변수를 기반으로 스택을 삭제하는 스택 삭제 작업을 생성합니다.
중요
파이프라인 생성의 일환으로 고객이 제공하는 S3 아티팩트 버킷이 아티팩트 CodePipeline 에 사용됩니다. (이는 S3 소스 작업에 사용되는 버킷과 다릅니다.) S3 아티팩트 버킷이 파이프라인의 계정과 다른 계정에 있는 경우 S3 아티팩트 버킷을 안전하고 신뢰할 수 AWS 계정 있는 에서 소유해야 합니다.
주제
사전 조건: 서비스 역할 및 AWS CloudFormation CodeCommit 리포지토리 생성
다음 항목이 있어야 합니다.
-
CodeCommit 리포지토리입니다. 에서 생성한 AWS CodeCommit 리포지토리를 사용할 수 있습니다자습서: 간단한 파이프라인 생성(CodeCommit리포지토리).
-
이 예제에서는 템플릿에서 Amazon DocumentDB 스택을 생성합니다. Amazon DocumentDB 에 대해 다음 권한을 가진 AWS CloudFormation 서비스 역할을 생성하려면 AWS Identity and Access Management (IAM)를 사용해야 합니다.
"rds:DescribeDBClusters", "rds:CreateDBCluster", "rds:DeleteDBCluster", "rds:CreateDBInstance"
1단계: 샘플 AWS CloudFormation 템플릿 다운로드, 편집 및 업로드
샘플 AWS CloudFormation 템플릿 파일을 다운로드하여 CodeCommit 리포지토리에 업로드합니다.
-
해당 리전의 샘플 템플릿 페이지로 이동합니다. 예를 들어, us-west-2의 페이지는 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html에 있습니다. Amazon DocumentDB에서 Amazon DocumentDB 클러스터클러스터용 템플릿을 다운로드하세요. 파일 이름은
documentdb_full_stack.yaml
입니다. -
documentdb_full_stack.yaml
파일의 압축을 풀고 텍스트 편집기에서 엽니다. 다음과 같이 변경합니다.-
이 예제에서는 템플릿의
Parameters
섹션에 다음Purpose:
파라미터를 추가합니다.Purpose: Type: String Default: testing AllowedValues: - testing - production Description: The purpose of this instance.
-
이 예제에서는 템플릿의
Outputs:
섹션에 다음StackName
출력을 추가합니다.StackName: Value: !Ref AWS::StackName
-
-
템플릿 파일을 AWS CodeCommit 리포지토리에 업로드합니다. 압축을 풀고 편집한 템플릿 파일을 리포지토리의 루트 디렉터리에 업로드해야 합니다.
CodeCommit 콘솔을 사용하여 파일을 업로드하려면:
-
CodeCommit 콘솔을 열고 리포지토리 목록에서 리포지토리를 선택합니다.
-
파일 추가를 선택한 후 파일 업로드를 선택합니다.
-
파일 선택을 선택한 다음 파일을 찾습니다. 사용자 이름과 이메일 주소를 입력하여 변경 사항을 커밋합니다. 변경 사항 커밋을 선택합니다.
파일은 리포지토리의 루트 수준에서 다음과 같아야 합니다.
documentdb_full_stack.yaml
-
2단계: 파이프라인 생성
이 단원에서는 다음 작업을 통해 파이프라인을 생성합니다.
-
소스 아티팩트가 템플릿 파일인 CodeCommit 작업이 포함된 소스 단계입니다.
-
배포 작업이 있는 AWS CloudFormation 배포 단계입니다.
마법사가 생성한 소스 및 배포 단계의 각 작업에는 각각 변수 네임스페이스 SourceVariables
및 DeployVariables
가 할당됩니다. 작업에 네임스페이스가 할당되어 있으므로 이 예제에 구성된 변수를 다운스트림 작업에 사용할 수 있습니다. 자세한 내용은 변수 참조 단원을 참조하십시오.
마법사를 사용하여 파이프라인을 생성하려면
에 로그인 AWS Management Console 하고 http://console.aws.amazon.com/codesuite/codepipeline/home
CodePipeline 콘솔을 엽니다. -
Welcome(시작) 페이지, 시작하기 페이지 또는 Pipelines(파이프라인) 페이지에서 파이프라인 생성을 선택합니다.
-
1단계: 파이프라인 설정 선택의 파이프라인 이름에
MyCFNDeployPipeline
을 입력합니다. -
파이프라인 유형에서 이 자습서의 목적에 맞는 V1을 선택합니다. V2를 선택할 수도 있지만 파이프라인 유형별 특성과 가격이 다르다는 점에 유의하십시오. 자세한 내용은 파이프라인 유형 단원을 참조하십시오.
-
서비스 역할에서 다음 중 하나를 수행합니다.
-
CodePipeline 가 에서 서비스 역할을 생성하도록 허용하려면 새 서비스 역할을 선택합니다IAM.
-
Existing service role(기존 서비스 역할)을 선택합니다. 역할 이름의 목록에서 서비스 역할을 선택합니다.
-
-
아티팩트 스토어에서 다음과 같이 합니다.
-
파이프라인에 대해 선택한 리전의 파이프라인에 기본값으로 지정된 Amazon S3 아티팩트 버킷과 같은 기본 아티팩트 스토어를 사용하려면 기본 위치를 선택합니다.
-
파이프라인과 동일한 리전에 Amazon S3 아티팩트 버킷과 같이 이미 아티팩트 스토어가 있는 경우 사용자 지정 위치을 선택합니다.
참고
이는 소스 코드에 대한 소스 버킷이 아닙니다. 이 파이프라인은 아티팩트 스토어입니다. S3 버킷과 같은 개별 아티팩트 스토어는 각 파이프라인에 필요합니다. 파이프라인을 생성하거나 편집할 때는 파이프라인 리전에 아티팩트 버킷이 있어야 하며 작업을 실행하는 AWS 리전당 아티팩트 버킷이 하나 있어야 합니다.
자세한 내용은 입력 및 출력 아티팩트 및 CodePipeline 파이프라인 구조 참조 단원을 참조하세요.
Next(다음)를 선택합니다.
-
-
2단계: 소스 단계 추가:
-
소스 공급자에서 AWS CodeCommit을 선택합니다.
-
리포지토리 이름 에서 에서 생성한 CodeCommit 리포지토리의 이름을 선택합니다1단계: CodeCommit 리포지토리 생성.
-
[Branch name]에서 가장 마지막 코드 업데이트가 포함된 브랜치의 이름을 선택합니다.
리포지토리 이름과 브랜치를 선택하면 이 파이프라인에 대해 생성할 Amazon CloudWatch Events 규칙이 표시됩니다.
Next(다음)를 선택합니다.
-
-
Step 3: Add build stage(3단계: 빌드 단계 추가)에서 Skip build stage(빌드 단계 건너뛰기)를 선택하고 Skip(건너뛰기)을 다시 선택하여 경고 메시지를 수락합니다.
Next(다음)를 선택합니다.
-
4단계: 배포 단계 추가에서 다음과 같이 합니다.
-
작업 이름에서 배포를 선택합니다. Deploy provider(배포 공급자)에서 CloudFormation를 선택합니다.
-
작업 모드에서 스택 생성 또는 업데이트를 선택합니다.
-
스택 이름에 스택의 이름을 입력합니다. 템플릿이 생성하는 스택의 이름입니다.
-
출력 파일 이름에 출력 파일의 이름(예:
outputs
)을 입력합니다. 스택이 생성된 후 작업에 의해 생성되는 파일의 이름입니다. -
고급을 확장합니다. 매개변수 재정의에서 템플릿 재정의를 키-값 쌍으로 입력합니다. 예를 들어 이 템플릿에는 다음과 같은 재정의가 필요합니다.
{ "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "
UserName
", "MasterPassword": "Password
", "DBInstanceClass": "db.r4.large", "Purpose": "testing"}재정의를 입력하지 않으면 템플릿에서 기본값으로 스택을 생성합니다.
-
Next(다음)를 선택합니다.
-
[파이프라인 생성]을 선택합니다. 파이프라인이 실행되도록 허용합니다. 2단계 파이프라인이 완료되어 단계를 추가할 준비가 되었습니다.
-
3단계: AWS CloudFormation 배포 작업을 추가하여 변경 세트 생성
파이프라인에서 수동 승인 작업 전에 가 변경 세트를 AWS CloudFormation 생성할 수 있는 다음 작업을 생성합니다.
-
에서 CodePipeline 콘솔을 엽니다https://console.aws.amazon.com/codepipeline/
. 파이프라인에서 파이프라인을 선택하고 보기를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.
-
파이프라인을 편집하거나 편집 모드에서 파이프라인을 계속 표시합니다.
-
배포 단계를 편집하려면 선택합니다.
-
이전 작업에서 생성된 스택에 대한 변경 세트를 생성하는 배포 작업을 추가합니다. 단계의 기존 작업 뒤에 이 작업을 추가합니다.
-
작업 이름에 Change_Set를 입력합니다. 작업 공급자에서 AWS CloudFormation 을 선택합니다.
-
입력 아티팩트 에서 를 선택합니다SourceArtifact.
-
작업 모드에서 변경 사항 세트 생성 또는 교체를 선택합니다.
-
스택 이름에 다음과 같이 변수 구문을 입력합니다. 변경 세트가 생성되는 스택의 이름입니다. 여기서 기본 네임스페이스
DeployVariables
는 작업에 할당됩니다.#{DeployVariables.StackName}
-
변경 세트 이름에서 변경 세트의 이름을 입력합니다.
my-changeset
-
파라미터 재정의에서
Purpose
파라미터를testing
에서production
으로 변경합니다.{ "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "production"}
-
완료를 선택하여 작업을 저장합니다.
-
4단계: 수동 승인 작업 추가
파이프라인에서 수동 승인 작업을 생성합니다.
-
파이프라인을 편집하거나 편집 모드에서 파이프라인을 계속 표시합니다.
-
배포 단계를 편집하려면 선택합니다.
-
변경 세트를 생성하는 배포 작업 다음에 수동 승인 작업을 추가합니다. 이 작업을 사용하면 파이프라인이 변경 세트를 실행하기 AWS CloudFormation 전에 에서 생성된 리소스 변경 세트를 확인할 수 있습니다.
5단계: 배포 작업을 추가하여 CloudFormation 변경 세트 실행
수동 승인 작업 후 가 변경 세트를 AWS CloudFormation 실행할 수 있도록 파이프라인에서 다음 작업을 생성합니다.
-
에서 CodePipeline 콘솔을 엽니다https://console.aws.amazon.com/codepipeline/
. 파이프라인에서 파이프라인을 선택하고 보기를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.
-
파이프라인을 편집하거나 편집 모드에서 파이프라인을 계속 표시합니다.
-
배포 단계를 편집하려면 선택합니다.
-
이전 수동 작업에서 승인된 변경 세트를 실행할 배포 작업을 추가합니다.
-
작업 이름에 Execute_Change_Set를 입력합니다. 작업 공급자에서 AWS CloudFormation을 선택합니다.
-
입력 아티팩트 에서 를 선택합니다SourceArtifact.
-
작업 모드에서 변경 세트 실행을 선택합니다.
-
스택 이름에 다음과 같이 변수 구문을 입력합니다. 변경 세트가 생성되는 스택의 이름입니다.
#{DeployVariables.StackName}
-
변경 세트 이름에 이전 작업에서 생성한 변경 세트의 이름을 입력합니다.
my-changeset
-
완료를 선택하여 작업을 저장합니다.
-
파이프라인 실행을 계속합니다.
-
6단계: 배포 작업을 추가하여 CloudFormation 스택 삭제
가 출력 파일의 변수에서 스택 이름을 AWS CloudFormation 가져오고 스택을 삭제할 수 있도록 파이프라인에서 최종 작업을 생성합니다.
-
에서 CodePipeline 콘솔을 엽니다https://console.aws.amazon.com/codepipeline/
. 파이프라인에서 파이프라인을 선택하고 보기를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.
-
파이프라인을 편집하도록 선택합니다.
-
배포 단계를 편집하려면 선택합니다.
-
스택을 삭제할 배포 작업을 추가합니다.
-
작업 이름 에서 을 선택합니다DeleteStack. Deploy provider(배포 공급자)에서 CloudFormation를 선택합니다.
-
작업 모드에서 스택 삭제를 선택합니다.
-
스택 이름에 다음과 같이 변수 구문을 입력합니다. 작업이 삭제하는 스택의 이름입니다.
-
완료를 선택하여 작업을 저장합니다.
-
저장을 선택하여 파이프라인을 저장합니다.
파이프라인은 저장될 때 실행됩니다.
-