CloudFormation에서 Fn::GetAZs 함수로 간단하게 AvailabilityZone 설정해 보기
안녕하세요 클래스메소드 김재욱(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」으로 설정된 것을 확인할 수 있습니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.