파이프라인, 단계 및 작업 생성 - AWS CodePipeline

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

파이프라인, 단계 및 작업 생성

AWS CodePipeline 콘솔 또는 를 사용하여 파이프라인을 AWS CLI 생성할 수 있습니다. 파이프라인에는 두 개 이상의 단계가 포함되어야 합니다. 파이프라인의 첫 번째 단계는 소스 단계여야 합니다. 파이프라인에는 빌드 또는 배포 단계인 하나 이상의 다른 단계가 있어야 합니다.

중요

파이프라인 생성의 일환으로 고객이 제공하는 S3 아티팩트 버킷이 아티팩트 CodePipeline 에 사용됩니다. (이는 S3 소스 작업에 사용되는 버킷과 다릅니다.) S3 아티팩트 버킷이 파이프라인의 계정과 다른 계정에 있는 경우 S3 아티팩트 버킷을 안전하고 신뢰할 수 AWS 계정 있는 에서 소유해야 합니다.

파이프라인과 AWS 리전 다른 파이프라인에 작업을 추가할 수 있습니다. 리전 간 작업은 가 작업의 AWS 서비스 공급자이고 작업 유형 또는 공급자 유형이 파이프라인과 다른 AWS 리전에 있는 작업입니다. 자세한 내용은 에 지역 간 액션 추가 CodePipeline 단원을 참조하십시오.

Amazon을 배포 공급자ECS로 사용하여 컨테이너 기반 애플리케이션을 구축하고 배포하는 파이프라인을 생성할 수도 있습니다. Amazon 을 사용하여 컨테이너 기반 애플리케이션을 배포하는 파이프라인을 생성하기 전에 에 설명된 대로 이미지 정의 파일을 생성ECS해야 합니다이미지 정의 파일 참조.

CodePipeline 는 소스 코드 변경을 푸시할 때 변경 감지 방법을 사용하여 파이프라인을 시작합니다. 이러한 감지 방법은 소스 유형을 기반으로 합니다.

  • CodePipeline 는 Amazon CloudWatch Events를 사용하여 CodeCommit 소스 리포지토리 및 브랜치 또는 S3 소스 버킷의 변경 사항을 감지합니다.

참고

콘솔을 사용하여 파이프라인을 생성하거나 편집하면 변경 감지 리소스가 자동으로 생성됩니다. 를 AWS CLI 사용하여 파이프라인을 생성하는 경우 추가 리소스를 직접 생성해야 합니다. 자세한 내용은 CodeCommit 소스 액션 및 EventBridge 단원을 참조하십시오.

사용자 지정 파이프라인 생성(콘솔)

콘솔에서 사용자 지정 파이프라인을 생성하려면 작업에 사용할 공급자에 대한 소스 파일 위치와 정보를 제공해야 합니다.

콘솔을 사용하여 파이프라인을 생성하면 소스 단계와 다음 중 하나 또는 둘 다를 포함해야 합니다.

  • 빌드 단계.

  • 배포 단계.

파이프라인 마법사를 사용하면 에서 스테이지 이름(소스, 빌드, 스테이징)을 CodePipeline 생성합니다. 이러한 이름은 변경할 수 없습니다. 나중에 추가하는 단계에 더 구체적인 이름(예: BuildToGamma 또는 DeployToProd)을 사용할 수 있습니다.

1단계: 파이프라인 생성 및 이름 지정
  1. 에 로그인 AWS Management Console 하고 http://console.aws.amazon.com/codesuite/codepipeline/home CodePipeline 콘솔을 엽니다.

  2. [Welcome] 페이지에서 [Create pipeline]을 선택합니다.

    를 처음 사용하는 경우 시작하기 를 CodePipeline선택합니다.

  3. 1단계: 생성 옵션 선택 페이지의 생성 옵션에서 사용자 지정 파이프라인 빌드 옵션을 선택합니다. Next(다음)를 선택합니다.

  4. 2단계: 파이프라인 설정 선택 페이지의 파이프라인 이름 에 파이프라인 이름을 입력합니다.

    단일 AWS 계정에서 AWS 리전에서 생성하는 각 파이프라인에는 고유한 이름이 있어야 합니다. 다른 리전의 파이프라인에 이름을 재사용해도 됩니다.

    참고

    파이프라인을 만든 후에는 해당 이름을 변경할 수 없습니다. 다른 제한에 대한 자세한 내용은 의 할당량 AWS CodePipeline 섹션을 참조하십시오.

  5. 파이프라인 유형에서 다음 옵션 중 하나를 선택합니다. 파이프라인 유형은 특성과 가격이 다릅니다. 자세한 내용은 파이프라인 유형 단원을 참조하십시오.

    • V1 유형 파이프라인에는 표준 파이프라인, 단계 및 작업 수준 파라미터가 포함된 JSON 구조가 있습니다.

    • V2 유형 파이프라인은 Git 태그의 트리거 및 파이프라인 수준 변수와 같은 추가 파라미터 지원과 함께 V1 유형과 구조가 동일합니다.

  6. 서비스 역할에서 다음 중 하나를 수행합니다.

    • CodePipeline 가 에서 새 서비스 역할을 생성하도록 허용하려면 새 서비스 역할을 선택합니다IAM.

    • 에서 이미 생성된 서비스 역할을 사용하려면 기존 서비스 역할을 선택합니다IAM. 역할 ARN의 ARN 목록에서 서비스 역할을 선택합니다.

    참고

    서비스 역할이 생성된 시기에 따라 추가 를 지원하도록 권한을 업데이트해야 할 수 있습니다 AWS 서비스. 자세한 내용은 CodePipeline 서비스 역할에 권한 추가을 참조하세요.

    서비스 역할 및 해당 정책 설명에 대한 자세한 내용은 CodePipeline 서비스 역할 관리 섹션을 참조하십시오.

  7. (선택 사항) 변수에서 변수 추가를 선택하여 파이프라인 수준에서 변수를 추가합니다.

    파이프라인 수준에서 변수에 대한 자세한 정보는 변수 참조을 참조하세요. 파이프라인 실행 시 전달되는 파이프라인 수준 변수에 대한 자습서는 자습서: 파이프라인 수준 변수 사용을 참조하세요.

    참고

    파이프라인 수준에서 변수를 추가하는 것은 선택 사항이지만, 값이 제공되지 않은 파이프라인 수준의 변수로 지정된 파이프라인의 경우 파이프라인 실행이 실패합니다.

  8. (선택 사항) 고급 설정을 확장합니다.

  9. 아티팩트 스토어에서 다음 중 하나를 수행합니다.

    1. 파이프라인에 대해 AWS 리전 선택한 의 파이프라인에 대해 기본으로 지정된 S3 아티팩트 버킷과 같은 기본 아티팩트 스토어를 사용하려면 기본 위치를 선택합니다.

    2. 파이프라인과 동일한 리전에 S3 아티팩트 버킷과 같이 이미 아티팩트 스토어가 있는 경우 Custom location(사용자 지정 위치)을 선택합니다. [Bucket]에서 버킷 이름을 선택합니다.

    참고

    이는 소스 코드에 대한 소스 버킷이 아닙니다. 이 파이프라인은 아티팩트 스토어입니다. S3 버킷과 같은 개별 아티팩트 스토어는 각 파이프라인에 필요합니다. 파이프라인을 생성하거나 편집할 때는 파이프라인 리전에 아티팩트 버킷이 하나 있고 작업을 실행하는 AWS 리전당 하나의 아티팩트 버킷이 하나 있어야 합니다.

    자세한 내용은 입력 및 출력 아티팩트CodePipeline 파이프라인 구조 참조 단원을 참조하세요.

  10. [Encryption key]에서 다음 중 하나를 수행합니다.

    1. CodePipeline 기본값을 사용하여 파이프라인 아티팩트 스토어(S3 버킷)의 데이터를 AWS KMS key 암호화하려면 기본 AWS 관리형 키 를 선택합니다.

    2. 고객 관리형 키를 사용하여 파이프라인 아티팩트 스토어(S3 버킷)의 데이터를 암호화하려면 고객 관리형 키를 선택합니다. 키 ID, 키 ARN또는 별칭을 선택합니다ARN.

  11. Next(다음)를 선택합니다.

