안녕하세요 클래스메소드 김재욱(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)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !