

새로운 *CloudFormation 템플릿 참조 안내서*입니다. 북마크와 링크를 업데이트하세요. CloudFormation을 시작하는 데 도움이 필요한 경우 [AWS CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)를 참조하세요.

# AWS 리소스 및 속성 유형 참조
<a name="aws-template-resource-type-ref"></a>

이 섹션에는 CloudFormation에서 지원하는 모든 AWS 리소스 및 속성 유형에 대한 참조 정보가 포함되어 있습니다.

리소스 유형 식별자는 항상 다음 형식을 사용합니다.

```
service-provider::service-name::data-type-name
```

**Topics**
+ [공유 속성 유형](cfn-reference-shared.md)

# 공유 속성 유형 참조
<a name="cfn-reference-shared"></a>

이 섹션에는 CloudFormation에서 여러 리소스 유형에 사용할 수 있도록 지원하는 속성 유형에 대한 자세한 참조 정보가 포함되어 있습니다.

**Topics**
+ [CloudFormation 리소스 사용자 지정 이름 지정](aws-properties-name.md)
+ [CloudFormation 리소스 태그 지정](aws-properties-resource-tags.md)

# CloudFormation 리소스 사용자 지정 이름 지정
<a name="aws-properties-name"></a>

더 의미 있고 쉽게 식별할 수 있도록 CloudFormation 템플릿에서 지원되는 리소스 유형에 사용자 지정 이름을 지정할 수 있습니다. 기본적으로 CloudFormation에서는 고유한 물리적 ID를 생성하여 리소스에 이름을 지정합니다. 예를 들어 CloudFormation에서 물리적 ID `MyStack-MyBucket-abcdefghijk1`을 Amazon S3 버킷의 이름으로 지정할 수 있습니다. 사용자 지정 이름을 사용하면 이름을 보다 쉽게 읽고 식별할 수 있게 됩니다(예: `production-app-logs` 또는 `business-metrics`).

일부 리소스는 사용자 지정 이름을 지원하지 않습니다. 각 AWS 서비스는 사용자 지정 이름을 지원하는 리소스 유형을 독립적으로 결정합니다.

리소스 이름은 모든 활성 스택에서 고유해야 합니다. 템플릿을 재사용해 여러 스택을 생성하는 경우 사용자 지정 이름을 변경하거나 템플릿에서 제거해야 합니다. 이름을 지정하지 않으면 CloudFormation에서 고유의 물리적 ID를 생성하여 리소스의 이름을 지정합니다. 이름은 문자로 시작해야 하고, ASCII 문자, 숫자 및 하이픈만 포함할 수 있으며, 끝에 하이픈이 오거나 하이픈을 연속으로 2개 포함하면 안 됩니다.

또한 CloudFormation 외부의 스택 리소스는 관리하지 않습니다. 예를 들어 CloudFormation을 사용하지 않고 스택의 일부인 리소스의 이름을 바꾸면 해당 스택을 업데이트 또는 삭제하려고 할 때마다 오류가 발생할 수 있습니다.

**중요**  
사용자 지정 이름의 리소스가 바뀌는 업데이트는 수행할 수 없습니다. 리소스를 바꿔야 한다면 새 이름을 지정하십시오.

## 예시
<a name="aws-properties-name-example"></a>

사용자 지정 이름을 사용하려면 CloudFormation 템플릿에서 해당 리소스의 이름 속성을 지정합니다. 사용자 지정 이름을 지원하는 각 리소스에는 사용자가 지정한 고유한 속성이 있습니다. 예를 들어 DynamoDB 테이블의 이름을 지정하려면 다음 샘플에 표시된 것처럼 `TableName` 속성을 사용합니다.

### JSON
<a name="aws-properties-name-example.json"></a>

```
"myDynamoDBTable" : {
   "Type" : "AWS::DynamoDB::Table",
   "Properties" : {
      "KeySchema" : {
         "HashKeyElement": {
            "AttributeName" : "AttributeName1",
            "AttributeType" : "S"
         },
         "RangeKeyElement" : {
            "AttributeName" : "AttributeName2",
            "AttributeType" : "N"
         }
      },
      "ProvisionedThroughput" : {
         "ReadCapacityUnits" : "5",
         "WriteCapacityUnits" : "10"
      },
      "TableName" : "SampleTable"
   }
}
```

### YAML
<a name="aws-properties-name-example.yaml"></a>

```
myDynamoDBTable: 
  Type: AWS::DynamoDB::Table
  Properties: 
    KeySchema: 
      HashKeyElement: 
        AttributeName: "AttributeName1"
        AttributeType: "S"
      RangeKeyElement: 
        AttributeName: "AttributeName2"
        AttributeType: "N"
    ProvisionedThroughput: 
      ReadCapacityUnits: "5"
      WriteCapacityUnits: "10"
    TableName: "SampleTable"
```

