コンテンツにスキップ

TransitGatewayAttachment

TransitGatewayAttachmentは、1つのVpcをTransitGatewayに接続するリソースです。

spec.transitGatewayspec.vpcで、接続するTransitGatewayとVpcを指定します。どちらも作成後に変更することができません。同じ組み合わせのアタッチメントを2つ作ることはできません。

associationとpropagation

spec.associationは、このVpcから届いたトラフィックの宛先を解決するTransitGatewayRouteTableです。1つだけ指定します。

spec.propagationsは、このVpcのSubnetを広報するTransitGatewayRouteTableの一覧です。0個でも複数でも構いません。

この2つを別のルートテーブルに向けると、経路を非対称にすることができます。たとえばハブ&スポーク構成では、スポーク側のアタッチメントをスポーク用ルートテーブルにassociationし、ハブ用ルートテーブルにpropagationします。スポーク用ルートテーブルにはハブのSubnetしか載らないため、スポーク同士は到達しません。

spec.associationspec.propagationsで参照するTransitGatewayRouteTableは、spec.transitGatewayと同じTransitGatewayに属している必要があります。

CIDRの重複

同じTransitGatewayRouteTableを共有するVpcの間では、SubnetのCIDRが重複していてはいけません。重複するアタッチメントを作成しようとするとwebhookで拒否されます。同じルートテーブル経由で到達し得るVpcのSubnetと重複するCIDRのSubnetを作成しようとした場合も同様に拒否されます。

status

status.prefixes[]は、このアタッチメントがspec.propagationsのルートテーブルへ広報しているSubnetの一覧です。cidrの昇順に並びます。

status.conditionsReadyは、TransitGatewayとVpc、参照先のルートテーブルがすべて存在して整合していることを表します。

削除

TransitGatewayAttachmentはいつでも削除できます。削除するとそのVpcのSubnetがルートテーブルから消えるため、そのVpc宛のトラフィックは宛先を解決できなくなり破棄されます。

削除したVpcのRouteTableにvia.type: transitGatewayのルートが残っている場合、そのRouteTableはReady=Falseになり、Vpc ... has no attachment to TransitGateway ...というメッセージを返します。