2단계: 소스 단계 생성
  1. 3단계: 소스 단계 추가 페이지의 소스 공급자 에서 소스 코드가 저장되는 리포지토리 유형을 선택하고 필요한 옵션을 지정합니다. 다음과 같이 선택한 소스 공급자에 따라 추가 필드가 표시됩니다.

    • Bitbucket Cloud, GitHub (버전 2), GitHub Enterprise Server, GitLab.com 또는 GitLab 자체 관리형 의 경우:

      1. 연결에서 기존 연결을 선택하거나 새로 생성합니다. GitHub 소스 작업에 대한 연결을 생성하거나 관리하려면 섹션을 참조하세요GitHub 연결.

      2. 파이프라인의 소스 위치로 사용할 리포지토리를 선택합니다.

        트리거를 추가하거나 트리거 유형에 필터를 선택하여 파이프라인을 시작합니다. 트리거 작업에 대한 자세한 내용은 섹션을 참조하세요코드 푸시 또는 풀 요청에 대한 트리거 필터링. Glog 패턴을 사용한 필터링에 대한 자세한 내용은 구문에서 glob 패턴 작업을 참조하세요.

      3. 출력 아티팩트 형식에서 아티팩트의 형식을 선택합니다.

        • 기본 메서드를 사용하여 GitHub 작업의 출력 아티팩트를 저장하려면 CodePipeline 기본 을 선택합니다. 작업은 GitHub 리포지토리에서 파일에 액세스하고 아티팩트를 파이프라인 아티팩트 스토어의 ZIP 파일에 저장합니다.

        • 다운스트림 작업이 Git 명령을 직접 수행할 수 있도록 리포지토리에 대한 URL 참조가 포함된 JSON 파일을 저장하려면 전체 복제를 선택합니다. 이 옵션은 CodeBuild 다운스트림 작업에서만 사용할 수 있습니다.

          이 옵션을 선택하면 에 표시된 대로 CodeBuild 프로젝트 서비스 역할에 대한 권한을 업데이트해야 합니다문제 해결 CodePipeline. 전체 복제 옵션을 사용하는 방법을 보여주는 자습서는 자습서: GitHub 파이프라인 소스와 함께 전체 복제본 사용을 참조하세요.

    • Amazon S3의 경우:

      1. Amazon S3 위치에서 버전 관리 기능이 활성화된 버킷에 S3 버킷 이름 및 객체 경로를 제공합니다. 버킷 이름과 경로의 형식은 다음과 같습니다.

        s3://bucketName/folderName/objectName
        참고

        Amazon S3가 파이프라인의 소스 공급자인 경우, 소스 파일을 .zip 하나로 압축하고 그 .zip을 소스 버킷에 업로드할 수 있습니다. 압축이 풀린 단일 파일을 업로드할 수도 있지만 .zip 파일을 예상하는 다운스트림 작업은 실패합니다.

      2. S3 소스 버킷을 선택한 후 는 Amazon CloudWatch Events 규칙과 이 파이프라인에 대해 생성할 AWS CloudTrail 추적을 CodePipeline 생성합니다. [Change detection options] 아래에서 기본값을 적용합니다. 이렇게 하면 CodePipeline 가 Amazon CloudWatch Events AWS CloudTrail 를 사용하고 새 파이프라인의 변경 사항을 감지할 수 있습니다. Next(다음)를 선택합니다.

    • AWS CodeCommit의 경우:

      • 리포지토리 이름 에서 파이프라인의 소스 위치로 사용할 CodeCommit 리포지토리 이름을 선택합니다. [Branch name]의 드롭다운 목록에서 사용하려는 브랜치를 선택합니다.

      • 출력 아티팩트 형식에서 아티팩트의 형식을 선택합니다.

        • 기본 메서드를 사용하여 CodeCommit 작업의 출력 아티팩트를 저장하려면 CodePipeline 기본 을 선택합니다. 작업은 CodeCommit 리포지토리에서 파일에 액세스하고 아티팩트를 파이프라인 아티팩트 스토어의 ZIP 파일에 저장합니다.

        • 다운스트림 작업이 Git 명령을 직접 수행할 수 있도록 리포지토리에 대한 URL 참조가 포함된 JSON 파일을 저장하려면 전체 복제를 선택합니다. 이 옵션은 CodeBuild 다운스트림 작업에서만 사용할 수 있습니다.

          이 옵션을 선택하면 에 표시된 대로 CodeBuild 서비스 역할에 codecommit:GitPull 권한을 추가해야 합니다소스 작업에 대한 CodeBuild GitClone CodeCommit 권한 추가. 또한 에 표시된 대로 CodePipeline 서비스 역할에 codecommit:GetRepository 권한을 추가해야 합니다 CodePipeline 서비스 역할에 권한 추가. 전체 복제 옵션을 사용하는 방법을 보여주는 자습서는 자습서: GitHub 파이프라인 소스와 함께 전체 복제본 사용을 참조하세요.

      • CodeCommit 리포지토리 이름과 브랜치를 선택하면 변경 감지 옵션에 이 파이프라인에 대해 생성할 Amazon CloudWatch Events 규칙을 보여주는 메시지가 표시됩니다. [Change detection options] 아래에서 기본값을 적용합니다. 이렇게 하면 CodePipeline 가 Amazon CloudWatch Events를 사용하여 새 파이프라인의 변경 사항을 감지할 수 있습니다.

    • Amazon의 ECR경우:

      • 리포지토리 이름 에서 Amazon ECR리포지토리의 이름을 선택합니다.

      • 이미지 태그 에서 와 다른 경우 이미지 이름과 버전을 지정합니다LATEST.

      • 출력 아티팩트 에서 다음 단계에서 사용할 이미지 이름과 리포지토리 URI 정보가 MyApp포함된 와 같은 출력 아티팩트 기본값을 선택합니다.

        Amazon ECR 소스 단계를 포함하는 블루 그린 배포ECS를 사용하여 CodeDeploy Amazon용 파이프라인을 생성하는 방법에 대한 자습서는 섹션을 참조하세요자습서: Amazon ECR 소스 및 CodeDeploy 배포ECS로 파이프라인 생성.

      파이프라인에 Amazon ECR 소스 단계를 포함하면 소스 작업은 변경 사항을 커밋할 때 imageDetail.json 파일을 출력 아티팩트로 생성합니다. imageDetail.json 파일에 대한 자세한 내용은 imageDetailAmazon ECS 블루/그린 배포 작업을 위한 .json 파일 단원을 참조하십시오.

    참고

    객체 및 파일 유형은 사용하려는 배포 시스템(예: Elastic Beanstalk 또는 CodeDeploy)과 호환되어야 합니다. 지원되는 파일 형식에는 .zip, .tar, .tgz 파일 등이 있습니다. Elastic Beanstalk에 지원되는 컨테이너 형식에 대한 자세한 내용은 Elastic Beanstalk 환경 사용자 지정 및 구성지원 플랫폼 단원을 참조하세요. 를 사용하여 개정을 배포하는 방법에 대한 자세한 내용은 애플리케이션 개정 업로드개정 준비 섹션을 CodeDeploy참조하세요.

  2. 자동 재시도를 위해 스테이지를 구성하려면 스테이지 실패 시 자동 재시도 활성화를 선택합니다. 자동 재시도에 대한 자세한 내용은 섹션을 참조하세요실패 시 자동 재시도를 위한 스테이지 구성.

  3. Next(다음)를 선택합니다.

