{VPC}クロスリージョントランジットゲートウェイ

https://docs.aws.amazon.com/ja_jp/vpc/latest/tgw/transit-gateway-peering-scenario.html
https://docs.aws.amazon.com/ja_jp/vpc/latest/tgw/tgw-peering.html


前提: 
東京リージョンと大阪リージョンで以下を設定済み

サブネット作成
東京リージョン -> 172.31.48.0/24
大阪リージョン -> 10.0.1.0/24

作成したサブネットにEC2インスタンス作成
(セキュリティグループはping通信許可)

 

 

-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version


-- 1.2 jqインストール
sudo yum -y install jq

 

-- 2. Transit Gateway作成 [ 東京リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-1

aws ec2 describe-transit-gateways

 

aws ec2 create-transit-gateway \
--options '{
  "AmazonSideAsn": 64512,
  "AutoAcceptSharedAttachments": "enable",
  "DefaultRouteTableAssociation": "enable",
  "DefaultRouteTablePropagation": "enable",
  "VpnEcmpSupport": "enable",
  "DnsSupport": "enable",
  "MulticastSupport": "disable"
}' \
--tag-specifications '[
  {
    "ResourceType": "transit-gateway",
    "Tags": [ {"Key": "Name", "Value" : "tgw01" } ]
  }
]'

 


-- 3. Transit Gatewayアタッチメントの作成 [ 東京リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-1

aws ec2 describe-transit-gateway-attachments
aws ec2 describe-transit-gateway-vpc-attachments
aws ec2 describe-transit-gateway-peering-attachments
aws ec2 describe-transit-gateway-route-tables

aws ec2 create-transit-gateway-vpc-attachment \
--transit-gateway-id tgw-00000000000000000 \
--vpc-id vpc-11111111111111111 \
--subnet-ids subnet-22222222222222222 \
--options '{
  "DnsSupport": "enable",
  "Ipv6Support": "disable",
  "ApplianceModeSupport": "disable"
}' \
--tag-specifications '[
  {
    "ResourceType": "transit-gateway-attachment",
    "Tags": [ {"Key": "Name", "Value" : "tgwa01" } ]
  }
]'

 

-- 4. Transit Gateway作成 [ 大阪リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-3

aws ec2 describe-transit-gateways

 

aws ec2 create-transit-gateway \
--options '{
  "AmazonSideAsn": 64512,
  "AutoAcceptSharedAttachments": "enable",
  "DefaultRouteTableAssociation": "enable",
  "DefaultRouteTablePropagation": "enable",
  "VpnEcmpSupport": "enable",
  "DnsSupport": "enable",
  "MulticastSupport": "disable"
}' \
--tag-specifications '[
  {
    "ResourceType": "transit-gateway",
    "Tags": [ {"Key": "Name", "Value" : "tgw02" } ]
  }
]'

 

 

-- 5. Transit Gatewayアタッチメントの作成 [ 大阪リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-3

aws ec2 describe-transit-gateway-attachments
aws ec2 describe-transit-gateway-vpc-attachments
aws ec2 describe-transit-gateway-peering-attachments
aws ec2 describe-transit-gateway-route-tables


aws ec2 create-transit-gateway-vpc-attachment \
--transit-gateway-id tgw-33333333333333333 \
--vpc-id vpc-44444444444444444 \
--subnet-ids subnet-55555555555555555 \
--options '{
  "DnsSupport": "enable",
  "Ipv6Support": "disable",
  "ApplianceModeSupport": "disable"
}' \
--tag-specifications '[
  {
    "ResourceType": "transit-gateway-attachment",
    "Tags": [ {"Key": "Name", "Value" : "tgwa02" } ]
  }
]'

 


-- 6. Transit Gateway ピアリングアタッチメントの作成 [ 東京リージョンでの作業、大阪リージョンでの作業 ]

ピアリングアタッチメントをアクティブにするには、アクセプタ Transit Gateway の所有者がピアリングアタッチメントリクエストを受け入れる必要があります。
これは、両方の Transit Gateway が同じアカウントにある場合でも必要です。


export AWS_DEFAULT_REGION=ap-northeast-1

aws ec2 describe-transit-gateway-attachments
aws ec2 describe-transit-gateway-vpc-attachments
aws ec2 describe-transit-gateway-peering-attachments
aws ec2 describe-transit-gateway-route-tables


aws ec2 create-transit-gateway-peering-attachment \
--transit-gateway-id tgw-00000000000000000 \
--peer-transit-gateway-id tgw-33333333333333333 \
--peer-account-id 999999999999 \
--peer-region ap-northeast-3 \
--tag-specifications '[
  {
    "ResourceType": "transit-gateway-attachment",
    "Tags": [ {"Key": "Name", "Value" : "tgwpa01" } ]
  }
]'

export AWS_DEFAULT_REGION=ap-northeast-3

aws ec2 accept-transit-gateway-peering-attachment \
--transit-gateway-attachment-id tgw-attach-66666666666666666


-- 7. Transit Gatewayのルートテーブルに経路追加 [ 東京リージョン、大阪リージョンでの作業 ]

ピアリングされた Transit Gateway 間でトラフィックをルーティングするには、
Transit Gateway のピアリングアタッチメントをポイントする静的ルートを Transit Gateway のルートテーブルに追加する必要があります。


export AWS_DEFAULT_REGION=ap-northeast-1

aws ec2 create-transit-gateway-route \
--destination-cidr-block 10.0.1.0/24 \
--transit-gateway-route-table-id tgw-rtb-77777777777777777 \
--transit-gateway-attachment-id tgw-attach-66666666666666666

 


export AWS_DEFAULT_REGION=ap-northeast-3

aws ec2 create-transit-gateway-route \
--destination-cidr-block 172.31.48.0/24  \
--transit-gateway-route-table-id tgw-rtb-88888888888888888 \
--transit-gateway-attachment-id tgw-attach-66666666666666666

 


-- 8. サブネットのルートテーブルに経路追加 [ 東京リージョン、大阪リージョンでの作業 ]

大阪リージョン:
 172.31.48.0/24 -> TGW

 

東京リージョン:
 10.0.1.0/24 -> TGW

 

-- 9. 動作確認  [ 東京リージョンでの作業 ]

ping 10.0.1.150

 

-- 10. クリーンアップ


-- Transit Gateway ピアリングアタッチメントの削除  [ 東京リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-1

aws ec2 describe-transit-gateway-attachments
aws ec2 describe-transit-gateway-vpc-attachments
aws ec2 describe-transit-gateway-peering-attachments
aws ec2 describe-transit-gateway-route-tables


aws ec2 delete-transit-gateway-peering-attachment \
--transit-gateway-attachment-id tgw-attach-66666666666666666

 

-- Transit Gatewayアタッチメントの削除 [ 大阪リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-3

aws ec2 describe-transit-gateway-attachments
aws ec2 describe-transit-gateway-vpc-attachments
aws ec2 describe-transit-gateway-peering-attachments
aws ec2 describe-transit-gateway-route-tables

aws ec2 delete-transit-gateway-vpc-attachment \
--transit-gateway-attachment-id tgw-attach-aaaaaaaaaaaaaaaaa

 

-- Transit Gatewayの削除 [ 大阪リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-3

aws ec2 describe-transit-gateways

aws ec2 delete-transit-gateway \
--transit-gateway-id tgw-33333333333333333


-- Transit Gatewayアタッチメントの削除 [ 東京リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-1

aws ec2 describe-transit-gateway-attachments
aws ec2 describe-transit-gateway-vpc-attachments
aws ec2 describe-transit-gateway-peering-attachments
aws ec2 describe-transit-gateway-route-tables

aws ec2 delete-transit-gateway-vpc-attachment \
--transit-gateway-attachment-id tgw-attach-bbbbbbbbbbbbbbbbb

 

-- Transit Gatewayの削除 [ 東京リージョンでの作業 ]

export AWS_DEFAULT_REGION=ap-northeast-1

aws ec2 describe-transit-gateways

aws ec2 delete-transit-gateway \
--transit-gateway-id tgw-00000000000000000