# CloudFormation 리소스 태그 지정
<a name="aws-properties-resource-tags"></a>

CloudFormation 템플릿에서 `Tags` 속성을 사용하여 리소스에 태그를 적용할 수 있습니다. 그러면 해당 리소스를 식별하고 분류하는 데 도움이 될 수 있습니다.

`Tags` 속성을 지원하는 리소스에 대한 자세한 내용은 [AWS 리소스 및 속성 유형 참조](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-template-resource-type-ref.html)에서 개별 리소스를 참조하세요. 리소스가 아직 `Tags` 속성을 지원하지 않는 경우 리소스의 서비스는 자체 API 작업을 사용하여 태그 지정을 지원할 수 있습니다. 자세한 내용은 해당 서비스에 대한 설명서를 참조하세요.

사용자가 정의하는 태그 외에도 CloudFormation에서는 `aws:` 접두사가 있는 다음과 같은 스택 레벨 태그를 자동으로 생성합니다.
+ `aws:cloudformation:logical-id`
+ `aws:cloudformation:stack-id`
+ `aws:cloudformation:stack-name`

`aws:` 접두사는 AWS용으로 예약되어 있습니다. 이 접두사는 대소문자를 구분하지 않습니다. `Key` 또는 `Value` 속성에 이 접두사를 사용하면 태그를 업데이트하거나 삭제할 수 없습니다. 이 접두사가 포함된 태그는 리소스당 태그 수에 산입되지 않습니다.

`aws:` 접두사가 있는 태그를 포함하여 리소스에 대한 스택 수준 태그 전파는 리소스 유형에 따라 다릅니다. 예를 들어, 블록 디바이스 매핑에서 생성된 Amazon EBS 볼륨에는 태그가 전파되지 않습니다.

**참고**  
일부 리소스에는 명시적 태그 전파 설정이 필요합니다. 예를 들어 EC2 인스턴스에 태그를 전파하려면 `AWS::AutoScaling::AutoScalingGroup` 리소스의 `PropagateAtLaunch` 속성이 `true`로 설정되어 있어야 합니다. 그러나 스택 레벨 태그는 `PropagateAtLaunch` 설정에 관계없이 EC2 인스턴스에 자동으로 적용됩니다.

## 구문
<a name="w2aac14d542c13c17"></a>

### JSON
<a name="aws-properties-resource-tags-syntax.json"></a>

```
{
  "Key" : String,
  "Value" : String
}
```

### YAML
<a name="aws-properties-resource-tags-syntax.yaml"></a>

```
Key: String
Value: String
```

## 속성
<a name="w2aac14d542c13c19"></a>

`Key`  <a name="cfn-resource-tags-key"></a>
태그의 키 이름입니다. 1 \$1 128자의 유니코드 문자로 이루어진 값을 지정할 수 있으며 `aws:`로 시작할 수 없습니다. 유니코드 문자 세트, 숫자, 공백, `_`, `.`, `:`, `/`, `=`, `+`, `@`, `-`, `"` 등의 문자를 무엇이든 사용할 수 있습니다.  
필수 항목 여부**: 예  
*유형*: 문자열

`Value`  <a name="cfn-resource-tags-value"></a>
태그의 값입니다. 1\$1256자 길이의 값을 지정할 수 있습니다. 유니코드 문자 세트, 숫자, 공백, `_`, `.`, `/`, `=`, `+`, `-` 등의 문자를 무엇이든 사용할 수 있습니다.  
필수 항목 여부**: 예  
*유형*: 문자열

## 예제
<a name="aws-properties-resource-tags-examples"></a>

이 예제에서는 `Tags` 속성을 보여줍니다. 지원 리소스의 `Properties` 단원에서 이 속성을 지정합니다. 리소스가 생성되면 파라미터를 사용해 `Environment` 태그가 동적으로 설정되고 `Owner` 태그는 정적으로 `MyName`으로 설정됩니다.

### JSON
<a name="aws-properties-resource-tags-example.json"></a>

```
 1. "Tags" : [
 2.    {
 3.       "Key" : "Environment",
 4.       "Value" : { "Ref": "Environment" }
 5.    },
 6.    {
 7.       "Key" : "Owner",
 8.       "Value" : "MyName"
 9.    }
10. ]
```

### YAML
<a name="aws-properties-resource-tags-example.yaml"></a>

```
1. Tags: 
2.   - Key: Environment
3.     Value: !Ref Environment
4.   - Key: Owner
5.     Value: MyName
```

## 다음 사항도 참조하세요.
<a name="w2aac14d542c13c23"></a>
+ *AWS CloudFormation 사용 설명서*의 [스택 옵션 구성](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html#configure-stack-options)
+ *AWS CloudFormation 사용 설명서*의 [AWS Management Console에서 CloudFormation 스택 데이터 및 리소스 보기](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html)