AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

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」を持つ 6 つの CIDR を作成します。

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 関数で以下の関数を使用できます。