기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CodePipeline에 교차 리전 작업 추가
AWS CodePipeline에는 자동화된 릴리스 프로세스에 대해 빌드, 테스트 및 배포 리소스를 구성하는 데 도움이 되는 여러 작업이 포함되어 있습니다. 파이프라인과 다른 AWS 리전에 있는 작업을 파이프라인에 추가할 수 있습니다. AWS 서비스가 작업 제공자이고 이 작업 유형/공급자 유형이 파이프라인과 다른 AWS 리전에 있는 경우 이 작업은 교차 리전 작업입니다.
참고
교차 리전 작업이 지원되며 CodePipeline이 지원되는 AWS 리전에서만 만들 수 있습니다. CodePipeline에 대해 지원되는 AWS 리전 목록은 in AWS CodePipeline 할당량 섹션을 참조하세요.
콘솔, AWS CLI 또는 AWS CloudFormation을 사용하여 파이프라인에 교차 리전 작업을 추가할 수 있습니다.
참고
CodePipeline의 특정 작업 유형은 특정 AWS 리전에서만 사용 가능합니다. 또한 작업 유형을 사용 가능한 경우 AWS 리전이 있을 수 있지만 해당 작업 유형에 대한 특정 AWS 공급자는 사용 가능하지 않습니다.
파이프라인을 생성하거나 편집할 때 파이프라인 리전에 아티팩트 버킷이 있어야 하며 작업을 실행하려는 리전마다 아티팩트 버킷 하나가 있어야 합니다. ArtifactStores
파라미터에 대한 자세한 내용은 CodePipeline 파이프라인 구조 참조을 참조하세요.
참고
CodePipeline은 교차 리전 작업을 수행할 때 한 AWS 리전에서 다른 리전으로 아티팩트를 복사하는 작업을 처리합니다.
콘솔을 사용하여 파이프라인 또는 교차 리전 작업을 생성하는 경우 기본 아티팩트 버킷은 작업이 있는 리전의 CodePipeline에 의해 구성됩니다. AWS CLI, AWS CloudFormation 또는 SDK를 사용하여 파이프라인 또는 교차 리전 작업을 생성할 때 작업이 있는 각 리전마다 아티팩트 버킷을 제공합니다.
참고
아티팩트 버킷 및 암호화 키는 교차 리전 작업과 동일한 AWS 리전 및 파이프라인과 동일한 계정에 생성해야 합니다.
다음 작업 유형에는 교차 리전 작업을 생성할 수 없습니다.
-
소스 작업
-
타사 작업
-
사용자 지정 작업
참고
CodePipeline에서 교차 리전 Lambda 호출 작업을 사용하는 경우, PutJobSuccessResult 및 PutJobFailureResult를 사용한 lambda 실행 상태는 CodePipeline이 있는 리전이 아니라 Lambda 함수가 있는 AWS 리전으로 전송되어야 합니다.
파이프라인에 단계의 일부로 교차 리전 작업이 포함될 경우 CodePipeline은 파이프라인 리전에서 작업 리전으로 교차 리전 작업의 입력 아티팩트만 복제합니다.
참고
CloudWatch Events 변경 감지 리소스가 있는 리전과 파이프라인 리전은 동일하게 유지됩니다. 파이프라인이 호스팅되는 리전은 변경되지 않습니다.
파이프라인에서 교차 리전 작업 관리(콘솔)
CodePipeline 콘솔을 사용하여 교차 리전 작업을 기존 파이프라인에 추가할 수 있습니다. 파이프라인 생성 마법사를 사용하여 교차 리전 작업으로 새로운 파이프라인을 생성하려면 사용자 지정 파이프라인 생성(콘솔) 항목을 참조하십시오.
콘솔에서 작업 공급자와 해당 공급자에 대해 해당 리전에서 생성한 리소스를 나열하는 리전 필드를 선택하여 파이프라인 단계에서 교차 리전 작업을 생성합니다. 교차 리전 작업을 추가하면 CodePipeline은 작업 리전에서 별도의 아티팩트 버킷을 사용합니다. 교차 리전 아티팩트 버킷에 대한 자세한 내용은 CodePipeline 파이프라인 구조 참조 항목을 참조하십시오.
파이프라인 단계에 교차 리전 작업 추가(콘솔)
콘솔을 사용하여 파이프라인에 교차 리전 작업을 추가합니다.
참고
변경 사항이 저장된 파이프라인이 실행 중일 경우 실행이 완료되지 않습니다.
교차 리전 작업을 추가하려면
-
http://console.aws.amazon.com/codesuite/codepipeline/home
에서 콘솔에 로그인합니다. -
파이프라인을 선택한 다음 편집을 선택합니다.
-
다이어그램의 하단에서 새 단계를 추가하려면 + Add stage(+ 단계 추가)를 선택하고 기존 단계에 작업을 추가하려면 Edit stage(단계 편집)을 선택합니다.
-
편집: <단계>에서 + Add action group(+ 작업 그룹 추가)를 선택하여 연속 작업을 추가합니다. 또는 + Add action(+ 작업 추가)를 선택하여 병렬 작업을 추가합니다.
-
작업 편집 페이지에서 다음 작업을 수행하십시오.
-
작업 이름에 교차 리전 작업 이름을 입력합니다.
-
Action provider(작업 공급자)에서 작업 공급자를 선택합니다.
-
리전에서 작업에 대한 리소스를 생성했거나 생성하려는 AWS 리전을 선택합니다. 리전을 선택하면 해당 리전의 사용 가능한 리소스가 선택 목록에 나열됩니다. 리전 필드는 이 작업 유형 및 공급자 유형에 대해 AWS 리소스가 생성되는 위치를 지정합니다. 이 필드는 작업 공급자가 AWS 서비스인 작업에 대해서만 표시합니다. 리전 필드의 기본값은 파이프라인과 동일한 AWS 리전입니다.
-
입력 아티팩트에서 이전 단계의 적절한 입력을 선택합니다. 예를 들어 이전 단계가 소스 단계인 경우 SourceArtifact를 선택합니다.
-
구성 중인 작업 공급자에 대한 필수 필드를 모두 작성합니다.
-
출력 아티팩트에서 다음 단계의 적절한 출력을 선택합니다. 예를 들어 다음 단계가 배포 단계인 경우 BuildArtifact를 선택합니다.
-
Save(저장)를 선택합니다.
-
-
편집: <단계>에서 완료를 선택합니다.
-
Save(저장)를 선택합니다.
파이프라인 단계에서 교차 리전 작업 편집(콘솔)
콘솔을 사용하여 파이프라인에서 기존의 교차 리전 작업을 편집합니다.
참고
변경 사항이 저장된 파이프라인이 실행 중일 경우 실행이 완료되지 않습니다.
교차 리전 작업 편집 방법
-
https://console.aws.amazon.com/codesuite/codepipeline/home.
에서 콘솔에 로그인합니다. -
파이프라인을 선택한 다음 편집을 선택합니다.
-
Edit stage(단계 편집)을 선택합니다.
-
편집: <단계>에서 아이콘을 선택하여 기존 작업을 편집합니다.
-
작업 편집 페이지에서 해당 필드를 적절하게 변경합니다.
-
편집: <단계>에서 완료를 선택합니다.
-
Save(저장)를 선택합니다.
파이프라인 단계에서 교차 리전 작업 삭제(콘솔)
콘솔을 사용하여 파이프라인에서 기존의 교차 리전 작업을 삭제합니다.
참고
변경 사항이 저장된 파이프라인이 실행 중일 경우 실행이 완료되지 않습니다.
교차 리전 작업 삭제 방법
-
http://console.aws.amazon.com/codesuite/codepipeline/home
에서 콘솔에 로그인합니다. -
파이프라인을 선택한 다음 편집을 선택합니다.
-
Edit stage(단계 편집)을 선택합니다.
-
편집: <단계>에서 아이콘을 선택하여 기존 작업을 삭제합니다.
-
편집: <단계>에서 완료를 선택합니다.
-
Save(저장)를 선택합니다.
파이프라인에 교차 리전 작업 추가(CLI)
AWS CLI를 사용하여 교차 리전 작업을 기존 파이프라인에 추가할 수 있습니다.
AWS CLI를 사용하여 파이프라인 단계에 교차 리전 작업을 생성하려면 선택 사항인 region
필드와 함께 구성 작업을 추가합니다. 작업의 리전에 아티팩트 버킷이 이미 생성되어 있어야 합니다. 단일 리전 파이프라인의 artifactStore
파라미터를 제공하는 대신 artifactStores
파라미터를 사용하여 각 리전의 아티팩트 버킷 목록을 포함시킵니다.
참고
이 연습과 예제에서 RegionA
는 파이프라인이 생성되는 리전입니다. CodePipeline에서 사용된 파이프라인 아티팩트와 서비스 역할을 저장하는 데 사용된 RegionA
Amazon S3버킷에 액세스할 수 있습니다. RegionB
는 CodeDeploy에서 사용하는 CodeDeploy 애플리케이션, 배포 그룹, 서비스 역할이 생성된 리전입니다.
사전 조건
다음을 생성해야 합니다.
-
RegionA
의 파이프라인. -
RegionB
의 Amazon S3 아티팩트 버킷입니다. -
RegionB
의 CodeDeploy 애플리케이션 및 교차 리전 배포 작업을 위한 배포 그룹과 같은 작업에 대한 리소스입니다.
파이프라인에 교차 리전 작업 추가(CLI)
AWS CLI를 사용하여 파이프라인에 교차 리전 작업을 추가합니다.
교차 리전 작업을 추가하려면
-
RegionA
의 파이프라인의 경우, get-pipeline 명령을 실행하여 파이프라인 구조를 JSON 파일로 복사합니다. 예를 들어,MyFirstPipeline
라는 파이프라인의 경우 다음 명령을 입력합니다.aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
이 명령은 아무 것도 반환하지 않지만 생성한 파일이 명령을 실행한 디렉터리에 표시되어야 합니다.
-
region
필드를 추가하여 작업을 위한 리전 및 리소스가 포함된 교차 리전 작업으로 새 단계를 추가합니다. 다음 JSON 예제에서는 공급자가 CodeDeploy인 교차 리전 배포 작업으로 배포 단계를 새 리전us-east-1
에 추가합니다.{ "name": "Deploy", "actions": [ { "inputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Deploy", "region": "
RegionB
", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "name
", "DeploymentGroupName": "name
" }, "runOrder": 1 } -
파이프라인 구조에서
artifactStore
필드를 제거하고, 새로운 교차 리전 작업을 위한artifactStores
맵을 추가합니다. 매핑에는 작업이 있는 각 AWS 리전에 대한 항목이 포함되어야 합니다. 매핑의 각 항목에 대해 리소스는 해당 AWS 리전에 있어야 합니다. 아래 예에서ID-A
는RegionA
의 암호화 키 ID이며ID-B
는RegionB
의 암호화 키 ID입니다."artifactStores":{ "
RegionA
":{ "encryptionKey
":{ "id":"ID-A
", "type":"KMS" }, "location":"Location1
", "type":"S3" }, "RegionB
":{ "encryptionKey
":{ "id":"ID-B
", "type":"KMS" }, "location":"Location2
", "type":"S3" } }다음 JSON 예제는 us-west-2 버킷을
my-storage-bucket
으로 표시하고 이름이my-storage-bucket-us-east-1
으로 지정된 us-east-1 버킷을 새로 추가합니다."artifactStores": { "us-west-2": { "type": "S3", "location": "my-storage-bucket" }, "us-east-1": { "type": "S3", "location": "my-storage-bucket-us-east-1" } },
-
get-pipeline 명령을 사용하여 검색한 파이프라인 구조로 작업을 수행할 경우, JSON 파일에서
metadata
행을 제거하십시오. 이렇게 하지 않으면 update-pipeline 명령에서 사용할 수 없습니다."metadata": { }
행과,"created"
,"pipelineARN"
및"updated"
필드를 제거합니다.예를 들어, 구조에서 다음 행을 삭제합니다.
"metadata": { "pipelineArn": "arn:aws:codepipeline:
region
:account-ID
:pipeline-name
", "created": "date
", "updated": "date
" }파일을 저장합니다.
-
변경 사항을 적용하려면 파이프라인 JSON 파일을 지정하여 update-pipeline 명령을 실행합니다.
중요
파일 이름 앞에
file://
를 포함해야 합니다. 이 명령에 필수적입니다.aws codepipeline update-pipeline --cli-input-json file://
pipeline.json
이 명령은 편집한 파이프라인의 전체 구조를 반환합니다. 출력 결과는 다음과 비슷합니다.
{ "pipeline": { "version": 4, "roleArn": "
ARN
", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "CodeCommit" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "configuration": { "PollForSourceChanges": "false", "BranchName": "main", "RepositoryName": "MyTestRepo" }, "runOrder": 1 } ] }, { "name": "Deploy", "actions": [ { "inputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Deploy", "region": "us-east-1", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "name
", "DeploymentGroupName": "name
" }, "runOrder": 1 } ] } ], "name": "AnyCompanyPipeline", "artifactStores": { "us-west-2": { "type": "S3", "location": "my-storage-bucket" }, "us-east-1": { "type": "S3", "location": "my-storage-bucket-us-east-1" } } } }참고
update-pipeline 명령을 실행하면 파이프라인이 중지됩니다. update-pipeline 명령을 실행할 때 파이프라인을 통해 개정을 실행하는 중이라면 해당 실행이 중지됩니다. 업데이트된 파이프라인을 통해 해당 개정을 실행하려면 파이프라인을 수동으로 시작해야 합니다.
start-pipeline-execution
명령을 사용하여 수동으로 파이프라인을 시작합니다. -
파이프라인을 업데이트하면 교차 리전 작업이 콘솔에 표시됩니다.
파이프라인에 교차 리전 작업 추가(AWS CloudFormation)
AWS CloudFormation을 사용하여 교차 리전 작업을 기존 파이프라인에 추가할 수 있습니다.
AWS CloudFormation을 사용하여 교차 리전 작업을 추가하려면
-
다음 예와 같이
Region
파라미터를 템플릿의ActionDeclaration
리소스에 추가합니다.ActionDeclaration: Type: Object Properties: ActionTypeId: Type: ActionTypeId Required: true Configuration: Type: Map InputArtifacts: Type: Array ItemType: Type: InputArtifact Name: Type: String Required: true OutputArtifacts: Type: Array ItemType: Type: OutputArtifact RoleArn: Type: String RunOrder: Type: Integer
Region:
Type: String
-
이 예에 나온 것처럼
Mappings
아래에서RegionA
및RegionB
키에 값을 매핑하는SecondRegionMap
라는 매핑을 위한 리전 맵을 추가합니다. 다음과 같이Pipeline
리소스의artifactStore
필드에 새로운 교차 리전 작업을 위한artifactStores
맵을 추가합니다.Mappings: SecondRegionMap:
RegionA
: SecondRegion: "RegionB
"RegionB
: SecondRegion: "RegionA
" ... Properties: ArtifactStores: - Region:RegionB
ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionB
- Region:RegionA
ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionA
다음 YAML 예제는
RegionA
버킷을us-west-2
로 표시하고, 새로운RegionB
버킷eu-central-1
을 추가합니다.Mappings: SecondRegionMap: us-west-2: SecondRegion: "eu-central-1" eu-central-1: SecondRegion: "us-west-2" ... Properties: ArtifactStores: - Region: eu-central-1 ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-eu-central-1 - Region: us-west-2 ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-us-west-2
-
업데이트된 템플릿을 로컬 컴퓨터에 저장하고 AWS CloudFormation 콘솔을 엽니다.
-
스택을 선택한 후 현재 스택에 대한 변경 세트 만들기를 선택합니다.
-
템플릿을 업로드한 후 AWS CloudFormation에 나열된 변경 사항을 확인합니다. 이는 스택에 적용될 변경 사항입니다. 목록에 새로운 리소스가 표시됩니다.
-
실행을 선택합니다.