

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

# 예제 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. 소스 버킷에서 변경 사항을 커밋하고 푸시합니다. 변경 감지 리소스가 변경 사항을 선택하면 파이프라인이 시작됩니다.