

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

# 자습서:를 사용하여 파이프라인 생성 AWS CloudFormation
<a name="tutorials-cloudformation"></a>

이 예제에서는를 사용하여 소스 코드가 변경될 때마다 인스턴스 AWS CloudFormation 에 애플리케이션을 배포하는 파이프라인을 생성할 수 있는 샘플 템플릿을 제공합니다. 샘플 템플릿은 AWS CodePipeline에서 볼 수 있는 파이프라인을 생성합니다. 파이프라인은 Amazon CloudWatch Events를 통해 저장된 변경 사항의 도착을 감지합니다.

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

**Topics**
+ [예제 1:를 사용하여 AWS CodeCommit 파이프라인 생성 AWS CloudFormation](tutorials-cloudformation-codecommit.md)
+ [예제 2:를 사용하여 Amazon S3 파이프라인 생성 AWS CloudFormation](tutorials-cloudformation-s3.md)

# 예제 1:를 사용하여 AWS CodeCommit 파이프라인 생성 AWS CloudFormation
<a name="tutorials-cloudformation-codecommit"></a>

이 연습에서는 AWS CloudFormation 콘솔을 사용하여 CodeCommit 소스 리포지토리에 연결된 파이프라인을 포함하는 인프라를 생성하는 방법을 보여줍니다. 이 자습서에서는 제공된 샘플 템플릿 파일을 사용하여 아티팩트 스토어, 파이프라인 및 Amazon CloudWatch Events 규칙과 같은 변경 감지 리소스가 포함된 리소스 스택을 생성합니다. 에서 리소스 스택을 생성한 후 AWS CodePipeline 콘솔에서 파이프라인을 볼 AWS CloudFormation수 있습니다. 파이프라인은 CodeCommit 소스 단계와 CodeDeploy 배포 단계가 있는 2단계 파이프라인입니다.

**사전 조건**:

 AWS CloudFormation 샘플 템플릿과 함께 사용하려면 다음 리소스를 생성해야 합니다.
+ 소스 리포지토리가 생성되어 있어야 합니다. 에서 생성한 AWS CodeCommit 리포지토리를 사용할 수 있습니다[자습서: 간단한 파이프라인 생성(CodeCommit 리포지토리)](tutorials-simple-codecommit.md).
+ CodeDeploy 애플리케이션 및 배포 그룹을 생성해야 합니다. [자습서: 간단한 파이프라인 생성(CodeCommit 리포지토리)](tutorials-simple-codecommit.md)에 생성한 CodeDeploy 리소스를 사용할 수 있습니다.
+ 다음 링크 중 하나를 선택하여 파이프라인 생성을 위한 샘플 AWS CloudFormation 템플릿 파일을 다운로드합니다. [YAML](samples/codepipeline-codecommit-events-yaml.zip) \$1 [JSON](samples/codepipeline-codecommit-events-json.zip)

  파일의 압축을 풀고 로컬 컴퓨터에 저장합니다.
+ [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip) 샘플 애플리케이션 파일을 다운로드합니다.



**에서 파이프라인 생성 AWS CloudFormation**

1. [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip)에서 파일의 압축을 풀고 AWS CodeCommit 리포지토리에 파일을 업로드합니다. 압축을 푼 파일을 리포지토리의 루트 디렉터리에 업로드해야 합니다. [2단계: CodeCommit 리포지토리에 샘플 코드 추가](tutorials-simple-codecommit.md#codecommit-add-code)의 지침에 따라 파일을 리포지토리로 푸시할 수 있습니다.

1.  AWS CloudFormation 콘솔을 열고 **스택 생성을** 선택합니다. **새 리소스 사용(표준)(With new resources (standard))**을 선택합니다.

1. **템플릿 지정**에서 **템플릿 업로드**를 선택합니다. **파일 선택**을 선택한 후 로컬 컴퓨터에서 템플릿 파일을 선택합니다. **다음**을 선택합니다.

1. **스택 이름**에 파이프라인의 이름을 입력합니다. 샘플 템플릿에 지정된 파라미터가 표시됩니다. 다음 파라미터를 입력합니다.

   1. **ApplicationName**에 CodeDeploy 애플리케이션의 이름을 입력합니다.

   1. **BetaFleet**에 CodeDeploy 배포 그룹 이름을 입력합니다.

   1. **BranchName**에서 사용할 리포지토리 브랜치를 입력합니다.

   1. **RepositoryName**에서 CodeCommit 소스 리포지토리의 이름을 입력합니다.

1. **다음**을 선택합니다. 다음 페이지에서 기본값을 적용한 후 **다음**을 선택합니다.

1. **기능**에서 **이 IAM 리소스를 생성할 AWS CloudFormation 수 있음을 승인합니다**를 선택한 다음 **스택 생성을** 선택합니다.

1. 스택 생성을 완료한 후 이벤트 목록에서 오류를 확인합니다.

   **문제 해결**

   에서 파이프라인을 생성하는 IAM 사용자는 파이프라인에 대한 리소스를 생성하는 데 추가 권한이 필요할 AWS CloudFormation 수 있습니다. 가 CodeCommit 파이프라인에 필요한 Amazon CloudWatch Events 리소스를 AWS CloudFormation 생성하도록 허용하려면 정책에 다음 권한이 필요합니다.

   ```
   {
        "Effect": "Allow",
        "Action": [
           "events:PutRule",
           "events:PutEvents",
           "events:PutTargets",
           "events:DeleteRule",
           "events:RemoveTargets",
           "events:DescribeRule"
        ],
        "Resource": "resource_ARN"
   }
   ```

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) CodePipeline 콘솔을 엽니다.

   **파이프라인**에서 파이프라인을 선택하고 **보기**를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.
