CodePipeline에서 교차 리전 작업 추가 - AWS CodePipeline

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

CodePipeline에서 교차 리전 작업 추가

AWS CodePipeline에는 자동화된 릴리스 프로세스에 대해 빌드, 테스트 및 배포 리소스를 구성하는 데 도움이 되는 여러 작업이 포함되어 있습니다. 파이프라인과 다른AWS 지역에 있는 작업을 파이프라인에 추가할 수 있습니다. a가 작업AWS 서비스 제공자이고 이 작업 유형/제공자 유형이 파이프라인과 다른AWS 지역에 있는 경우 이는 교차 리전 작업입니다.

참고

지역 간 활동이 지원되며 지원되는AWSCodePipeline 지역에서만 만들 수 있습니다. 지원되는AWS 지역 목록은CodePipeline 를 참조하세요의 할당량AWSCodePipeline.

콘솔, AWS CLI 또는 AWS CloudFormation을 사용하여 파이프라인에 교차 리전 작업을 추가할 수 있습니다.

참고

의CodePipeline 특정 작업 유형은 특정AWS 지역에서만 사용할 수 있습니다. 또한 작업 유형을 사용할 수 있는AWS 지역이 있을 수 있지만 해당 작업 유형에 대한 특정AWS 제공자는 사용할 수 없습니다.

파이프라인을 생성하거나 편집할 때 파이프라인 리전에 아티팩트 버킷이 있어야 하며 작업을 실행하려는 리전마다 아티팩트 버킷 하나가 있어야 합니다. ArtifactStores 파라미터에 대한 자세한 내용은 CodePipeline 파이프라인 구조 참조을 참조하십시오.

참고

CodePipeline는 지역 간 작업을 수행할 때 한AWS 지역에서 다른 지역으로 아티팩트를 복사하는 작업을 처리합니다.

콘솔을 사용하여 파이프라인 또는 교차 리전 작업을 생성하는 경우 기본 아티팩트 버킷은 작업이 있는 리전의 CodePipeline에 의해 구성됩니다. AWS CLI, AWS CloudFormation 또는 SDK를 사용하여 파이프라인 또는 교차 리전 작업을 생성할 때 작업이 있는 각 리전마다 아티팩트 버킷을 제공합니다.

참고

아티팩트 버킷과 암호화 키는 Cross-Region 작업과 동일한AWS 지역 및 파이프라인과 동일한 계정에 생성해야 합니다.

다음 작업 유형에는 교차 리전 작업을 생성할 수 없습니다.

  • 소스 작업

  • 타사 작업

  • 사용자 지정 작업

참고

에서CodePipeline 교차 리전 Lambda 호출 작업을 사용할 때는 PutJobSuccessResult및 를 사용한 Lambda 실행 상태를 Lambda 함수가 있는AWS 리전이 아니라 Lambda 함수가 있는CodePipeline 리전으로 PutJobFailureResult전송해야 합니다.

파이프라인에 단계의 일부로 교차 리전 작업이 포함될 경우 CodePipeline은 파이프라인 리전에서 작업 리전으로 교차 리전 작업의 입력 아티팩트만 복제합니다.

참고

CloudWatch이벤트 변경 감지 리소스가 유지되는 파이프라인 지역 및 지역은 동일하게 유지됩니다. 파이프라인이 호스팅되는 리전은 변경되지 않습니다.

파이프라인에서 교차 리전 작업 관리(콘솔)

CodePipeline 콘솔을 사용하여 교차 리전 작업을 기존 파이프라인에 추가할 수 있습니다. 파이프라인 생성 마법사를 사용하여 교차 리전 작업으로 새로운 파이프라인을 생성하려면 파이프라인 생성(콘솔) 항목을 참조하십시오.

콘솔에서 작업 공급자와 해당 공급자에 대해 해당 리전에서 생성한 리소스를 나열하는 리전 필드를 선택하여 파이프라인 단계에서 교차 리전 작업을 생성합니다. 교차 리전 작업을 추가하면 CodePipeline은 작업 리전에서 별도의 아티팩트 버킷을 사용합니다. 교차 리전 아티팩트 버킷에 대한 자세한 내용은 CodePipeline 파이프라인 구조 참조 항목을 참조하십시오.

