スキップしてコンテンツを表示

AWS CDKにおいて、デュアルスタックのVPC内にIPv4アドレスのみを持ったサブネットを作成するための方法

0

AWS CDKにおいて、以下のように書くことで、デュアルスタックのVPCを作成することができます。

from aws_cdk import aws_ec2 as ec2

# Stack内において
vpc = ec2.Vpc(
    self,
    "Vpc",
    ip_addresses="10.0.0.0/16",
    default_instance_tenancy=ec2.DefaultInstanceTenancy.DEFAULT,
    enable_dns_hostnames=True,
    enable_dns_support=True,
    gateway_endpoints={
        "S3": {
            "service": ec2.GatewayVpcEndpointAwsService.S3,
        },
    },
    ip_protocol=ec2.IpProtocol.DUAL_STACK,
    max_azs=6,
    subnet_configuration=[
        ec2.SubnetConfiguration(
            name="Public",
            subnet_type=ec2.SubnetType.PUBLIC,
            ipv6_assign_address_on_creation=True,
            map_public_ip_on_launch=True,
       ),
       ec2.SubnetConfiguration(
           name="Private",
           subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS,
           ipv6_assign_address_on_creation=True,
       ),
       ec2.SubnetConfiguration(
           name="Isolated",
           subnet_type=ec2.SubnetType.PRIVATE_ISOLATED,
           ipv6_assign_address_on_creation=False,
        ),
    ],
)

ここで、私はIsolatedのSubnetに対して、IPv6アドレスブロックの割り当てをしたくありません。この時、どのような設定を行う必要がありますでしょうか?

2回答
0
承認された回答

結局、以下のようにL1からIPv6ブロックを削除することで対応しました ただし、この方法の場合、L2ではIPv6ブロックの割り当てが残ったままなので、参照により不具合が発生することがありえると考えています 正しい対処法がわかるようでしたら教えていただけますと幸いです。

from typing import cast
for isolated_subnet in vpc.isolated_subnets:
    subnet = cast(ec2.Subnet, isolated_subnet)
    cfn_subnet = cast(ec2.CfnSubnet, subnet.node.default_child)
    cfn_subnet.ipv6_cidr_block = None
回答済み 4ヶ月前
0

デュアルスタックVPC内でIPv4アドレスのみを持つサブネットを作成するには、ipv6_assign_address_on_creation=False を設定するだけで十分です。これはあなたのコード例の Isolated サブネット設定で既に行われています。

AWS CDKでは、ipv6_assign_address_on_creation=False を設定することで、そのサブネットに対してIPv6アドレスが自動的に割り当てられなくなります。デュアルスタックVPCを作成する際、VPC自体はIPv4とIPv6の両方のCIDRブロックを持ちますが、各サブネットでIPv6を使用するかどうかは個別に制御できます。

あなたの現在のコード設定では、IsolatedサブネットはIPv4アドレスのみを使用し、IPv6アドレスは割り当てられません。Public サブネットと Private サブネットは ipv6_assign_address_on_creation=True と設定されているため、IPv6アドレスが割り当てられます。

この設定で、Isolated サブネットはデュアルスタックVPC内でIPv4のみのサブネットとして機能します。
Sources
Create a VPC - Amazon Virtual Private Cloud
Example dual-stack VPC configuration - Amazon Virtual Private Cloud

回答済み 4ヶ月前
  • この方法では、Amazon EC2インスタンス起動時に自動的にIPv6アドレスが割り当てられることはありません。しかしながら、IPv6アドレスのブロックは依然としてこのサブネットに割り当てが行われます。 このため、私の要求を実現することができません。

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

関連するコンテンツ