4단계: 빌드 단계 생성

배포 단계를 생성하려는 경우 이 단계는 선택 사항입니다.

  1. 3단계: 빌드 단계 추가 페이지에서 다음 중 하나를 수행한 다음 Next(다음)를 선택합니다.

    • 배포 단계를 생성하려는 경우 Skip build stage(빌드 단계 건너뛰기)를 선택합니다.

    • 빌드 단계에 대한 명령 작업을 선택하려면 명령 을 선택합니다.

      참고

      명령 작업을 실행하면 에서 별도의 요금이 발생합니다. AWS CodeBuild

      명령 에서 작업에 대한 쉘 명령을 입력합니다. 명령 작업에 대한 자세한 내용은 섹션을 참조하세요명령 작업 참조.

    • 와 같은 다른 빌드 공급자를 선택하려면 다른 공급자를 CodeBuild선택합니다. 빌드 공급자에서 빌드 서비스의 사용자 지정 작업 공급자를 선택하고 그 공급자에 대한 구성 세부 정보를 입력합니다. Jenkins를 빌드 공급자로 추가하는 방법의 예는 자습서: 4단계 파이프라인 생성 섹션을 참조하십시오.

    • 빌드 공급자에서 AWS CodeBuild를 선택합니다.

      리전 에서 리소스가 있는 AWS 리전을 선택합니다. 리전 필드는 이 작업 유형 및 공급자 유형에 대해 AWS 리소스가 생성되는 위치를 지정합니다. 이 필드는 작업 공급자가 AWS 서비스인 작업에 대해서만 표시합니다. 리전 필드는 기본적으로 파이프라인과 동일한 AWS 리전으로 설정됩니다.

      프로젝트 이름에 빌드 프로젝트를 선택합니다. 에서 빌드 프로젝트를 이미 생성한 경우 CodeBuild선택합니다. 또는 에서 빌드 프로젝트를 생성한 CodeBuild 다음 이 작업으로 돌아갈 수 있습니다. CodeBuild 사용 설명서사용하는 파이프라인 생성 CodeBuild의 지침을 따릅니다.

      환경 변수 에서 빌드 작업에 환경 변수를 추가하려면 CodeBuild 환경 변수 추가를 선택합니다. 각 변수는 세 개의 항목으로 구성됩니다.

      • 이름에 환경 변수의 이름 또는 키를 입력합니다.

      • 에 환경 변수의 값을 입력합니다. 변수 유형에 파라미터를 선택하는 경우 이 값이 AWS Systems Manager 파라미터 스토어에 이미 저장한 파라미터의 이름인지 확인합니다.

        참고

        환경 변수를 사용하여 민감한 값, 특히 AWS 보안 인증 정보를 저장하지 않는 것이 좋습니다. CodeBuild 콘솔 또는 를 사용하면 AWS CLI환경 변수가 일반 텍스트로 표시됩니다. 민감한 값의 경우 대신 파라미터 유형을 사용하는 것이 좋습니다.

      • (선택 사항) 유형에 환경 변수의 유형을 입력합니다. 유효한 값은 일반 텍스트 또는 파라미터입니다. 기본값은 일반 텍스트입니다.

      (선택 사항) 빌드 유형에서 다음 중 하나를 선택합니다.

      • 단일 빌드 작업 실행으로 각 빌드를 실행하려면 단일 빌드를 선택합니다.

      • 동일한 빌드 작업 실행에서 여러 빌드를 실행하려면 배치 빌드를 선택합니다.

      (선택 사항) 배치 빌드를 실행하도록 선택한 경우 배치의 모든 아티팩트를 단일 위치로 결합을 선택하여 모든 빌드 아티팩트를 단일 출력 아티팩트에 배치할 수 있습니다.

  2. 자동 재시도를 위해 스테이지를 구성하려면 스테이지 실패 시 자동 재시도 활성화를 선택합니다. 자동 재시도에 대한 자세한 내용은 섹션을 참조하세요실패 시 자동 재시도를 위한 스테이지 구성.

  3. Next(다음)를 선택합니다.