파이프라인 단계에 교차 리전 작업 추가(콘솔)

콘솔을 사용하여 파이프라인에 교차 리전 작업을 추가합니다.

참고

변경 사항이 저장된 파이프라인이 실행 중일 경우 실행이 완료되지 않습니다.

교차 리전 작업을 추가하려면
  1. http://console.aws.amazon.com/codesuite/codepipeline/home에서 콘솔에 로그인합니다.

  2. 파이프라인을 선택한 다음 편집을 선택합니다.

  3. 다이어그램의 하단에서 새 단계를 추가하려면 + Add stage(+ 단계 추가)를 선택하고 기존 단계에 작업을 추가하려면 Edit stage(단계 편집)을 선택합니다.

  4. 편집: <단계>에서 + Add action group(+ 작업 그룹 추가)를 선택하여 연속 작업을 추가합니다. 또는 + Add action(+ 작업 추가)를 선택하여 병렬 작업을 추가합니다.

  5. 작업 편집 페이지에서 다음 작업을 수행하십시오.

    1. 작업 이름에 교차 리전 작업 이름을 입력합니다.

    2. Action provider(작업 공급자)에서 작업 공급자를 선택합니다.

    3. 지역에서 해당 작업에 사용할 리소스를 만들었거나 만들 계획이 있는AWS 지역을 선택합니다. 리전을 선택하면 해당 리전의 사용 가능한 리소스가 선택 목록에 나열됩니다. 지역 필드는 이 작업 유형 및 제공자 유형에 대한AWS 리소스가 생성되는 위치를 지정합니다. 이 필드는 작업 제공자가 인 작업의 경우에만 표시됩니다AWS 서비스. Region 필드의 기본값은AWS 리전 파이프라인과 동일합니다.

    4. 입력 아티팩트에서 이전 단계의 적절한 입력을 선택합니다. 예를 들어, 이전 단계가 소스 단계인 경우 을 선택합니다 SourceArtifact.

    5. 구성 중인 작업 공급자에 대한 필수 필드를 모두 작성합니다.

    6. 출력 아티팩트에서 다음 단계의 적절한 출력을 선택합니다. 예를 들어, 다음 단계가 배포 단계인 경우 선택하십시오 BuildArtifact.

    7. 저장을 선택합니다.

  6. 편집: <단계>에서 완료를 선택합니다.

  7. 저장을 선택합니다.

파이프라인 단계에서 교차 리전 작업 편집(콘솔)

콘솔을 사용하여 파이프라인에서 기존의 교차 리전 작업을 편집합니다.

참고

변경 사항이 저장된 파이프라인이 실행 중일 경우 실행이 완료되지 않습니다.

교차 리전 작업 편집 방법
  1. https://console.aws.amazon.com/codesuite/codepipeline/home.에서 콘솔에 로그인합니다.

  2. 파이프라인을 선택한 다음 편집을 선택합니다.

  3. Edit stage(단계 편집)을 선택합니다.

  4. 편집: <단계>에서 아이콘을 선택하여 기존 작업을 편집합니다.

  5. 작업 편집 페이지에서 해당 필드를 적절하게 변경합니다.

  6. 편집: <단계>에서 완료를 선택합니다.

  7. 저장을 선택합니다.

파이프라인 단계에서 교차 리전 작업 삭제(콘솔)

콘솔을 사용하여 파이프라인에서 기존의 교차 리전 작업을 삭제합니다.

참고

변경 사항이 저장된 파이프라인이 실행 중일 경우 실행이 완료되지 않습니다.

교차 리전 작업 삭제 방법
  1. http://console.aws.amazon.com/codesuite/codepipeline/home에서 콘솔에 로그인합니다.

  2. 파이프라인을 선택한 다음 편집을 선택합니다.

  3. Edit stage(단계 편집)을 선택합니다.

  4. 편집: <단계>에서 아이콘을 선택하여 기존 작업을 삭제합니다.

  5. 편집: <단계>에서 완료를 선택합니다.

  6. 저장을 선택합니다.

파이프라인에 교차 리전 작업 추가(CLI)

AWS CLI를 사용하여 교차 리전 작업을 기존 파이프라인에 추가할 수 있습니다.

AWS CLI를 사용하여 파이프라인 단계에 교차 리전 작업을 생성하려면 선택 사항인 region 필드와 함께 구성 작업을 추가합니다. 작업의 리전에 아티팩트 버킷이 이미 생성되어 있어야 합니다. 단일 리전 파이프라인의 artifactStore 파라미터를 제공하는 대신 artifactStores 파라미터를 사용하여 각 리전의 아티팩트 버킷 목록을 포함시킵니다.

참고

이 연습과 예제에서 RegionA는 파이프라인이 생성되는 리전입니다. 파이프라인 아티팩트를 저장하는 데 사용되는 RegionA Amazon S3 버킷과 에서 사용하는 서비스 역할에 액세스할 수CodePipeline 있습니다. RegionB는 CodeDeploy에서 사용하는 CodeDeploy 애플리케이션, 배포 그룹, 서비스 역할이 생성된 리전입니다.

필수 조건

다음을 생성해야 합니다.

  • RegionA의 파이프라인.

  • RegionB Amazon S3 아티팩트 버킷.

  • 지역 간 배포 작업을 위한CodeDeploy 애플리케이션 및 배포 그룹과 같은 작업을 위한 리소스 (예: RegionB).

파이프라인에 교차 리전 작업 추가(CLI)

AWS CLI를 사용하여 파이프라인에 교차 리전 작업을 추가합니다.

교차 리전 작업을 추가하려면
  1. RegionA의 파이프라인의 경우, get-pipeline 명령을 실행하여 파이프라인 구조를 JSON 파일로 복사합니다. 예를 들어, MyFirstPipeline라는 파이프라인의 경우 다음 명령을 입력합니다.

    aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json

    이 명령은 아무 것도 반환하지 않지만 생성한 파일이 명령을 실행한 디렉터리에 표시되어야 합니다.

  2. 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 }
  3. 파이프라인 구조에서 artifactStore 필드를 제거하고, 새로운 교차 리전 작업을 위한 artifactStores 맵을 추가합니다. 매핑에는 작업이 있는 각AWS 지역에 대한 항목이 포함되어야 합니다. 매핑의 각 항목에 대해 리소스는 해당AWS 지역에 있어야 합니다. 아래 예에서 ID-ARegionA의 암호화 키 ID이며 ID-BRegionB의 암호화 키 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" } },
  4. get-pipeline 명령을 사용하여 검색한 파이프라인 구조로 작업을 수행할 경우, JSON 파일에서 metadata 행을 제거하십시오. 이렇게 하지 않으면 update-pipeline 명령에서 사용할 수 없습니다. "metadata": { } 행과, "created", "pipelineARN""updated" 필드를 제거합니다.

    예를 들어, 구조에서 다음 행을 삭제합니다.

    "metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" }

    파일을 저장합니다.

  5. 변경 사항을 적용하려면 파이프라인 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 명령을 사용하여 수동으로 파이프라인을 시작합니다.

  6. 파이프라인을 업데이트하면 콘솔에 지역 간 작업이 표시됩니다.

    
                            교차 리전 작업이 포함된 파이프라인의 상위 보기.

파이프라인에 교차 리전 작업 추가(AWS CloudFormation)

AWS CloudFormation을 사용하여 교차 리전 작업을 기존 파이프라인에 추가할 수 있습니다.

AWS CloudFormation을 사용하여 교차 리전 작업을 추가하려면
  1. 다음 예와 같이 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
  2. 이 예에 나온 것처럼 Mappings 아래에서 RegionARegionB 키에 값을 매핑하는 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
  3. 업데이트된 템플릿을 로컬 컴퓨터에 저장하고 AWS CloudFormation 콘솔을 엽니다.

  4. 스택을 선택한 후 현재 스택에 대한 변경 세트 만들기를 선택합니다.

  5. 템플릿을 업로드한 후 AWS CloudFormation에 나열된 변경 사항을 확인합니다. 이는 스택에 적용될 변경 사항입니다. 목록에 새로운 리소스가 표시됩니다.

  6. Execute(실행)를 선택합니다.