Fn::Cidr - AWS CloudFormation

Fn::Cidr

내장 함수 Fn::Cidr은 CIDR 주소 블록의 어레이를 반환합니다. 반환된 CIDR 블록의 수는 count 파라미터에 따라 다릅니다.

선언

JSON

{ "Fn::Cidr" : [ipBlock, count, cidrBits]}

YAML

전체 함수 이름의 구문:

Fn::Cidr: - ipBlock - count - cidrBits

짧은 형식의 구문:

!Cidr [ ipBlock, count, cidrBits ]

파라미터

ipBlock

작은 CIDR 블록으로 분할되는 사용자 지정 CIDR 주소 블록입니다.

count

생성할 CIDR의 수입니다. 유효한 범위는 1~256입니다.

cidrBits

CIDR에 대한 서브넷 비트의 수입니다. 예를 들어 이 파라미터에 대한 값으로 "8"을 지정하면 "/24" 마스크의 CIDR이 생성됩니다.

참고

서브넷 비트는 서브넷 마스크의 역입니다. 해당 서브넷 비트에 대해 필요한 호스트 비트를 계산하려면 IPv4의 경우 32에서, IPv6의 경우 128에서 서브넷 비트를 뺍니다.

반환 값

CIDR 주소 블록의 어레이입니다.

기본 사용법

이 예제에서는 "/24" 마스크의 CIDR 내부에서 "/27" 서브넷 마스크의 CIDR 6개를 생성합니다.

JSON

{ "Fn::Cidr" : [ "192.168.0.0/24", "6", "5"] }

YAML

!Cidr [ "192.168.0.0/24", 6, 5 ]

IPv6 활성화 VPC 생성

이 예제 템플릿에서는 IPv6 활성화 서브넷을 생성합니다.

JSON

{ "Resources" : { "ExampleVpc" : { "Type" : "AWS::EC2::VPC", "Properties" : { "CidrBlock" : "10.0.0.0/16" } }, "IPv6CidrBlock" : { "Type" : "AWS::EC2::VPCCidrBlock", "Properties" : { "AmazonProvidedIpv6CidrBlock" : true, "VpcId" : { "Ref" : "ExampleVpc" } } }, "ExampleSubnet" : { "Type" : "AWS::EC2::Subnet", "DependsOn" : "IPv6CidrBlock", "Properties" : { "AssignIpv6AddressOnCreation" : true, "CidrBlock" : { "Fn::Select" : [ 0, { "Fn::Cidr" : [{ "Fn::GetAtt" : [ "ExampleVpc", "CidrBlock" ]}, 1, 8 ]}]}, "Ipv6CidrBlock" : { "Fn::Select" : [ 0, { "Fn::Cidr" : [{ "Fn::Select" : [ 0, { "Fn::GetAtt" : [ "ExampleVpc", "Ipv6CidrBlocks" ]}]}, 1, 64 ]}]}, "VpcId" : { "Ref" : "ExampleVpc" } } } } }

YAML

Resources: ExampleVpc: Type: AWS::EC2::VPC Properties: CidrBlock: "10.0.0.0/16" IPv6CidrBlock: Type: AWS::EC2::VPCCidrBlock Properties: AmazonProvidedIpv6CidrBlock: true VpcId: !Ref ExampleVpc ExampleSubnet: Type: AWS::EC2::Subnet DependsOn: IPv6CidrBlock Properties: AssignIpv6AddressOnCreation: true CidrBlock: !Select [ 0, !Cidr [ !GetAtt ExampleVpc.CidrBlock, 1, 8 ]] Ipv6CidrBlock: !Select [ 0, !Cidr [ !Select [ 0, !GetAtt ExampleVpc.Ipv6CidrBlocks], 1, 64 ]] VpcId: !Ref ExampleVpc

지원되는 함수

Fn::Cidr 함수에서 다음과 같은 함수를 사용할 수 있습니다.