5단계: 배포 단계 생성

빌드 단계를 이미 만든 경우 이 단계는 선택 사항입니다.

  1. 4단계: 배포 단계 추가 페이지에서 다음 중 하나를 수행한 다음 Next(다음)를 선택합니다.

    • 이전 단계에서 빌드 단계를 만든 경우 Skip deploy stage(배포 단계 건너뛰기)를 선택합니다.

      참고

      빌드 단계를 이미 건너뛴 경우 이 옵션이 표시되지 않습니다.

    • 배포 공급자에서 배포 공급자에 대해 생성한 사용자 지정 작업을 선택합니다.

      리전 에서 리전 간 작업의 경우에만 리소스가 생성되는 AWS 리전을 선택합니다. 리전 필드는 이 작업 유형 및 공급자 유형에 대해 AWS 리소스가 생성되는 위치를 지정합니다. 이 필드는 작업 공급자가 AWS 서비스인 작업에 대해서만 표시합니다. 리전 필드는 기본적으로 파이프라인과 동일한 AWS 리전으로 설정됩니다.

    • 배포 공급자에서 다음과 같이 기본 공급자 필드를 사용 가능합니다.

      • CodeDeploy

        애플리케이션 이름 에서 기존 CodeDeploy 애플리케이션의 이름을 입력하거나 선택합니다. Deployment group(배포 그룹)에 애플리케이션의 배포 그룹 이름을 입력합니다. Next(다음)를 선택합니다. 콘솔에서 애플리케이션, 배포 그룹 또는 둘 다를 생성할 수도 있습니다 CodeDeploy.

      • AWS Elastic Beanstalk

        애플리케이션 이름에서 기존 Elastic Beanstalk 애플리케이션 이름을 입력하거나 선택합니다. Environment name(환경 이름)에 애플리케이션의 환경을 입력합니다. Next(다음)를 선택합니다. Elastic Beanstalk 콘솔에서 애플리케이션이나 환경을 생성하거나 둘 다 생성할 수 있습니다.

      • AWS OpsWorks Stacks

        사용하려는 스택 이름을 Stack(스택)에 입력하거나 선택합니다. 계층에서 대상 인스턴스가 속하는 레이어를 선택합니다. [App]에서 업데이트 및 배포하려는 애플리케이션을 선택합니다. 앱을 생성해야 하는 경우 AWS OpsWorks에서 새로 생성을 선택합니다.

        의 스택 및 계층에 애플리케이션을 추가하는 방법에 대한 자세한 내용은 AWS OpsWorks 사용 설명서앱 추가를 AWS OpsWorks참조하세요.

        에서 간단한 파이프라인을 AWS OpsWorks 계층에서 실행하는 코드의 소스 CodePipeline 로 사용하는 방법의 예는 end-to-end CodePipeline 에서 사용을 AWS OpsWorks Stacks 참조하세요.

      • AWS CloudFormation

        다음 중 하나를 수행합니다.

        • 작업 모드 에서 스택 생성 또는 업데이트를 선택하고 스택 이름과 템플릿 파일 이름을 입력한 다음 수임 AWS CloudFormation 할 역할의 이름을 선택합니다. 필요에 따라 구성 파일의 이름을 입력하고 IAM 기능 옵션을 선택합니다.

        • 작업 모드 에서 변경 세트 생성 또는 교체 를 선택하고 스택 이름을 입력한 다음 세트 이름을 변경한 다음 수임 AWS CloudFormation 할 역할의 이름을 선택합니다. 필요에 따라 구성 파일의 이름을 입력하고 IAM 기능 옵션을 선택합니다.

        의 파이프라인에 AWS CloudFormation 기능을 통합하는 방법에 대한 자세한 내용은 AWS CloudFormation 사용 설명서를 사용하여 연속 전달 CodePipeline을 CodePipeline참조하세요.

      • Amazon ECS

        클러스터 이름 에서 기존 Amazon ECS 클러스터의 이름을 입력하거나 선택합니다. Service name(서비스 이름)에서 클러스터에서 실행 중인 서비스의 이름을 입력하거나 선택합니다. 클러스터와 서비스를 생성할 수도 있습니다. 이미지 파일 이름에 서비스의 컨테이너와 이미지를 설명하는 이미지 정의 파일의 이름을 입력합니다.

        참고

        Amazon ECS 배포 작업에는 배포 작업에 대한 입력으로 imagedefinitions.json 파일이 필요합니다. 파일의 기본 파일 이름은 imagedefinitions.json입니다. 다른 파일 이름을 사용하려면 파이프라인 배포 단계를 만들 때 이름을 제공해야 합니다. 자세한 내용은 Amazon ECS 표준 배포 작업을 위한 imagedefinitions.json 파일 단원을 참조하십시오.

        Next(다음)를 선택합니다.

        참고

        Amazon ECS 클러스터가 2개 이상의 인스턴스로 구성되어 있는지 확인합니다. Amazon ECS 클러스터에는 인스턴스가 두 개 이상 포함되어 있어야 하나는 기본 인스턴스로 유지되고 다른 하나는 새 배포를 수용하는 데 사용됩니다.

        파이프라인을 사용하여 컨테이너 기반 애플리케이션을 배포하는 방법에 대한 자습서는 자습서: 를 사용한 지속적 배포 CodePipeline를 참조하세요.

      • AmazonECS(블루/그린)

        CodeDeploy 애플리케이션 및 배포 그룹, Amazon ECS 작업 정의 및 AppSpec 파일 정보를 입력한 다음 다음을 선택합니다.

        참고

        AmazonECS(블루/그린) 작업에는 배포 작업에 대한 입력 아티팩트로서 imageDetail.json 파일이 필요합니다. Amazon ECR 소스 작업은 이 파일을 생성하기 때문에 Amazon ECR 소스 작업이 있는 파이프라인은 imageDetail.json 파일을 제공할 필요가 없습니다. 자세한 내용은 imageDetailAmazon ECS 블루/그린 배포 작업을 위한 .json 파일 단원을 참조하십시오.

        를 사용하여 Amazon ECS 클러스터에 블루 그린 배포용 파이프라인을 생성하는 방법에 대한 자습서는 섹션을 CodeDeploy참조하세요자습서: Amazon ECR 소스 및 CodeDeploy 배포ECS로 파이프라인 생성.

      • AWS Service Catalog

        콘솔에서 필드를 사용하여 구성을 지정하려면 Enter deployment configuration(배포 구성 입력)을 선택하고 별도의 구성 파일이 있는 경우 구성 파일을 선택합니다. 제품 및 구성 정보를 입력하고 Next(다음)를 선택합니다.

        파이프라인을 통해 Service Catalog에 제품 변경 사항을 배포하는 방법에 대한 자습서는 자습서: Service Catalog에 배포하는 파이프라인 생성 단원을 참조하세요.

      • Alexa Skills Kit

        Alexa Skill ID에 Alexa Skill의 스킬 ID를 입력합니다. 클라이언트 ID클라이언트 보안 암호 에 Amazon(LWA)으로 로그인 보안 프로필을 사용하여 생성된 보안 인증 정보를 입력합니다. 새로 고침 토큰 에 새로 고침 토큰을 검색하기 위한 ASK CLI 명령을 사용하여 생성한 새로 고침 토큰을 입력합니다. Next(다음)를 선택합니다.

        파이프라인을 사용하여 Alexa 기술을 배포하고 LWA 자격 증명을 생성하는 방법에 대한 자습서는 섹션을 참조하세요자습서: Amazon Alexa Skill을 배포하는 파이프라인 생성.

      • Amazon S3

        [Bucket]에 사용하려는 S3 버킷 이름을 입력합니다. 배포 단계의 입력 아티팩트가 파일인 경우 배포 전에 파일 추출을 선택합니다. ZIP 배포 전 파일 추출을 선택한 경우 선택적으로 ZIP 파일의 압축을 풀 배포 경로 값을 입력할 수 있습니다. 선택되지 않은 경우, S3 object key(S3 객체 키)에 값을 입력해야 합니다.

        참고

        대부분의 소스 및 빌드 단계 출력 아티팩트는 압축됩니다. Amazon S3를 제외한 모든 파이프라인 소스 공급자는 소스 파일을 다음 작업의 입력 아티팩트로 제공하기 전에 압축합니다.

        (선택 사항) 고정 ACL에서 Amazon S3에 배포된 객체에 적용할 고정 ACL 를 입력합니다.

        참고

        미리 준비된 를 적용하면 객체에 ACL 적용된 기존 를 ACL 덮어씁니다.

        (선택 사항) 캐시 제어에는 버킷에서 객체를 다운로드하는 요청에 대한 캐시 제어 파라미터를 지정합니다. 유효한 값 목록은 HTTP 작업에 대한 Cache-Control 헤더 필드를 참조하세요. 캐시 제어에 여러 값을 입력하려면 각 값 사이에 쉼표를 사용합니다. 이 예제와 같이 각 쉼표 뒤에 공백을 추가할 수 있습니다(선택 사항).

        퍼블릭, max-age=0, no-transform 항목이 있는 콘솔의 캐시 제어 필드를 보여주는 이미지

        앞의 예제 항목은 다음과 CLI 같이 에 표시됩니다.

        "CacheControl": "public, max-age=0, no-transform"

        Next(다음)를 선택합니다.

        Amazon S3 배포 작업 공급자를 통한 파이프라인 생성에 대한 자습서는 자습서: Amazon S3를 배포 공급자로 사용하는 파이프라인 생성 단원을 참조하세요.

  2. 자동 재시도를 위해 스테이지를 구성하려면 스테이지 실패 시 자동 재시도 활성화를 선택합니다. 자동 재시도에 대한 자세한 내용은 섹션을 참조하세요실패 시 자동 재시도를 위한 스테이지 구성.

  3. 자동 롤백을 위해 스테이지를 구성하려면 스테이지 실패 시 자동 롤백 구성을 선택합니다. 자동 롤백에 대한 자세한 내용은 섹션을 참조하세요자동 롤백을 위한 스테이지 구성.

  4. 다음 단계를 선택합니다.

6단계: 파이프라인 검토
  • 6단계: 검토 페이지에서 파이프라인 구성을 검토한 다음 파이프라인 생성을 선택하여 파이프라인을 생성하거나 이전을 선택하여 뒤로 돌아가서 선택 사항을 편집합니다. 파이프라인을 생성하지 않고 마법사를 종료하려면 [Cancel]을 선택합니다.

이제 파이프라인을 생성했으므로 콘솔에서 볼 수 있습니다. 파이프라인이 생성된 후 실행을 시작합니다. 자세한 내용은 에서 파이프라인 및 세부 정보 보기 CodePipeline 단원을 참조하십시오. 파이프라인 변경에 대한 자세한 내용은 에서 파이프라인 편집 CodePipeline 단원을 참조하십시오.

파이프라인 생성(CLI)

AWS CLI 를 사용하여 파이프라인을 생성하려면 JSON 파일을 생성하여 파이프라인 구조를 정의한 다음 --cli-input-json 파라미터로 create-pipeline 명령을 실행합니다.

중요

AWS CLI 를 사용하여 파트너 작업이 포함된 파이프라인을 생성할 수 없습니다. 대신 CodePipeline 콘솔을 사용해야 합니다.

파이프라인 구조에 대한 자세한 내용은 CodePipeline API 참조CodePipeline 파이프라인 구조 참조create-pipeline을 참조하세요.

JSON 파일을 생성하려면 샘플 파이프라인 JSON 파일을 사용하고 편집한 다음 create-pipeline 명령을 실행할 때 해당 파일을 호출합니다.

사전 조건:

에서 에 대해 생성한 서비스 역할ARN의 CodePipeline 이 필요합니다시작하기 CodePipeline. create-pipeline 명령을 실행할 때 파이프라인 JSON 파일ARN에서 CodePipeline 서비스 역할을 사용합니다. 서비스 역할 생성에 대한 자세한 내용은 CodePipeline 서비스 역할 생성을 참조하십시오. 콘솔과 달리 에서 create-pipeline 명령을 실행하면 CodePipeline 서비스 역할을 생성할 수 AWS CLI 있는 옵션이 없습니다. 서비스 역할이 이미 있어야 합니다.

파이프라인의 아티팩트가 저장되는 S3 버킷의 이름이 필요합니다. 이 버킷은 파이프라인과 동일한 리전에 있어야 합니다. create-pipeline 명령을 실행할 때 파이프라인 JSON 파일의 버킷 이름을 사용합니다. 콘솔과 달리 에서 create-pipeline 명령을 실행해도 아티팩트를 저장하기 위한 S3 버킷이 생성되지 AWS CLI 않습니다. 버킷은 이미 존재해야 합니다.

참고

get-pipeline 명령을 사용하여 해당 파이프라인의 JSON 구조 사본을 가져온 다음 일반 텍스트 편집기에서 해당 구조를 수정할 수도 있습니다.

