에 지역 간 액션 추가 CodePipeline - AWS CodePipeline

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

에 지역 간 액션 추가 CodePipeline

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

참고

지역 간 작업이 지원되며 지원되는 AWS 지역에서만 만들 수 있습니다. CodePipeline 지원되는 AWS 지역 목록은 CodePipeline 을 참조하십시오할당량 입력 AWS CodePipeline.

콘솔 AWS CLI, 또는 를 사용하여 파이프라인에 지역 간 작업을 AWS CloudFormation 추가할 수 있습니다.

참고

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

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

참고

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

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

참고

크로스 리전 작업과 동일한 AWS 리전, 파이프라인과 동일한 계정에 아티팩트 버킷과 암호화 키를 만들어야 합니다.

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

  • 소스 작업

  • 타사 작업

  • 사용자 지정 작업

참고

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

파이프라인에 교차 리전 작업이 단계의 일부로 포함된 경우, 교차 리전 작업의 입력 아티팩트만 파이프라인 리전에서 해당 작업의 리전으로 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 서비스인 작업에 대해서만 표시합니다. 리전 필드의 기본값은 파이프라인과 동일한 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. 실행을 선택합니다.