Google Cloud と AWS 間の HA VPN 接続を作成する

このチュートリアルでは、2 つのクラウド プラットフォームで VPC ネットワーク間の直接通信を実現するために、Google Cloud と Amazon Web Services(AWS)間で高可用性の VPN 接続を作成する方法について説明します。

このチュートリアルでは、Virtual Private Cloud(VPC)ネットワーク、Border Gateway Protocol(BGP)、バーチャル プライベート ネットワーク(VPN)、IPsec トンネルの基本コンセプトについて理解していることを前提としています。

Google Cloud には、IPsec VPN 接続を介して VPC ネットワークを Google Cloud の外部(オンプレミスや AWS など)で実行されている環境に接続できる高可用性の HA VPN サービスが用意されています。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 オプションによって異なります。

次の図にアーキテクチャを示します。

アーキテクチャの概要。

目標

  • 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 料金計算ツールを使用してください。

始める前に

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Compute Engine API.

    Enable the API

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  5. ネットワーク コンポーネントの構成に必要な管理者ロールを付与されていることを確認します。

    • ネットワーク管理者: compute.networkAdmin
    • セキュリティ管理者: compute.securityAdmin
    • Compute 管理者: compute.admin

    これらのロールの目的の詳細については、ネットワーク関連ジョブ機能の IAM のロールをご覧ください。

Google Cloud で HA VPN ゲートウェイと Cloud Router を作成する

このセクションでは、Google Cloud で VPC ネットワーク、HA VPN ゲートウェイ、Cloud Router を作成します。

  1. 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 に置き換えます。

  2. 単一のサブネットを持つカスタム VPC ネットワークを作成するには、gcloud compute networks create コマンドを使用します。

    gcloud compute networks create NETWORK \
        --subnet-mode SUBNET_MODE \
        --bgp-routing-mode BGP_ROUTING_MODE

    次のように置き換えます。

    たとえば、次のコマンドは、単一のサブネットを持つ gc-vpc という名前のカスタム VPC ネットワークを作成します。

    gcloud compute networks create gc-vpc \
        --subnet-mode custom \
        --bgp-routing-mode global
    
  3. テスト用 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-vpcsubnet-east4 という名前のサブネットを作成します。

    gcloud compute networks subnets create subnet-east4  \
        --network gc-vpc \
        --region us-east4 \
        --range 10.1.1.0/24
    
  4. 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 ゲートウェイの名前に置き換えます。

  5. 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 コマンドライン インターフェースを使用します。

  1. 次の 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_ADDRESSINTERFACE_1_IP_ADDRESS は、前のセクションの最後のステップで取得した外部 IP アドレスに置き換えます。

  2. ターゲット ゲートウェイを作成して Amazon VPC に接続する手順は次のとおりです。

    ターゲット ゲートウェイは、仮想プライベート ゲートウェイまたはトランジット ゲートウェイです。詳細については、ターゲット ゲートウェイの作成をご覧ください。

    仮想プライベート ゲートウェイ

    1. 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
      
    2. attach-vpn-gateway AWS CLI コマンドを使用して、仮想プライベート ゲートウェイを VPC ネットワークに接続します。

      aws ec2 attach-vpn-gateway --vpn-gateway-id VPN_GATEWAY_ID --vpc-id VPC_ID

    トランジット ゲートウェイ

    1. 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 は、トランジット ゲートウェイの説明に置き換えます。

    2. 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: トランジット ゲートウェイの ID
      • VPC_ID: VPC の ID
      • SUBNET_ID: 1 つ以上のサブネットの ID
  3. 動的ルーティングを使用して 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 ゲートウェイ、インターフェース 0
    • CUSTOMER_GATEWAY_2: Google Cloud VPN ゲートウェイ、インターフェース 1
    • AWS_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 ゲートウェイ、インターフェース 0
    • CUSTOMER_GATEWAY_2: Google Cloud VPN ゲートウェイ、インターフェース 1
    • TRANSIT_GATEWAY_ID: VPN 接続に関連付けられているトランジット ゲートウェイの ID
    • AWS_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 ゲートウェイ、インターフェース 0
    • CUSTOMER_GATEWAY_2: Google Cloud VPN ゲートウェイ、インターフェース 1
    • TRANSIT_GATEWAY_ID: VPN 接続に関連付けられているトランジット ゲートウェイの ID
    • AWS_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_IPAWS_T2_IPAWS_T3_IPAWS_T4_IP)として使用することはできません。AWS が予約する CIDR ブロックについては、サイト間 VPN 接続のトンネル オプションをご覧ください。

    次のコマンドを使用して、Google Cloud への 4 つのトンネルを作成します。

  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 パケットをサポートしていません。

  1. 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 アドレス
  2. 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

      次のように置き換えます。

  3. 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
  4. 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

構成を確認する

  1. 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
    
  2. すべてのトンネルを一覧表示します。

    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
    
  3. トンネルのステータスを確認します。

    gcloud compute vpn-tunnels describe tunnel-1 \
         --region REGION \
         --format='flattened(status,detailedStatus)'

    出力は次のようになります。

    detailed_status: Tunnel is up and running.
    status:          ESTABLISHED
    
  4. 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 接続をテストする

  1. ping リクエストをテストするため、トンネルの両側にテスト VM を作成します。

    ICMP トラフィックを許可するようにVPC ファイアウォール ルールを設定していることを確認してください。

  2. ping コマンドを使用して接続をテストします。

    1. ping テストが失敗した場合は、Google Cloud のログと AWS サイトツーサイト VPN ログを確認します。ログのエラー メッセージは、問題の特定に役立ちます。VPN 接続に関する問題のトラブルシューティング方法については、次のリソースをご覧ください。
  3. iperf を使用して、テストマシン間の帯域幅を測定します。

    • サーバー側:

      iperf3 -s
    • クライアント側:

      iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS

クリーンアップ

このチュートリアルで作成した Google Cloud と AWS のリソースを削除します。

Google Cloud プロジェクトの削除

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されることを回避するには、プロジェクトを削除します。

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

AWS リソースを削除する

  1. サイト間 VPN 接続を削除する
  2. トランジット ゲートウェイを削除する
  3. Amazon EC2 インスタンスを終了する

次のステップ