주제
    JSON 파일을 생성하려면
    1. 터미널((Linux, macOS 또는 Unix) 또는 명령 프롬프트(Windows)에서 로컬 디렉터리의 새 텍스트 파일을 생성합니다.

    2. (선택 사항) 파이프라인 수준에서 변수를 하나 이상 추가할 수 있습니다. CodePipeline 작업 구성에서 이 값을 참조할 수 있습니다. 파이프라인을 생성할 때 변수 이름과 값을 추가할 수 있으며 콘솔에서 파이프라인을 시작할 때 값을 할당하도록 선택할 수도 있습니다.

      참고

      파이프라인 수준에서 변수를 추가하는 것은 선택 사항이지만, 값이 제공되지 않은 파이프라인 수준의 변수로 지정된 파이프라인의 경우 파이프라인 실행이 실패합니다.

      파이프라인 수준의 변수는 파이프라인 런타임에 확인됩니다. 모든 변수는 변경할 수 없습니다. 즉, 값을 할당한 후에는 업데이트할 수 없습니다. 확인된 값이 있는 파이프라인 수준의 변수는 각 실행의 기록에 표시됩니다.

      파이프라인 구조의 변수 속성을 사용하여 파이프라인 수준에서 변수를 제공합니다. 다음 예제에서 변수 Variable1 값은 Value1입니다.

      "variables": [ { "name": "Timeout", "defaultValue": "1000", "description": "description" } ]

      파이프라인 JSON에 또는 다음 단계의 예제JSON에 이 구조를 추가합니다. 네임스페이스 정보를 비롯한 변수에 대한 자세한 내용은 변수 참조 단원을 참조하세요.

    3. 일반 텍스트 편집기에서 파일을 열고 값을 편집하여 생성하려는 구조를 반영합니다. 적어도 파이프라인의 이름은 변경해야 합니다. 또한 변경을 하고자 하는지 고려해야 합니다.

      • 이 파이프라인에 대한 아티팩트가 저장되는 S3 버킷입니다.

      • 코드에 있는 소스 위치입니다.

      • 배포 공급자입니다.

      • 원하는 코드 배포 방법입니다.

      • 파이프라인의 태그입니다.

      다음의 두 단계로 이루어진 샘플 파이프라인 구조에는 파이프라인 변경을 고려해야 하는 값이 강조되어 있습니다. 파이프라인에는 3개 이상의 단계가 포함되어 있을 가능성이 큽니다.

      { "pipeline": { "roleArn": "arn:aws:iam::80398EXAMPLE::role/AWS-CodePipeline-Service", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "amzn-s3-demo-source-bucket", "S3ObjectKey": "ExampleCodePipelineSampleBundle.zip", "PollForSourceChanges": "false" }, "runOrder": 1 } ] }, { "name": "Staging", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-CodeDeploy-Application", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineDemoFleet" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "codepipeline-us-east-2-250656481468" }, "name": "MyFirstPipeline", "version": 1, "variables": [ { "name": "Timeout", "defaultValue": "1000", "description": "description" } ] }, "triggers": [ { "providerType": "CodeStarSourceConnection", "gitConfiguration": { "sourceActionName": "Source", "push": [ { "tags": { "includes": [ "v1" ], "excludes": [ "v2" ] } } ] } } ] "metadata": { "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline", "updated": 1501626591.112, "created": 1501626591.112 }, "tags": [{ "key": "Project", "value": "ProjectA" }] }

      이 예제는 파이프라인에 Project 태그 키와 ProjectA 값을 포함하여 파이프라인에 태그 지정을 추가합니다. 의 리소스 태그 지정에 대한 자세한 내용은 섹션을 CodePipeline참조하세요리소스에 태그 지정.

      JSON 파일의 PollForSourceChanges 파라미터가 다음과 같이 설정되어 있는지 확인합니다.

      "PollForSourceChanges": "false",

      CodePipeline 는 Amazon CloudWatch Events를 사용하여 CodeCommit 소스 리포지토리 및 브랜치 또는 S3 소스 버킷의 변경 사항을 감지합니다. 다음 단계에는 파이프라인에 대해 이러한 리소스를 수동으로 생성하기 위한 설명이 포함되어 있습니다. 플래그를 false로 설정하면 정기적 확인이 비활성화되어 권장되는 변경 감지 방법을 사용할 때 필요하지 않습니다.

    4. 파이프라인과 다른 리전에서 빌드, 테스트, 배포 작업을 생성하려면 파이프라인 구조에 다음을 추가해야 합니다. 지침은 에 지역 간 액션 추가 CodePipeline 단원을 참조하십시오.

      • 작업 파이프라인 구조에 Region 파라미터를 추가합니다.

      • artifactStores 파라미터를 사용하여 작업이 있는 각 AWS 리전에 대해 아티팩트 버킷을 지정합니다.

    5. 이 구조에 만족하는 경우 pipeline.json과 같은 이름으로 파일을 저장합니다.

    파이프라인을 생성하려면
    1. create-pipeline 명령을 실행하고 --cli-input-json 파라미터를 사용하여 이전에 생성한 JSON 파일을 지정합니다.

      라는 파이프라인을 생성하려면 MySecondPipeline 이름이 포함된 pipeline.json이라는 JSON 파일 사용MySecondPipeline'name에서 의 값으로JSON, 명령은 다음과 같습니다.

      aws codepipeline create-pipeline --cli-input-json file://pipeline.json
      중요

      파일 이름 앞에 file://를 포함해야 합니다. 이 명령에 필수적입니다.

      이 명령은 사용자가 생성한 전체 파이프라인의 구조를 반환합니다.

    2. 파이프라인을 보려면 CodePipeline 콘솔을 열고 파이프라인 목록에서 선택하거나 get-pipeline-state 명령을 사용합니다. 자세한 내용은 에서 파이프라인 및 세부 정보 보기 CodePipeline 단원을 참조하십시오.

    3. CLI 를 사용하여 파이프라인을 생성하는 경우 파이프라인에 권장되는 변경 감지 리소스를 수동으로 생성해야 합니다.

    정적 템플릿에서 파이프라인 생성

    템플릿을 사용하여 지정한 소스 코드 및 속성으로 파이프라인을 구성하는 파이프라인을 콘솔에서 생성할 수 있습니다. 작업에 사용할 소스 파일 위치와 소스 공급자에 대한 정보를 제공해야 합니다. Amazon ECR 또는 CodeConnections와 같이 에서 지원하는 타사 리포지토리에 대한 소스 작업을 지정할 수 있습니다 GitHub.

    템플릿은 파이프라인 AWS CloudFormation 에 대해 다음 리소스를 포함하는 스택을 생성합니다.

    • 파이프라인은 V2 파이프라인 유형으로 생성됩니다. 파이프라인 유형에서 다음 옵션 중 하나를 선택합니다. 파이프라인 유형은 특성과 가격이 다릅니다. 자세한 내용은 파이프라인 유형 단원을 참조하십시오.

    • 서비스 역할은 파이프라인에 대해 생성되고 템플릿에서 참조됩니다.

    • 아티팩트 스토어는 파이프라인에 대해 선택한 의 파이프라인에 대해 기본값으로 지정된 S3 아티팩트 버킷과 같은 기본 아티팩트 스토어를 AWS 리전 사용하여 생성됩니다.

    정적 템플릿을 사용하여 파이프라인을 생성할 때 파이프라인 구조는 사용 사례의 필요에 따라 각 템플릿에 구성됩니다. 예를 들어 배포용 템플릿 AWS CloudFormation 은 이 절차에서 예제로 사용됩니다. 템플릿은 다음 구조DeployToCloudFormationService로 라는 파이프라인을 생성합니다.

    • 마법사에서 지정한 구성의 소스 작업이 포함된 빌드 단계입니다.

    • 에서 배포 작업 및 관련 리소스 스택이 있는 배포 단계입니다 AWS CloudFormation.

    정적 템플릿을 사용하여 파이프라인을 생성할 때 는 스테이지 이름(소스, 빌드, 스테이징)을 CodePipeline 생성합니다. 이러한 이름은 변경할 수 없습니다. 나중에 추가하는 단계에 더 구체적인 이름(예: BuildToGamma DeployToProd)을 사용할 수 있습니다.

    1단계: 생성 옵션 선택
    1. 에 로그인 AWS Management Console 하고 http://console.aws.amazon.com/codesuite/codepipeline/home CodePipeline 콘솔을 엽니다.

    2. [Welcome] 페이지에서 [Create pipeline]을 선택합니다.

      를 처음 사용하는 경우 시작하기 를 CodePipeline선택합니다.

    3. 1단계: 생성 옵션 선택 페이지의 생성 옵션에서 템플릿에서 파이프라인 생성 옵션을 선택합니다. Next(다음)를 선택합니다.

    2단계: 템플릿 선택

    배포 단계, 자동화 또는 CI 파이프라인을 사용하여 파이프라인을 생성할 템플릿을 선택합니다.

    1. 2단계: 템플릿 선택 페이지에서 다음 중 하나를 수행한 다음 다음을 선택합니다.

      • 배포 단계를 생성하려는 경우 배포를 선택합니다. ECR 또는 에 배포하는 템플릿에 대한 옵션을 봅니다 CloudFormation. 이 예에서는 배포 를 선택한 다음 에 배포하도록 선택합니다 CloudFormation.

      • CI 파이프라인을 생성하려는 경우 지속적 통합을 선택합니다. Gradle에 빌드와 같은 CI 파이프라인에 대한 옵션을 봅니다.

      • 자동 파이프라인을 생성하려는 경우 자동화를 선택합니다. python 빌드 예약과 같은 자동화 옵션을 확인합니다.

    2. 마법사에서 CloudFormation 배포 셀러크릿이 있는 템플릿 선택 옵션을 보여주는 이미지
      마법사의 소스 선택 페이지를 보여주는 이미지
      마법사에서 자동화를 선택한 템플릿 선택 옵션을 보여주는 이미지
    3단계: 소스 선택
    • 3단계: 소스 선택 페이지의 소스 공급자 에서 소스 코드가 저장되는 리포지토리의 공급자를 선택하고 필요한 옵션을 지정한 다음 다음 다음 단계 를 선택합니다.

      • Bitbucket Cloud, GitHub (버전 2), GitHub Enterprise Server, GitLab.com 또는 GitLab 자체 관리형 의 경우:

        1. 연결에서 기존 연결을 선택하거나 새로 생성합니다. GitHub 소스 작업에 대한 연결을 생성하거나 관리하려면 섹션을 참조하세요GitHub 연결.

        2. 파이프라인의 소스 위치로 사용할 리포지토리를 선택합니다.

          트리거를 추가하거나 트리거 유형에 필터를 선택하여 파이프라인을 시작합니다. 트리거 작업에 대한 자세한 내용은 섹션을 참조하세요코드 푸시 또는 풀 요청에 대한 트리거 필터링. Glog 패턴을 사용한 필터링에 대한 자세한 내용은 구문에서 glob 패턴 작업을 참조하세요.

        3. 출력 아티팩트 형식에서 아티팩트의 형식을 선택합니다.

          • 기본 메서드를 사용하여 GitHub 작업의 출력 아티팩트를 저장하려면 CodePipeline 기본 를 선택합니다. 작업은 GitHub 리포지토리에서 파일에 액세스하고 아티팩트를 파이프라인 아티팩트 스토어의 ZIP 파일에 저장합니다.

          • 다운스트림 작업이 Git 명령을 직접 수행할 수 있도록 리포지토리에 대한 URL 참조가 포함된 JSON 파일을 저장하려면 전체 복제를 선택합니다. 이 옵션은 CodeBuild 다운스트림 작업에서만 사용할 수 있습니다.

            이 옵션을 선택하면 에 표시된 대로 CodeBuild 프로젝트 서비스 역할에 대한 권한을 업데이트해야 합니다문제 해결 CodePipeline. 전체 복제 옵션을 사용하는 방법을 보여주는 자습서는 자습서: GitHub 파이프라인 소스와 함께 전체 복제본 사용을 참조하세요.

      • Amazon의 ECR경우:

        • 리포지토리 이름 에서 Amazon ECR리포지토리의 이름을 선택합니다.

        • 이미지 태그 에서 와 다른 경우 이미지 이름과 버전을 지정합니다LATEST.

        • 출력 아티팩트 에서 다음 단계에서 사용할 이미지 이름과 리포지토리 URI 정보가 MyApp포함된 출력 아티팩트 기본값을 선택합니다.

        파이프라인에 Amazon ECR 소스 단계를 포함하면 소스 작업은 변경을 커밋할 때 imageDetail.json 파일을 출력 아티팩트로 생성합니다. imageDetail.json 파일에 대한 자세한 내용은 imageDetailAmazon ECS 블루/그린 배포 작업을 위한 .json 파일 단원을 참조하십시오.

      참고

      객체 및 파일 유형은 사용하려는 배포 시스템(예: Elastic Beanstalk 또는 )과 호환되어야 합니다 CodeDeploy. 지원되는 파일 형식에는 .zip, .tar, .tgz 파일 등이 있습니다. Elastic Beanstalk에 지원되는 컨테이너 형식에 대한 자세한 내용은 Elastic Beanstalk 환경 사용자 지정 및 구성지원 플랫폼 단원을 참조하세요. 를 사용하여 개정을 배포하는 방법에 대한 자세한 내용은 애플리케이션 개정 업로드개정 준비 섹션을 CodeDeploy참조하세요.

    4단계: 템플릿 구성

    이 예제에서는 에 대한 배포가 선택 CloudFormation 되었습니다. 이 단계에서 템플릿에 대한 구성을 추가합니다.

    마법사의 템플릿 구성 페이지를 보여주는 이미지
    1. 4단계: 템플릿 구성 스택 이름 에 파이프라인의 이름을 입력합니다.

    2. 템플릿에 적용되는 권한에 대한 자리 표시자 IAM 정책을 편집합니다.

    3. 템플릿에서 파이프라인 생성을 선택합니다.

    4. 파이프라인 리소스가 생성되고 있다는 메시지가 표시됩니다.

    5단계: 파이프라인 보기