**참고**  
생성된 파이프라인을 보려면 CloudFormation의 스택에 대한 **리소스** 탭에서 **논리적 ID** 열을 찾으세요. 파이프라인의 **물리적 ID** 열에 있는 이름을 기록해 둡니다. CodePipeline에서는 스택을 생성한 리전의 동일한 물리적 ID(파이프라인 이름)로 파이프라인을 볼 수 있습니다.

1. 소스 리포지토리에서 변경 사항을 커밋하고 푸시합니다. 변경 감지 리소스가 변경 사항을 선택하면 파이프라인이 시작됩니다.

# 예제 2:를 사용하여 Amazon S3 파이프라인 생성 AWS CloudFormation
<a name="tutorials-cloudformation-s3"></a>

이 연습에서는 AWS CloudFormation 콘솔을 사용하여 Amazon S3 소스 버킷에 연결된 파이프라인을 포함하는 인프라를 생성하는 방법을 보여줍니다. 샘플 템플릿 파일을 사용하여 소스 버킷, 아티팩트 스토어, 파이프라인 및 Amazon CloudWatch Events 규칙 및 CloudTrail 추적과 같은 변경 감지 리소스가 포함된 리소스 스택을 만듭니다. 에서 리소스 스택을 생성한 후 AWS CodePipeline 콘솔에서 파이프라인을 볼 AWS CloudFormation수 있습니다. 파이프라인은 Amazon S3 소스 단계와 CodeDeploy 배포 단계가 있는 2단계 파이프라인입니다.

**사전 조건**:

 AWS CloudFormation 샘플 템플릿과 함께 사용하려면 다음 리소스가 있어야 합니다.
+ 인스턴스에 CodeDeploy 에이전트를 설치한 Amazon EC2 인스턴스를 생성해야 합니다. CodeDeploy 애플리케이션 및 배포 그룹을 생성해야 합니다. [자습서: 간단한 파이프라인 생성(CodeCommit 리포지토리)](tutorials-simple-codecommit.md)에 생성한 Amazon EC2 및 CodeDeploy 리소스를 사용합니다.
+ 다음 링크를 선택하여 Amazon S3 소스로 파이프라인을 생성하기 위한 샘플 AWS CloudFormation 템플릿 파일을 다운로드합니다.
  + 파이프라인에 대한 샘플 템플릿을 [YAML](samples/codepipeline-s3-events-yaml.zip) 또는 [JSON](samples/codepipeline-s3-events-json.zip) 형식으로 다운로드합니다.
  + CloudTrail 버킷 및 추적을 위한 샘플 템플릿([YAML](samples/codepipeline-s3-cloudtrail-yaml.zip) \$1 [JSON](samples/codepipeline-s3-cloudtrail-json.zip) 형식)을 다운로드합니다.
  + 파일의 압축을 풀고 로컬 컴퓨터에 저장합니다.
+ [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip) 샘플 애플리케이션 파일을 다운로드합니다.

  zip 파일을 로컬 컴퓨터에 저장합니다. 스택을 만든 후에 zip 파일을 업로드합니다.

**에서 파이프라인 생성 AWS CloudFormation**

1.  AWS CloudFormation 콘솔을 열고 **스택 생성을** 선택합니다. **새 리소스 사용(표준)(With new resources (standard))**을 선택합니다.

1. **템플릿 선택** 페이지에서 **템플릿 업로드**를 선택합니다. **파일 선택**을 선택한 후 로컬 컴퓨터에서 템플릿 파일을 선택합니다. **다음**을 선택합니다.

1. **스택 이름**에 파이프라인의 이름을 입력합니다. 샘플 템플릿에 지정된 파라미터가 표시됩니다. 다음 파라미터를 입력합니다.

   1. **ApplicationName**에 CodeDeploy 애플리케이션의 이름을 입력합니다. `DemoApplication` 기본 이름을 바꿀 수 있습니다.

   1. **BetaFleet**에 CodeDeploy 배포 그룹 이름을 입력합니다. `DemoFleet` 기본 이름을 바꿀 수 있습니다.

   1. **SourceObjectKey**에서 `SampleApp_Linux.zip`을 입력합니다. 이 파일은 템플릿에서 버킷과 파이프라인을 생성하는 즉시 버킷에 업로드됩니다.

