AWS Site-to-Site VPNでGoogle Cloudと接続する。
はじめに
今回はAWS Site-to-Site VPNを構築します。
よくAWSとオンプレミスネットワークをプライベート接続する際に使用されるサービスですが、
AWSの対向をGoogle Cloudとしマルチクラウド間をVPNで接続します。
本記事のゴールとしてAWSとGoogle Cloud(以下GC)をVPN接続しEC2インスタンスとCloud ComputeがプライべートIPアドレスで通信できるのを確認します。
AWSカスタマーゲートウェイの対向は仮想プライベートゲートウェイとします。
AWS Site-to-Site VPNとは
AWSとローカルネットワークを通信するための接続を作成できるサービスを指します。
IPsec(インターネットプロトコルセキュリティ)接続をサポート。
AWSとローカルを接続する際にAWSに接続する物理的なデバイス等をカスタマーゲートウェイデバイスと呼びますが、
今回はGCのCloud RouterがCGWに該当します。
構築
以下の手順で構築していきます。
- GCでVPCとサブネットを構築する
- GCでVPNゲートウェイとCloud Routerを作成する
- AWSでVPCを構築しプライベートサブネットを作成する
- AWSでCGW、仮想プライベートゲートウェイ(以下VGW)、VPN接続を作成する
- GCでピアVPNゲートウェイ、VPNトンネルを作成する
- BGPセッションを構築する
参考
設計
Google Cloud
- サブネット1:
10.100.0.0/24
,asia-northeast1
- サブネット2:
10.100.1.0/24
,asia-northeast1
AWS
- VPC:
10.0.0.0/16
,ap-northeast-1
- サブネット1:
10.0.128.0/20
,ap-northeast-1a
- サブネット2:
10.0.144.0/20
,ap-northeast-1c
[GC]VPC・サブネットの構築
VPCネットワーク→VPCネットワーク→VPCネットワークを作成
サブネット作成モードをカスタムにしてサブネットを作成
2つ目以降のサブネットはサブネットを追加から作成
ファイアウォールルールでallow-icmpとallow-sshにチェックを入れる
[GC]VPNゲートウェイの作成
ネットワーク接続→VPN→VPNの作成orVPNゲートウェイを作成
(VPNと検索バーに入力してアクセスするのが早い)
VPNのオプションは高可用性(HA)VPNを選択。
ネットワークで先ほど作成したVPCを選択、
リージョンはサブネットと揃えるのが望ましい。
[GC]Cloud Routerの作成
ネットワーク接続→Cloud Router→Cloud Routerタブ→Create router
作成したVPCをネットワークに選択
Cloud RouterのASN
は64512-65534
または4200000000-4294967294
の範囲の任意のプライベートASNを指定。
アドバタイズされたルートのカスタムルートの作成にチェックを入れる。
Cloud Routerに表示されるすべてのサブネットにアドバタイズするにチェックを入れる。
[AWS]VPC・サブネットの作成
アジアパシフィック(東京)リージョンで構築
VPC→VPCを作成
VPCなどでサブネットも一括作成、プライベートサブネットのみ作成。
[AWS]CGWの作成
VPC→カスタマーゲートウェイ→カスタマーゲートウェイを作成
BGP ASNはGC側で設定した値と同じ値を設定。
IPアドレスにはVPNゲートウェイに割り当てられたインターフェースIPを入力
上記手順でCGWを2つ作成する。
[AWS]VGWの作成
VPC→仮想プライベートゲートウェイ→仮想プライベートゲートウェイを作成
自律システム番号 (ASN)でカスタム ASNを選択し
Cloud Routerとは異なるASNを指定
[AWS]VPN接続の作成
VPC→Site-to-Site VPN 接続→VPN 接続を作成する
仮想プライベートゲートウェイに[AWS]VGWの作成で構築したVGWを指定
カスタマーゲートウェイ IDに[AWS]CGWの作成で構築したCGWを指定
上記手順でVPN接続を2つ(CGW分)作成する
作成後、それぞれのVPN接続を選択し[設定をダウンロードする]からテキストをダウンロード
IKEバージョンはGCとAWSで揃える事
ここでikev1を選ぶ場合はこの後GC側でもikev1で構築する必要がある
[GC]ピアVPNゲートウェイ・VPNトンネルの作成
VPNゲートウェイ作成画面を残していた場合はピアVPNゲートウェイの名前から新しいピアVPNゲートウェイを作成する
キャンセルしていた場合は、ネットワーク接続→VPN→ピアVPNゲートウェイ→ピアVPNゲートウェイの作成
インターフェースで4つのインターフェースを選択
AWSでダウンロードした設定ファイルの中になるOutside IP AddressesのVirtual Private Gatewayを設定
作成したピアVPNゲートウェイを選択
高可用性の項目でVPNトンネルを4つ作成する。を選択
クラウドルーターで作成したCloud Routerを選択
以下VPNトンネルをそれぞれ作成する。
AWSでDLした設定ファイルにはIPsec Tunnel #1のようにトンネル毎の設定が記載されている
GC コンソール | AWS設定ファイル(Outside) |
---|---|
関連付けられているCloud VPNゲートウェイインターフェース | Customer Gateway |
関連付けられているピアVPNゲートウェイインターフェース | Virtual Private Gateway |
IKE バージョン | IKE version |
IKE 事前共有キー | Pre-Shared Key |
[GC]BGPセッションの構成
トンネル作成後、Cloud VPN トンネルタブから各トンネルに対してBGPセッションの設定を入れる
GC コンソール | AWS設定ファイル(Inside IP Addresses) |
---|---|
Cloud RouterのBGP IPv4アドレス | Customer Gateway |
BGP ピア IPv4アドレス | Virtual Private Gateway |
確認
全ての構築・設定が完了するとGC側でVPNトンネルのBGPが確立される
AWS側ではVPN接続の状態が利用可能になる
疎通確認
GCにVMインスタンス、AWSにEC2インスタンスを構築しpingによる疎通確認を行う。
それぞれの構築手順は省略(EC2側でGCサブネットからicmpを許可すること)
また、EC2をデプロイしたサブネットのルートテーブルでGC宛ての通信をVGWにルーティングするようにルートテーブルを修正する
それぞれ起動を確認したらVMインスタンスにCloudShellからSSH接続してpingを飛ばす
(EC2側にSSH接続したい場合は以下を参照)
プライベートIPでping疎通が取れている
パブリックからだとアクセスできない
おわり
今回はAWSのSite-to-Site VPNでAWSとGCをプライベートに接続しました。
自宅でルーターの設定を必要とせずクラウド間でVPN構築を試すことが可能です。
今後は、GCをオンプレミスに見たてたAWSとオンプレミス間の名前解決構築をしたいと考えています。
それでは、最後までお読みいただきありがとうございました。
Discussion