このチュートリアルでは、Virtual Private Cloud(VPC)ネットワーク、Border Gateway Protocol(BGP)、バーチャル プライベート ネットワーク(VPN)、IPsec トンネルの基本コンセプトについて理解していることを前提としています。
Google Cloud には、高可用性の HA VPN サービスが用意されています。このサービスを使用すると、IPsec VPN 接続を介して、Google Cloudの外部(オンプレミスや AWS など)で実行されている環境に VPC ネットワークを接続できます。HA VPN は、Google のベスト プラクティスに基づいて構成した場合、99.99% のサービス可用性の SLA を実現します。詳細については、Cloud VPN サービスレベル契約(SLA)をご覧ください。
アーキテクチャの概要
このページで説明するアーキテクチャには、次のコンポーネントが含まれています。
- Cloud Router: 完全に分散されたフルマネージドの Google Cloudサービスを使用して、VPC ネットワークで BGP による動的ルーティングを実現できます。
- HA VPN ゲートウェイ: Google Cloudで実行される Google 管理の VPN ゲートウェイ。各 HA VPN ゲートウェイは、それぞれ独自の外部 IP アドレスを持つインターフェース 0 と 1 の 2 つのインターフェースがあるリージョン リソースです。
- VPN トンネル: 暗号化されたトラフィックが通過する HA VPN ゲートウェイから AWS 上のピア VPN ゲートウェイへの接続。
- ピア VPN ゲートウェイ: 2 つの AWS サイト間 VPN エンドポイント。AWS 仮想プライベート ゲートウェイまたは AWS トランジット ゲートウェイのいずれかから指定できます。詳細については、AWS サイト間 VPN とはをご覧ください。
各ピア VPN ゲートウェイ接続には、1 つのカスタマー ゲートウェイ(この場合はGoogle Cloud HA VPN インターフェース)を指すように事前構成された 2 つのトンネルがあります。この構成では、99.99% のサービス可用性 SLA を満たすトンネルの最小数は 4 です。
VPN トンネルを介したルーティング オプションと組み合わせる帯域幅は、AWS 側で使用されるサイト間 VPN オプションによって異なります。
トランジット ゲートウェイ: BGP 設定なしで AWS トランジット ゲートウェイを作成すると、ECMP はアクティブなトンネル間でトラフィックを均等に分散します。
複数の Google Virtual Private Cloud ネットワーク間で VPN 接続を使用するには、接続 VPC ネットワークを使用して、ハブアンドスポーク アーキテクチャを複数の VPC ネットワークでスケーリングする。
AWS トランジット ゲートウェイの詳細については、Amazon VPC トランジット ゲートウェイとはをご覧ください。
仮想プライベート ゲートウェイ: AWS 仮想プライベート ゲートウェイを使用する場合は、ゲートウェイのすべての接続で 1 つのトンネルのみが選択されます。複数のトンネルを使用するには、等価コスト マルチパス(ECMP)を利用できるように AWS トランジット ゲートウェイを使用します。
AWS での VPN ルート優先度の詳細については、サイト間 VPN ルーティング オプションをご覧ください。
AWS 仮想プライベート ゲートウェイの詳細については、サイト間 VPN 接続用のトンネル オプションをご覧ください。
次の図にアーキテクチャを示します。
目標
- Google Cloudで VPC ネットワークを作成します。
- Google Cloudで HA VPN ゲートウェイと Cloud Router を作成します。
- AWS でお客様のゲートウェイを作成します。
- AWS で動的ルーティングを使用して VPN 接続を作成します。
- Google Cloudで外部 VPN ゲートウェイと VPN トンネルを作成します。
- Google Cloud と AWS の VPC ネットワーク間の VPN 接続を検証し、テストします。
Terraform モジュールの例
gcp-to-aws-ha-vpn-terraform-module
モジュールを使用すると、 Google Cloud と AWS の間に HA VPN をプロビジョニングできます。
料金
このチュートリアルでは、 Google Cloudの課金対象コンポーネントを使用します。
Google Cloud コンポーネントの費用を見積もるには、Google Cloud 料金計算ツールを使用します。
このチュートリアルでは、以下に掲載したものをはじめとする Amazon Web Services の課金対象となるコンポーネントを使用します。
- AWS トランジット ゲートウェイ
- AWS サイト間 VPN
AWS コンポーネントの費用を見積もるには、AWS 料金計算ツールを使用してください。
始める前に
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
-
In the Google Cloud console, activate Cloud Shell.
-
ネットワーク コンポーネントの構成に必要な管理者ロールを付与されていることを確認します。
- ネットワーク管理者:
compute.networkAdmin
- セキュリティ管理者:
compute.securityAdmin
- Compute 管理者:
compute.admin
これらのロールの目的の詳細については、ネットワーク関連ジョブ機能の IAM のロールをご覧ください。
- ネットワーク管理者:
Google Cloudで HA VPN ゲートウェイと Cloud Router を作成する
このセクションでは、 Google Cloudで VPC ネットワーク、HA VPN ゲートウェイ、Cloud Router を作成します。
Cloud Shell で、作成または選択したGoogle Cloud プロジェクトで作業していることを確認します。
gcloud config set project YOUR_PROJECT_ID export PROJECT_ID=`gcloud config list --format="value(core.project)"`
YOUR_PROJECT_ID
は、Google Cloud プロジェクト ID に置き換えます。単一のサブネットを持つカスタム VPC ネットワークを作成するには、
gcloud compute networks create
コマンドを使用します。gcloud compute networks create NETWORK \ --subnet-mode SUBNET_MODE \ --bgp-routing-mode BGP_ROUTING_MODE
次のように置き換えます。
NETWORK
: ネットワークの名前SUBNET_MODE
: サブネット モードBGP_ROUTING_MODE
: BGP ルーティング モード
たとえば、次のコマンドは、単一のサブネットを持つ
gc-vpc
という名前のカスタム VPC ネットワークを作成します。gcloud compute networks create gc-vpc \ --subnet-mode custom \ --bgp-routing-mode global
テスト用 VM をホストするサブネットを 1 つ作成するには、
gcloud compute networks subnets create
コマンドを使用します。gcloud compute networks subnets create SUBNET_NAME \ --network NETWORK \ --region SUBNET_REGION \ --range IP_ADDRESS_RANGE
次のように置き換えます。
SUBNET_NAME
: サブネット名SUBNET_REGION
: サブネットを作成するリージョンIP_ADDRESS_RANGE
: サブネットの IP アドレス範囲たとえば、次のコマンドは、VPC ネットワーク
gc-vpc
にsubnet-east4
という名前のサブネットを作成します。
gcloud compute networks subnets create subnet-east4 \ --network gc-vpc \ --region us-east4 \ --range 10.1.1.0/24
HA VPN ゲートウェイを作成するには、
gcloud compute vpn-gateways create
コマンドを使用します。gcloud compute vpn-gateways create HA_VPN_GATEWAY_NAME \ --network NETWORK \ --region REGION
HA_VPN_GATEWAY_NAME
を、HA VPN ゲートウェイの名前に置き換えます。Cloud Router を作成するには、
gcloud compute routers create
コマンドを使用します。gcloud compute routers create ROUTER_NAME \ --region REGION \ --network NETWORK \ --asn GOOGLE_ASN \ --advertisement-mode custom \ --set-advertisement-groups all_subnets
次のように置き換えます。
ROUTER_NAME
: Cloud Router の名前GOOGLE_ASN
: 作成する Cloud Router のプライベート ASN(自律システム番号)同じリージョンおよびネットワークでまだピア ASN として使用していない64512-65534
または4200000000-4294967294
の範囲の任意のプライベート ASN を指定できます。
たとえば、次のコマンドは
cloud-router
という名前の Cloud Router を作成します。gcloud compute routers create cloud-router \ --region us-east4 \ --network gc-vpc \ --asn 65534 \ --advertisement-mode custom \ --set-advertisement-groups all_subnets
2 つのインターフェースを持つ VPN ゲートウェイを作成するには、外部 IP アドレスをメモします。これらのアドレスは、AWS 側で環境を設定するときに必要になります。
AWS でゲートウェイと VPN 接続を作成する
このセクションでは、カスタマー ゲートウェイ、ターゲット ゲートウェイ、動的ルーティングを使用する VPN 接続を作成します。
AWS コマンドを実行するには、AWS コマンドライン インターフェースを使用します。
次の AWS コマンドを使用して 2 つのカスタマー ゲートウェイを作成するには、
create-customer-gateway
AWS CLI コマンドを使用します。aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_0_IP_ADDRESS --bgp-asn GOOGLE_ASN aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_1_IP_ADDRESS --bgp-asn GOOGLE_ASN
INTERFACE_0_IP_ADDRESS
とINTERFACE_1_IP_ADDRESS
は、前のセクションの最後のステップで取得した外部 IP アドレスに置き換えます。ターゲット ゲートウェイを作成して Amazon VPC に接続する手順は次のとおりです。
ターゲット ゲートウェイは、仮想プライベート ゲートウェイまたはトランジット ゲートウェイです。詳細については、ターゲット ゲートウェイの作成をご覧ください。
仮想プライベート ゲートウェイ
create-vpn-gateway
AWS CLI コマンドを使用して、特定の AWS 側の ASN を持つ仮想プライベート ゲートウェイを作成します。aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn AWS_SIDE_ASN
AWS_SIDE_ASN
を AWS 側の ASN に置き換えます。このコマンドは、次の例のようになります。
aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn 65001
attach-vpn-gateway
AWS CLI コマンドを使用して、仮想プライベート ゲートウェイを VPC ネットワークに接続します。aws ec2 attach-vpn-gateway --vpn-gateway-id VPN_GATEWAY_ID --vpc-id VPC_ID
トランジット ゲートウェイ
create-transit-gateway
AWS CLI コマンドを使用して、トランジット ゲートウェイを作成します。aws ec2 create-transit-gateway --description TRANSIT_GATEWAY_DESCRIPTION \ --options=AmazonSideAsn=65001,AutoAcceptSharedAttachments=enable,DefaultRouteTableAssociation=enable,DefaultRouteTablePropagation=enable,VpnEcmpSupport=enable,DnsSupport=enable
TRANSIT_GATEWAY_DESCRIPTION
は、トランジット ゲートウェイの説明に置き換えます。create-transit-gateway-vpc-attachment
AWS CLI コマンドを使用して、VPC ネットワークをトランジット ゲートウェイに接続します。aws ec2 create-transit-gateway-vpc-attachment \ --transit-gateway-id TRANSIT_GATEWAY_ID \ --vpc-id VPC_ID \ --subnet-ids "SUBNET_ID"
次のように置き換えます。
TRANSIT_GATEWAY_ID
: トランジット ゲートウェイの IDVPC_ID
: VPC の IDSUBNET_ID
: 1 つ以上のサブネットの ID
動的ルーティングを使用して VPN 接続を作成するには、次の操作を行います。
動的ルーティングを使用して VPN 接続を作成する方法は、ターゲット ゲートウェイが仮想プライベート ゲートウェイまたはトランジット ゲートウェイのいずれであるかによって異なります。詳細については、VPN 接続を作成するをご覧ください。
仮想プライベート ゲートウェイ
仮想プライベート ゲートウェイとカスタマー ゲートウェイの間の動的ルーティングを使用して VPN 接続を作成し、VPN 接続にタグを適用します。
aws ec2 create-vpn-connection \ --type ipsec.1 \ --customer-gateway-id CUSTOMER_GATEWAY_1 \ --vpn-gateway-id VPN_GATEWAY_ID \ --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]' aws ec2 create-vpn-connection \ --type ipsec.1 \ --customer-gateway-id CUSTOMER_GATEWAY_2 \ --vpn-gateway-id VPN_GATEWAY_ID \ --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'
次のように置き換えます。
CUSTOMER_GATEWAY_1
: Google Cloud VPN ゲートウェイ、インターフェース 0CUSTOMER_GATEWAY_2
: Google Cloud VPN ゲートウェイ、インターフェース 1AWS_T1_IP
: 接続 1、トンネル 1 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T2_IP
: 接続 1、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T3_IP
: 接続 1、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T4_IP
: 接続 2、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスSHARED_SECRET_1
: 接続 1、トンネル 1 の事前共有キーSHARED_SECRET_2
: 接続 1、トンネル 2 の事前共有キーSHARED_SECRET_3
: 接続 2、トンネル 1 の事前共有キーSHARED_SECRET_4
: 接続 2、トンネル 2 の事前共有キー
トランジット ゲートウェイ
トランジット ゲートウェイとカスタマー ゲートウェイの間の動的ルーティングを使用する VPN 接続を作成します。
aws ec2 create-vpn-connection \ --type ipsec.1 \ --customer-gateway-id CUSTOMER_GATEWAY_1 \ --transit-gateway-id TRANSIT_GATEWAY_ID \ --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]' aws ec2 create-vpn-connection \ --type ipsec.1 \ --customer-gateway-id CUSTOMER_GATEWAY_2 \ --transit-gateway-id TRANSIT_GATEWAY_ID \ --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'
以下を置き換えます。
CUSTOMER_GATEWAY_1
: Google Cloud VPN ゲートウェイ、インターフェース 0CUSTOMER_GATEWAY_2
: Google Cloud VPN ゲートウェイ、インターフェース 1TRANSIT_GATEWAY_ID
: VPN 接続に関連付けられているトランジット ゲートウェイの IDAWS_T1_IP
: 接続 1、トンネル 1 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T2_IP
: 接続 1、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T3_IP
: 接続 1、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T4_IP
: 接続 2、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスSHARED_SECRET_1
: 接続 1、トンネル 1 の事前共有キーSHARED_SECRET_2
: 接続 1、トンネル 2 の事前共有キーSHARED_SECRET_3
: 接続 2、トンネル 1 の事前共有キーSHARED_SECRET_4
: 接続 2、トンネル 2 の事前共有キーCUSTOMER_GATEWAY_1
: Google Cloud VPN ゲートウェイ、インターフェース 0CUSTOMER_GATEWAY_2
: Google Cloud VPN ゲートウェイ、インターフェース 1TRANSIT_GATEWAY_ID
: VPN 接続に関連付けられているトランジット ゲートウェイの IDAWS_T1_IP
: 接続 1、トンネル 1 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T2_IP
: 接続 1、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T3_IP
: 接続 1、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスAWS_T4_IP
: 接続 2、トンネル 2 の仮想プライベート ゲートウェイの内部 IP アドレスSHARED_SECRET_1
: 接続 1、トンネル 1 の事前共有キーSHARED_SECRET_2
: 接続 1、トンネル 2 の事前共有キーSHARED_SECRET_3
: 接続 2、トンネル 1 の事前共有キーSHARED_SECRET_4
: 接続 2、トンネル 2 の事前共有キー
AWS は一部の CIDR 範囲を予約しているため、これらの範囲の値を内部 IP アドレス(
AWS_T1_IP
、AWS_T2_IP
、AWS_T3_IP
、AWS_T4_IP
)として使用することはできません。AWS が予約する CIDR ブロックについては、サイト間 VPN 接続のトンネル オプションをご覧ください。次のコマンドを使用して、 Google Cloud に 4 つのトンネルを作成します。
2 つの VPN 接続の構成ファイルをダウンロードします。
次の手順では、ダウンロードした構成ファイルの値を使用して、 Google Cloud側でリソースを作成して構成します。
Google Cloudで VPN トンネルと Cloud Router インターフェースを作成する
このセクションでは、前のセクションで作成した AWS VPN 接続の情報を使用して、 Google Cloudで外部 VPN ゲートウェイ、VPN トンネル、Cloud Router インターフェースを作成します。
AWS への Cloud VPN トンネルを構成する場合は、IKEv2 プロトコルを使用し、トンネルを確立できるように IKE 暗号セットを 1 つだけ選択する必要があります。たとえば、フェーズ 1 とフェーズ 2 の暗号化アルゴリズム、完全性アルゴリズム、Diffie-Hellman(DH)グループを 1 つずつ選択します。デフォルトの AWS 変換セットは、大きなセキュリティ アソシエーション(SA)ペイロードを作成します。これにより、IKE パケットの IP 断片化が発生する可能性があります。Cloud VPN は、断片化された IKE パケットをサポートしていません。
Cloud Shell で、AWS 外部 IP アドレス用の 4 つのインターフェースを持つ外部 VPN ゲートウェイを作成します。
外部 VPN ゲートウェイを作成する前に、AWS 外部 IP アドレスがダウンロードした構成ファイルの値と一致していることを確認します。外部 VPN ゲートウェイの作成後にこれらの IP アドレスを変更することはできません。アドレスが一致しない場合、HA VPN トンネル接続を確立できません。
gcloud compute external-vpn-gateways create PEER_GATEWAY_NAME --interfaces \ 0=AWS_GW_IP_1,1=AWS_GW_IP_2,2=AWS_GW_IP_3,3=AWS_GW_IP_4
次のように置き換えます。
AWS_GW_IP_1
: 接続 1、トンネル 1 の仮想プライベート ゲートウェイの外部 IP アドレスAWS_GW_IP_2
: 接続 1、トンネル 2 の仮想プライベート ゲートウェイの外部 IP アドレスAWS_GW_IP_3
: 接続 2、トンネル 1 の仮想プライベート ゲートウェイの外部 IP アドレスAWS_GW_IP_4
: 接続 2、トンネル 2 の仮想プライベート ゲートウェイの外部 IP アドレス
4 つの VPN トンネルを作成します。
トンネル 1:
gcloud compute vpn-tunnels create tunnel-1 \ --peer-external-gateway PEER_GATEWAY_NAME \ --peer-external-gateway-interface 0 \ --region REGION \ --ike-version 2 \ --shared-secret SHARED_SECRET_1 \ --router ROUTER_NAME \ --vpn-gateway HA_VPN_GATEWAY_NAME \ --interface 0
トンネル 2:
gcloud compute vpn-tunnels create tunnel-2 \ --peer-external-gateway PEER_GATEWAY_NAME \ --peer-external-gateway-interface 1 \ --region REGION \ --ike-version 2 \ --shared-secret SHARED_SECRET_2 \ --router ROUTER_NAME \ --vpn-gateway HA_VPN_GATEWAY_NAME \ --interface 0
トンネル 3:
gcloud compute vpn-tunnels create tunnel-3 \ --peer-external-gateway PEER_GATEWAY_NAME \ --peer-external-gateway-interface 2 \ --region REGION \ --ike-version 2 \ --shared-secret SHARED_SECRET_3 \ --router ROUTER_NAME \ --vpn-gateway HA_VPN_GATEWAY_NAME \ --interface 1
トンネル 4:
gcloud compute vpn-tunnels create tunnel-4 \ --peer-external-gateway PEER_GATEWAY_NAME \ --peer-external-gateway-interface 3 \ --region REGION \ --ike-version 2 \ --shared-secret SHARED_SECRET_4 \ --router ROUTER_NAME \ --vpn-gateway HA_VPN_GATEWAY_NAME \ --interface 1
次のように置き換えます。
PEER_GATEWAY_NAME
: 手順 1 で作成した外部ピア ゲートウェイの名前REGION
: トンネルを作成する Google Cloud リージョンSHARED_SECRET
: 事前共有キー(PSK)。これは、ピア ゲートウェイに作成するパートナー トンネル用の事前共有キーに対応する必要があります。強力な事前共有キーを生成するには、強力な事前共有キーを生成するをご覧ください。ROUTER_NAME
: Google Cloud で作成した Cloud Router ゲートウェイの名前。HA_VPN_GATEWAY_NAME
: Google Cloud で作成した HA VPN ゲートウェイの名前。
4 つの Cloud Router インターフェースを作成します。
次のコマンドで、各
GOOGLE_BGP_IP_TUNNEL
プレースホルダを、 Google Cloud 側のトンネルの内部 IP アドレスに置き換えます。AWS VPN 構成ファイルの値は、各トンネルのカスタマー ゲートウェイ アドレスとして表示されます。これらのアドレスはそれぞれ、169.254.0.0/16
ネットワーク範囲内の/30
CIDR 範囲内にある必要があります。Cloud Router インターフェース 1:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name int-1 \ --vpn-tunnel tunnel-1 \ --ip-address GOOGLE_BGP_IP_TUNNEL_1 \ --mask-length 30 \ --region REGION
Cloud Router インターフェース 2:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name int-2 \ --vpn-tunnel tunnel-2 \ --ip-address GOOGLE_BGP_IP_TUNNEL_2 \ --mask-length 30 \ --region REGION
Cloud Router インターフェース 3:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name int-3 \ --vpn-tunnel tunnel-3 \ --ip-address GOOGLE_BGP_IP_TUNNEL_3 \ --mask-length 30 \ --region REGION
Cloud Router インターフェース 4:
gcloud compute routers add-interface ROUTER_NAME \ --interface-name int-4 \ --vpn-tunnel tunnel-4 \ --ip-address GOOGLE_BGP_IP_TUNNEL_4 \ --mask-length 30 \ --region REGION
BGP ピアを追加します。
次のコマンドで、
PEER_ASN
を BGP セッションの AWS 側の ASN に置き換えます。AWS 接続 1、トンネル 1:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name aws-conn1-tunn1 \ --peer-asn PEER_ASN \ --interface int-1 \ --peer-ip-address AWS_T1_IP \ --region REGION
AWS 接続 1、トンネル 2:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name aws-conn1-tunn2 \ --peer-asn PEER_ASN \ --interface int-2 \ --peer-ip-address AWS_T2_IP \ --region REGION
AWS 接続 2、トンネル 1:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name aws-conn2-tunn1 \ --peer-asn PEER_ASN \ --interface int-3 \ --peer-ip-address AWS_T3_IP \ --region REGION
AWS 接続 2、トンネル 2:
gcloud compute routers add-bgp-peer ROUTER_NAME \ --peer-name aws-conn2-tunn2 \ --peer-asn PEER_ASN \ --interface int-4 \ --peer-ip-address AWS_T4_IP \ --region REGION
構成を確認する
Cloud Shell で、Cloud Router のステータスを確認します。
gcloud compute routers get-status ROUTER_NAME \ --region REGION \ --format='flattened(result.bgpPeerStatus[].name, result.bgpPeerStatus[].ipAddress, result.bgpPeerStatus[].peerIpAddress)'
出力は次のようになります。
result.bgpPeerStatus[].peerIpAddress)' result.bgpPeerStatus[0].ipAddress: 169.254.171.18 result.bgpPeerStatus[0].name: aws-conn1-tunn1 result.bgpPeerStatus[0].peerIpAddress: 169.254.171.17 result.bgpPeerStatus[1].ipAddress: 169.254.156.154 result.bgpPeerStatus[1].name: aws-conn1-tunn2 result.bgpPeerStatus[1].peerIpAddress: 169.254.156.153 result.bgpPeerStatus[2].ipAddress: 169.254.123.38 result.bgpPeerStatus[2].name: aws-conn2-tunn1 result.bgpPeerStatus[2].peerIpAddress: 169.254.123.37 result.bgpPeerStatus[3].ipAddress: 169.254.48.186 result.bgpPeerStatus[3].name: aws-conn2-tunn2 result.bgpPeerStatus[3].peerIpAddress: 169.254.48.185
すべてのトンネルを一覧表示します。
gcloud compute vpn-tunnels list
出力は次のようになります。
NAME REGION GATEWAY PEER_ADDRESS tunnel-1 us-east4 ha-vpn-gw 34.205.x.x tunnel-2 us-east4 ha-vpn-gw 52.203.x.x tunnel-3 us-east4 ha-vpn-gw 3.208.x.x tunnel-4 us-east4 ha-vpn-gw 52.204.x.x
トンネルのステータスを確認します。
gcloud compute vpn-tunnels describe tunnel-1 \ --region REGION \ --format='flattened(status,detailedStatus)'
出力は次のようになります。
detailed_status: Tunnel is up and running. status: ESTABLISHED
Cloud Router によって学習する動的ルートを一覧表示します。
gcloud compute routers get-status ROUTER_NAME \ --region REGION \ --format="flattened(result.bestRoutes)"
出力は次のようになります。
result.bestRoutes[0].creationTimestamp: 2021-01-19T20:42:07.366-08:00 result.bestRoutes[0].destRange: 10.2.2.0/24 result.bestRoutes[0].kind: compute#route result.bestRoutes[0].nextHopIp: 169.254.171.17 result.bestRoutes[0].priority: 100 result.bestRoutes[1].creationTimestamp: 2021-01-19T20:42:07.366-08:00 result.bestRoutes[1].destRange: 10.2.2.0/24 result.bestRoutes[1].kind: compute#route result.bestRoutes[1].nextHopIp: 169.254.156.153 result.bestRoutes[1].priority: 100 result.bestRoutes[2].creationTimestamp: 2021-01-19T20:56:26.588-08:00 result.bestRoutes[2].destRange: 10.2.2.0/24 result.bestRoutes[2].kind: compute#route result.bestRoutes[2].nextHopIp: 169.254.123.37 result.bestRoutes[2].priority: 100 result.bestRoutes[3].creationTimestamp: 2021-01-19T20:56:26.588-08:00 result.bestRoutes[3].destRange: 10.2.2.0/24 result.bestRoutes[3].kind: compute#route result.bestRoutes[3].nextHopIp: 169.254.48.185 result.bestRoutes[3].priority: 100
VPN 接続をテストする
ping リクエストをテストするため、トンネルの両側にテスト VM を作成します。
ICMP トラフィックを許可するようにVPC ファイアウォール ルールを設定していることを確認してください。
Compute Engine VM の作成手順については、Compute Engine インスタンスの作成と開始をご覧ください。
AWS で EC2 インスタンスを作成する手順については、Amazon EC2 インスタンスを起動するをご覧ください。
ping
コマンドを使用して接続をテストします。ping
テストが失敗した場合は、 Google Cloud と AWS Site-to-Site VPN ログでログを表示します。ログのエラー メッセージは、問題の特定に役立ちます。VPN 接続に関する問題のトラブルシューティング方法については、次のリソースをご覧ください。
iperf を使用して、テストマシン間の帯域幅を測定します。
サーバー側:
iperf3 -s
クライアント側:
iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS
クリーンアップ
このチュートリアルで作成した Google Cloud と AWS のリソースを削除します。
Google Cloud プロジェクトを削除する
このチュートリアルで使用したリソースについて Google Cloud アカウントに課金されないようにするには、プロジェクトを削除します。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
AWS リソースを削除する
次のステップ
- Google Cloud VPN の詳細を確認する。
- VPC 設計のためのベスト プラクティスとリファレンス アーキテクチャの詳細を確認する。