

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

# `Fn::GetAZs`
<a name="intrinsic-function-reference-getavailabilityzones"></a>

`Fn::GetAZs` 내장 함수는 지정된 리전의 가용 영역을 알파벳순으로 나열하는 배열을 반환합니다. 고객이 다른 가용 영역에 액세스할 수 있으므로 템플릿 작성자는 `Fn::GetAZs` 내장 함수를 사용하여 호출하는 사용자의 액세스 권한에 따라 조정되는 템플릿을 작성할 수 있습니다. 그러면 지정된 리전에 대한 전체 가용 영역 목록을 하드 코딩할 필요가 없습니다.

**중요**  
`Fn::GetAZs` 함수는 기본 서브넷을 포함하는 가용 영역만 반환합니다. 기본 서브넷을 포함하는 가용 영역이 없을 경우 모든 가용 영역이 반환됩니다.  
`describe-availability-zones` AWS CLI 명령의 응답과 마찬가지로 `Fn::GetAZs` 함수에서 반환되는 결과의 순서는 보장되지 않으며 새 가용 영역이 추가되면 변경될 수 있습니다.

IAM 권한

`Fn::GetAZs` 함수를 사용하기 위해 필요한 권한은 Amazon EC2 인스턴스를 시작하는 플랫폼에 따라 다릅니다. 두 플랫폼 모두 Amazon EC2 `DescribeAvailabilityZones` 및 `DescribeAccountAttributes` 작업에 대한 권한이 필요합니다. EC2-VPC의 경우 Amazon EC2 `DescribeSubnets` 작업에 대한 권한도 필요합니다.

## 선언
<a name="intrinsic-function-reference-getazs-declaration"></a>

### JSON
<a name="intrinsic-function-reference-getazs-syntax.json"></a>

```
{ "Fn::GetAZs" : "{{리전}}" }
```

### YAML
<a name="intrinsic-function-reference-getazs-syntax.yaml"></a>

전체 함수 이름의 구문:

```
Fn::GetAZs: {{리전}}
```

짧은 형식의 구문:

```
!GetAZs {{리전}}
```

## 파라미터
<a name="intrinsic-function-reference-getazs-parameters"></a>

리전  <a name="region"></a>
가용 영역을 가져올 리전의 이름입니다.  
`AWS::Region` 가상 파라미터를 사용하여 스택이 생성되는 리전을 지정할 수 있습니다. 빈 문자열을 지정하면 `AWS::Region`을 지정하는 것과 같습니다.

## 반환 값
<a name="intrinsic-function-reference-getazs-return-value"></a>

리전에 대한 가용 영역 목록입니다.

## 예제
<a name="intrinsic-function-reference-getazs-examples"></a>

### 리전 평가
<a name="intrinsic-function-reference-getazs-examples-evaluate-region"></a>

이 예에서 CloudFormation은 사용자가 `us-east-1` 리전에 스택을 생성한 것으로 가정하고 `Fn::GetAZs`를 다음 배열로 평가합니다.

`[ "us-east-1a", "us-east-1b", "us-east-1c", "us-east-1d", "us-east-1e" ]`

#### JSON
<a name="intrinsic-function-reference-getazs-example1.json"></a>

```
1. { "Fn::GetAZs" : "" }
2. { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }
3. { "Fn::GetAZs" : "us-east-1" }
```

#### YAML
<a name="intrinsic-function-reference-getazs-example1.yaml"></a>

```
1. Fn::GetAZs: ""
2. Fn::GetAZs:
3.   Ref: "AWS::Region"
4. Fn::GetAZs: us-east-1
```

 

### 서브넷의 가용 영역 지정
<a name="intrinsic-function-reference-getazs-examples-subnet-az"></a>

다음 예에서는 `Fn::GetAZs`를 사용하여 서브넷의 가용 영역을 지정합니다.

#### JSON
<a name="intrinsic-function-reference-getazs-example.json"></a>

```
"mySubnet" : {
  "Type" : "AWS::EC2::Subnet",
  "Properties" : {
    "VpcId" : { 
      "Ref" : "VPC"   
    },
    "CidrBlock" : "10.0.0.0/24",
    "AvailabilityZone" : {
      "Fn::Select" : [ 
        0, 
        { 
          "Fn::GetAZs" : "" 
        } 
      ]
    }
  }
}
```

#### YAML
<a name="intrinsic-function-reference-getazs-example.yaml"></a>

```
mySubnet: 
  Type: AWS::EC2::Subnet
  Properties: 
    VpcId: 
      !Ref VPC
    CidrBlock: 10.0.0.0/24
    AvailabilityZone: 
      Fn::Select: 
        - 0
        - Fn::GetAZs: ""
```

 

### 짧은 형식의 YAML을 가진 중첩 함수
<a name="intrinsic-function-reference-getazs-examples-nested-functions"></a>

다음 예제는 짧은 형식의 YAML을 사용하여 중첩 내장 함수를 사용하는 데 유효한 패턴을 보여 줍니다. 짧은 형식 함수를 연속적으로 중첩할 수 없기 때문에 `!GetAZs !Ref` 같은 패턴은 유효하지 않습니다.

#### YAML
<a name="intrinsic-function-reference-getavailabilityzones-example3.yaml"></a>

```
1. AvailabilityZone: !Select
2.   - 0
3.   - !GetAZs
4.     Ref: 'AWS::Region'
```

#### YAML
<a name="intrinsic-function-reference-getavailabilityzones-example4.yaml"></a>

```
1. AvailabilityZone: !Select
2.   - 0
3.   - Fn::GetAZs: !Ref 'AWS::Region'
```

## 지원되는 함수
<a name="intrinsic-function-reference-getazs-supported-functions"></a>

`Ref` 함수 내에서 `Fn::GetAZs` 함수를 사용할 수 있습니다.