

# CloudFormation 아티팩트
<a name="continuous-delivery-codepipeline-cfn-artifacts"></a>

CodePipeline에서 CodePipeline이 파이프라인을 실행할 때 아티팩트에 대한 작업을 수행합니다. CloudFormation의 경우 아티팩트에는 스택 템플릿 파일, 템플릿 구성 파일 또는 2가지 모두 포함될 수 있습니다. CodePipeline은 이러한 아티팩트를 사용하여 CloudFormation 스택 및 변경 세트 작업을 수행합니다.

Amazon Simple Storage Service(Amazon S3)를 소스 리포지토리로 사용하는 경우, 템플릿 및 템플릿 구성 파일을 파일 하나로 압축한 다음 S3 버킷에 업로드해야 합니다. 기타 리포지토리(예: GitHub 및 AWS CodeCommit)의 경우 압축하지 않고 아티팩트를 업로드합니다. 자세한 내용은 *AWS CodePipeline 사용 설명서*의 [Create a pipeline, stages, and actions](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html)를 참조하세요.

리포지토리에는 파일을 원하는 만큼 추가할 수 있습니다. 예를 들어 동일한 템플릿에 대해 두 가지 구성, 즉 테스트 구성 및 프로덕션 구성을 포함할 수 있습니다.

이 주제에서는 각 아티팩트 유형에 대해 설명합니다.

**Topics**
+ [스택 템플릿 파일](#w2aac21c15c13)
+ [템플릿 구성 파일](#w2aac21c15c15)
+ [다음 사항도 참조하세요.](#w2aac21c15c17)

## 스택 템플릿 파일
<a name="w2aac21c15c13"></a>

스택 템플릿 파일은 CloudFormation에서 프로비저닝 및 구성하는 리소스를 정의합니다. 이러한 파일은 CloudFormation을 사용하여 스택을 생성 또는 업데이트하는 경우 사용하는 템플릿 파일과 동일합니다. YAML 또는 JSON 형식 템플릿을 사용할 수 있습니다. 템플릿에 대한 자세한 내용은 단원을 참조하세요[CloudFormation 템플릿 섹션](template-anatomy.md)

## 템플릿 구성 파일
<a name="w2aac21c15c15"></a>

템플릿 구성 파일은 JSON 형식 텍스트 파일로, 템플릿 파라미터 값, [스택 정책](protect-stack-resources.md) 및 태그를 지정할 수 있습니다. 템플릿 구성 파일을 사용하여 스택에 대한 파라미터 값 또는 스택 정책을 지정합니다. 지정한 파라미터 값은 모두 연결된 템플릿에서 선언되어 있어야 합니다.

이 파일에 민감한 정보(예: 암호)를 포함하면 해당 파일에 대한 액세스를 제한합니다. 예를 들어, 아티팩트를 S3 버킷에 업로드하면 [S3 버킷 정책 또는 사용자 정책](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-management.html)을 사용하여 액세스를 제한합니다.

구성 파일을 생성하려면 다음 형식을 사용합니다.

```
{
  "Parameters" : {
    "NameOfTemplateParameter" : "ValueOfParameter",
    ...
  },
  "Tags" : {
    "TagKey" : "TagValue",
    ...
  }, 
  "StackPolicy" : {
    "Statement" : [
      StackPolicyStatement
    ]
  }
}
```

다음 예에서는 `TestEC2Key` 파라미터에 대해 `KeyName`를 지정하고, 값이 `Department`인 `Marketing` 태그를 추가하고, 리소스를 삭제하는 업데이트를 제외하고 모든 업데이트 작업을 허용하는 스택 정책을 추가합니다.

```
{
  "Parameters" : {
    "KeyName" : "TestEC2Key"
  },
  "Tags" : {
    "Department" : "Marketing"
  },
  "StackPolicy" : {
    "Statement" : [
      {
        "Effect" : "Allow",
        "NotAction" : "Update:Delete",
        "Principal": "*",
        "Resource" : "*"
      }
    ]
  }
}
```

## 다음 사항도 참조하세요.
<a name="w2aac21c15c17"></a>

이러한 파라미터를 이용할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.
+ CodePipeline의 CloudFormation 작업 파라미터에 대한 자세한 내용은 *AWS CodePipeline 사용 설명서*의 [CloudFormation deploy action configuration reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CloudFormation.html)를 참조하세요.
+ `Owner` 필드 또는 `configuration` 필드와 같은 작업 공급자별 예제 템플릿 값은 **AWS CodePipeline 사용 설명서의 [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html)에서 확인하세요.
+ YAML 또는 JSON 형식의 예제 파이프라인 스택 템플릿을 다운로드하려면 *AWS CodePipeline 사용 설명서*의 [Tutorial: Create a pipeline with CloudFormation](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-cloudformation.html)을 참조하세요.