1. **다음**을 선택합니다. 다음 페이지에서 기본값을 적용한 후 **다음**을 선택합니다.

1. **기능**에서 **이 IAM 리소스를 생성할 AWS CloudFormation 수 있음을 승인합니다**를 선택한 다음 **스택 생성을** 선택합니다.

1. 스택 생성을 완료한 후 이벤트 목록에서 오류를 확인합니다.

   **문제 해결**

   에서 파이프라인을 생성하는 IAM 사용자는 파이프라인에 대한 리소스를 생성하는 데 추가 권한이 필요할 AWS CloudFormation 수 있습니다. 가 Amazon S3 파이프라인에 필요한 Amazon CloudWatch Events 리소스를 AWS CloudFormation 생성하도록 허용하려면 정책에 다음 권한이 필요합니다. Amazon S3 

   ```
   {
        "Effect": "Allow",
        "Action": [
           "events:PutRule",
           "events:PutEvents",
           "events:PutTargets",
           "events:DeleteRule",
           "events:RemoveTargets",
           "events:DescribeRule"
        ],
        "Resource": "resource_ARN"
   }
   ```

1. 의 스택 CloudFormation에 대한 **리소스** 탭에서 스택에 대해 생성된 리소스를 확인합니다.
**참고**  
생성된 파이프라인을 보려면 CloudFormation의 스택에 대한 **리소스** 탭에서 **논리적 ID** 열을 찾으세요. 파이프라인의 **물리적 ID** 열에 있는 이름을 기록해 둡니다. CodePipeline에서는 스택을 생성한 리전의 동일한 물리적 ID(파이프라인 이름)로 파이프라인을 볼 수 있습니다.

   이름에 `sourcebucket` 레이블이 있는 S3 버킷을 선택합니다(예: `s3-cfn-codepipeline-sourcebucket-y04EXAMPLE.`). 파이프라인의 아티팩트 버킷을 선택하지 않습니다.

   리소스가 CloudFormation에서 새로 생성되었으므로 원본 버킷이 비어 있습니다. Amazon S3 콘솔을 열고 `sourcebucket` 버킷을 선택합니다. **업로드**를 선택하고 지침에 따라 `SampleApp_Linux.zip` .zip 파일을 업로드합니다.
**참고**  
Amazon S3가 파이프라인의 소스 공급자인 경우, 단일 .zip 파일로 패키지된 모든 소스 파일을 버킷에 업로드해야 합니다. 그렇지 않으면 소스 작업이 실패합니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) CodePipeline 콘솔을 엽니다.

   **파이프라인**에서 파이프라인을 선택한 후 **보기**를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.

1. 다음 절차의 단계를 완료하여 AWS CloudTrail 리소스를 생성합니다.

**에서 AWS CloudTrail 리소스 생성 AWS CloudFormation**

1.  AWS CloudFormation 콘솔을 열고 **스택 생성을** 선택합니다.

1. **템플릿 선택** 페이지에서 **Amazon S3에 템플릿 업로드**를 선택합니다. **찾아보**기를 선택한 다음 로컬 컴퓨터의 AWS CloudTrail 리소스에 대한 템플릿 파일을 선택합니다. **다음**을 선택합니다.

1. **스택 이름**에 리소스 스택의 이름을 입력합니다. 샘플 템플릿에 지정된 파라미터가 표시됩니다. 다음 파라미터를 입력합니다.

   1. **SourceObjectKey**에서 샘플 애플리케이션의 zip 파일에 대한 기본값을 적용합니다.

1. **다음**을 선택합니다. 다음 페이지에서 기본값을 적용한 후 **다음**을 선택합니다.

1. **기능**에서 **이 IAM 리소스를 생성할 AWS CloudFormation 수 있음을 승인합니다**를 선택한 다음 **생성을** 선택합니다.

1. 스택 생성을 완료한 후 이벤트 목록에서 오류를 확인합니다.

   가 Amazon S3 파이프라인에 필요한 CloudTrail 리소스를 AWS CloudFormation 생성하도록 허용하려면 정책에 다음 권한이 필요합니다.

   ```
   {
        "Effect": "Allow",
        "Action": [
           "cloudtrail:CreateTrail",
           "cloudtrail:DeleteTrail",
           "cloudtrail:StartLogging",
           "cloudtrail:StopLogging",
           "cloudtrail:PutEventSelectors"
        ],
        "Resource": "resource_ARN"
   }
   ```

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) CodePipeline 콘솔을 엽니다.

   **파이프라인**에서 파이프라인을 선택한 후 **보기**를 선택합니다. 다이어그램은 파이프라인 소스 및 배포 단계를 보여줍니다.

1. 소스 버킷에서 변경 사항을 커밋하고 푸시합니다. 변경 감지 리소스가 변경 사항을 선택하면 파이프라인이 시작됩니다.