CloudFormation에서 Fn::GetAZs 함수로 간단하게 AvailabilityZone 설정해 보기

CloudFormation에서 Fn::GetAZs 함수로 간단하게 AvailabilityZone을 설정해 보는 방법을 정리해 봤습니다.
2023.02.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 CloudFormation에서 Fn::GetAZs 함수로 간단하게 AvailabilityZon을 설정해 보는 방법을 정리해 봤습니다.

CloudFormation에서 AvailabilityZone 설정하는 방법?

 AvailabilityZone1a:
    Description: AvailabilityZone for ap-northeast-1a
    Type: AWS::EC2::AvailabilityZone::Name
 AvailabilityZone1c:
    Description: AvailabilityZone for ap-northeast-1c
    Type: AWS::EC2::AvailabilityZone::Name

기본적으로 AWS에서는 다음과 같이 특정 파라미터 유형을 지원하기 때문에 스택 생성 시, AvailabilityZone을 선택할 수도 있습니다.

하지만 CloudFormation에서 파라미터를 이용하는 것이 아닌, 함수를 사용해서 AvailabilityZone을 선택하는 방법도 존재합니다.

Fn::GetAZs으로 AvailabilityZone 설정

Fn::GetAZs 내장 함수는 지정된 지역의 가용 영역을 알파벳순으로 나열하는 배열을 반환합니다.

예를 들어 도쿄 리전의 경우 배열에 다음과 같은 가용 영역이 저장되어 있습니다.

  • ap-northeast-1a
  • ap-northeast-1c
  • ap-northeast-1d
AvailabilityZone: 
      Fn::Select: 
        - 0
        - Fn::GetAZs: ""

코드는 다음과 같습니다.

0은 배열의 첫 번째 값을 의미하므로「ap-northeast-1a」가 됩니다.

PublicSubnet1a: 
    Type: "AWS::EC2::Subnet"
    Properties: 
      AvailabilityZone:
        Fn::Select: 
        - 0
        - Fn::GetAZs: ""
      CidrBlock: !Ref PublicSubnet1aParam
      VpcId: !Ref VPC 
      Tags: 
        - Key: Name
          Value: test-public-subnet

AvailabilityZone 항목을 필요로 하는 서브넷에서는 다음과 같이 사용할 수 있습니다.

스택을 생성하고 확인해 보면「ap-northeast-1a」으로 설정된 것을 확인할 수 있습니다.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !