Google Cloud (GCP)でVPNを構築してAWS、Azureと通信する方法をご紹介!
- AWS
- Azure
- Cloud
- VPN
今回、Google Cloud (GCP)を用いて他社のクラウドとのVPN接続を構築してみました。
構築するにあたり、設定の手順や注意するポイントをまとめましたので、Google Cloud (GCP)を利用されている方でこれからVPNを導入する予定がある方は、ぜひご覧いただければ幸いです。
目次
1.用語解説
1-1. VPNとは?
VPNとは、Virtual Private Networkの略称で、ある拠点とある拠点の間を仮想的に閉域接続をすることができる技術です。通常、異なるネットワークにある機器同士はグローバルIPアドレスを付与していないと通信ができませんが、VPN接続された拠点同士はプライベートIPアドレスを用いて機器間の通信が可能となります。
閉域接続することのメリットとして、通信の漏洩を防ぐことができます。今回利用する方式はインターネットVPNと呼ばれる方式となりIPsecという暗号化技術、認証技術を用います。
パブリッククラウドサービス(今回であればGoogle Cloud (GCP))のインターネットへ接続する境界のルータに設定を行うことで、VPN接続が可能となります。
さらに詳しく知りたい方は以下の記事がオススメです。
専用線と VPN の違いとは?違いを理解して会社のセキュリティを強化しよう!
1-2. Cloud VPNとは?
Cloud VPNとは、Google Cloud (GCP)で利用ができるサービスで、他拠点のルータと接続しVPN接続が可能となります。CUIでも操作可能ですが、ブラウザを用いてGUI上で簡単に設定も可能です。Googleの公式サイトにもサービスの説明があるので、こちらもご覧ください。
https://cloud.google.com/network-connectivity/docs/vpn/concepts/overview?hl=ja
2.ネットワーク構成概要
今回、Google Cloud (GCP)と接続する拠点として、AzureとAWSを選定しました。もちろん、接続先としてはオンプレミスの拠点でも他のクラウドでも可能ですが、昨今のパブリッククラウドのシェアとしてトップ3のクラウドサービスですので、これらのクラウドとの接続を理解しておくことで、汎用的な理解を得ることができると言えるでしょう。
ご覧いただくとわかるかと思いますが、構成としては対向がどんなクラウドサービスだろうと、オンプレミスの拠点だろうと、ほとんど一緒です。クラウドの境界にGateway(入口)が存在し、その機器を経由してプライベートなネットワークに通信を行います。各サービス毎に名称は異なりますが、内容を理解しているとスムーズに構築を進めることができます。
今回、AzureとAWSの接続をどちらも記載していますが、それぞれのクラウドサービスとの接続のみをご覧いただきたい方は以下のフローチャートをご確認ください。本記事の項番との対応を記載しております。
・Google Cloud (GCP) AzureのVPN構成
Google Cloud (GCP)側には仮想ネットワークであるVPCネットワークを構築後、Azure側にVPN接続するためのGatewayとしてCloud VPNを構築します。また、VPN接続が正しく行えているかの確認のためのCompute Engine(仮想サーバー)を作成します。
Azure側にも同じ機能を持つサービスを構築します。サービス名称はそれぞれ以下となります。
仮想ネットワーク | Virtual Network |
Gateway | Virtual Network Gateway |
仮想サーバー | Virtual Machine |
・Google Cloud (GCP) AWSのVPN構成
AWSもAzureの時と同様となります。
AWSにおけるサービス名称は以下の通りです。
仮想ネットワーク | VPC |
Gateway | VPN Gateway |
仮想サーバー | Amazon EC2 |
それでは、早速Google Cloud (GCP)-Azure構成から作成していきましょう!
3.Google Cloud (GCP)ネットワーク設定①
3-1.外部IPアドレス取得
まずはGoogle Cloud (GCP)のコンソールにログインして、外部IPアドレスを作成します。対向のGatewayはこの外部IPアドレスに対して通信を行うことになります。
Google Cloud (GCP)にログイン後、左側の「VPCネットワーク」をクリック後、「外部IPアドレス」を選択します。
設定項目は以下の通りです。以降、デフォルトの値から入力が必要な箇所はこの通り表で記載します。
名前 | gcp-to-azure |
リージョン | asia-northeast1(東京) |
接続先 | なし |
3-2.VPCネットワーク作成
次にVPCネットワークを作成します。こちらには後程作成するCloudVPNや、正しくVPNが構築できたかを確認するための仮想マシンなどを所属させます。
このVPCはプライベートIPですので、対向のクラウドサービス(Azure)から、このVPCネットワークのプライベートIPに対して通信ができるようになれば、正しくVPNが構築できているといえます。
設定項目は以下の通りです。
名前 | gcp-to-azure-vpc |
サブネット | カスタム |
IPアドレス範囲 | 10.101.0.0/16 |
3-3.ファイアウォール設定
次に、ファイアウォールの設定を行います。ファイアウォールはセキュリティ向上のため不正な通信をシャットアウトし、必要な通信のみを行えるように構築します。必要最低限のIPアドレス範囲やポート番号のみを許可する必要があります。
先ほど作成したVPNネットワークにはまだ何もルールが作成されていません。デフォルトでアウトバウンド(内→外)向けの通信は許可されていますが、インバウンドの通信は拒否されているため、後程作成する仮想マシンにアクセスするためのルールと、pingでの疎通確認のためのルールを作成しておきます。
①SSHの通信許可設定
これは手元の端末から作成した仮想サーバーにアクセスをするための許可設定です。画面キャプチャでは例として0.0.0.0/0が記載されていますが、これですとすべてのソースIPの接続が許可されます。実際の設定では、「ソースIPの範囲」の項目に、SSH接続が必要なご自身の端末のソースIPを指定してください。
外部サイトですと「確認くん」などでも自分のソースIPを確認できます。※2021/04/06時点
設定項目は以下の通りです。
名前 | gcp-to-azure-ssh |
ネットワーク | gcp-to-azure-vpc |
ターゲット | ネットワーク上のすべてのインスタンス |
ソースIPの範囲 | ご自分のSSH接続端末のソースIP (例として画面キャプチャでは0.0.0.0/0) |
Protocols and ports | Specified protocols and ports |
tcp | 22 |
②ICMPの通信許可設定
これは対向の仮想サーバーにpingというコマンドを利用して疎通確認をする際に利用する許可設定です。pingコマンドはICMPパケットを送出するため、許可する必要があります。
設定項目は以下の通りです。
名前 | gcp-to-azure-icmp |
ネットワーク | gcp-to-azure-vpc |
ターゲット | ネットワーク上のすべてのインスタンス |
ソースIPの範囲 | ご自分のSSH接続端末のソースIP (例として画面キャプチャでは0.0.0.0/0) |
Protocols and ports | Specified protocols and ports |
tcp | 22 |
3-4.Cloud VPN作成
ハイブリッド接続→VPNからCloud VPNを作成していきます。これが対向(相手先)のシステムとVPN接続するための、Google Cloud (GCP)側で用意される仮想のルーターとなります。
ハイブリッド接続→VPN→「+VPN設定ウィザード」をクリックします。
次にVPNで接続する際のルーティング情報の設定となりますが、今回はClassicVPNを選択します。
IPアドレスは、先ほど3-1で作成したパブリックIPを選択します。
これでVPN接続部分はひとまず完成です。作成が完了すると、以下の画面に遷移します。6の項目で後程VPNトンネルを追加しますが、その前に対向側のシステムの準備を行います。
4.対向側ネットワーク設定(Azure)
4-1 リソースグループ作成
まずは、今回作成するリソースを格納するためのリソースグループを作成します。画面上の検索窓から「リソーグループ」と入力すると以下の作成画面が表示されます。
設定項目は以下の通りです。
リソースグループ | azure-to-gcp |
リージョン | 東南アジア(これはどこでも構いません) |
4-2 仮想ネットワーク作成
設定項目は以下の通りです。
リソースグループ | azure-to-gcp |
名前 | azure-to-gcp-vnet |
地域 | 東日本 |
設定項目は以下の通りです。
IPv4アドレス空間 | 10.201.0.0/16 |
サブネット名 | sub |
サブネットアドレス範囲 | 10.201.0.0/24 |
作成した仮想ネットワークに移動し、サブネット→「+ゲートウェイサブネット」から、ゲートウェイサブネットを作成します。
設定項目は以下の通りです。
サブネットアドレス範囲間 | 10.201.255.0/27 |
4-3 ローカルネットワークゲートウェイ作成
IPアドレスにはGoogle Cloud (GCP)で作成した外部IPアドレス、アドレス空間にはGoogle Cloud (GCP)で作成したVPCネットワークのレンジを入力します。
設定項目は以下の通りです。
名前 | gcplocalgw |
IPアドレス | GCPで作成した外部IPアドレス |
アドレス空間 | gcp-to-azure-vpcのアドレス空間 |
リソースグループ | azure-to-gcp |
場所 | 東日本 |
4-4 仮想ネットワークゲートウェイ作成
設定項目は以下の通りです。
名前 | gcpvpngw |
地域 | 東日本 |
ゲートウェイの種類 | VPN |
VPNの種類 | ルートベース |
SKU | VpnGw1 |
仮想ネットワーク | azure-to-gcp-vnet |
パブリックIPアドレス | 新規作成 |
パブリックIPアドレス名 | azure-to-gcp-pip |
4-5 トンネル作成
作成した仮想ネットワークゲートウェイへアクセスし、左側の設定→接続から「+追加」をクリックします。
以上の項目を入力します。
名前 | GCPTunnel |
接続の種類 | サイト対サイト(IPsec) |
仮想ネットワークゲートウェイ | gcpvpngw |
ローカルネットワークゲートウェイ | gcplocalgw |
共有キー(PSK) | abcd1234 (後程Google Cloud (GCP)側でも同じ値を入力します) |
Azureの設定を進める方は次に6-1を参照してください。以降、5ではAWSの場合にどのように設定するのかを確認していきます。
5.対向側ネットワーク設定(AWS)
ここまではAzure側の設定を行ってきましたが、AWSの場合はどうなるのか、確認していきましょう。3までの手順は、Azureの時と一緒になります。今までは作成したものの名称がgcp-to-azureの様になっておりますが、これを適宜gcp-to-awsのようにご自分がわかりやすい名称にしていただければ問題ありません。
AWS用の3までの手順が完了した前提で、AWSのネットワーク設定に進んでいきます。
5-1.VPC作成
画面上部の「サービス▼」をクリックすると、AWSのサービス一覧が表示されますので、「ネットワーキングとコンテンツ配信」から「VPC」を選択します。
以上の項目を入力します。
名前タグ | aws-to-gcp |
IPv4 CIDR ブロック | 10.202.0.0/16 |
5-2.サブネット作成
以下の項目を入力します。
サブネット名 | sub1 |
IPv4 CIDR ブロック | 10.202.0.0/24 |
5-3.仮想プライベートゲートウェイ作成
作成完了後、先ほど作成したVPCへアタッチします。画面上部の「アクション」をクリック後「VPCにアタッチ」をクリックします。
以下の画面に遷移するので、先ほど作成したVPCにアタッチします。
状態が「attached」となることを確認します。
5-4.サイト間のVPN接続作成
VPC画面で左側から「サイト間のVPN接続」を選択し、クリックします。
名前タグ | aws-to-gcp-vpn |
仮想プライベートゲートウェイ | vgw-0abcd45767e1b8aae (先ほど作成したID) |
カスタマーゲートウェイ | 新規 |
IPアドレス | Google Cloud (GCP)側で予約した外部IPアドレス |
ルーティングオプション | 静的 |
静的IPプレフィクス | Google Cloud (GCP)側で作成したVPCネットワークのIPアドレス範囲 |
作成完了後、上部の「設定のダウンロード」をクリックします。
ベンダーを「Generic」を選択し、ダウンロードします。
テキストファイルがダウンロードされます。
こちらの項目は、6-2.VPNトンネル設定(AWS)にて利用するので、保管しておいてください。
5-5.ルートテーブルの伝播
ルートテーブルから、今回作成したVPCを選択し、画面下の「ルート伝播」から「ルート伝達の編集」をクリックします。
今回作成した仮想プライベートゲートウェイのチェックボックスをオンにし、保存します。
これでAWS側の設定は終了です。
6.Google Cloud (GCP)ネットワーク設定②
6-1.VPNトンネル設定(Azure)
Google Cloud (GCP)へ戻り、Cloud VPN ゲートウェイから右側の「VPNトンネルを追加」をクリックします。
以下の項目を入力します。
名前 | gcp-to-azure-tunnel1 |
リモートピアIPアドレス | Azureの仮想ネットワークゲートウェイ作成時のパブリックIPアドレス |
IKE事前共有キー | abcd1234 |
ルーティングオプション | ルートベース |
リモートネットワークの範囲 | Azureの仮想ネットワーク範囲 |
正しく作成が完了すると、VPNトンネルの「ステータス」欄に確立済みと表示されます。
6-2.VPNトンネル設定(AWS)
Google Cloud (GCP)へ戻り、Cloud VPN ゲートウェイから右側の「VPNトンネルを追加」をクリックします。
ここで、5-4でダウンロードしたテキストファイルを開きます。
Pre-Shared Key の情報と、Virtual Private Gatewayの情報を控えます。
上記の情報を踏まえたうえで、以下を入力して作成をクリックします。
名前 | gcp-to-aws-tunnel1 |
リモートピアIPアドレス | メモしたVirtual Private GatewayのIPアドレス |
IKE事前共有キー | メモしたPre-Shared Keyの文字列 |
ルーティングオプション | ルートベース |
リモートネットワークの範囲 | AWSのVPC範囲 |
正しく作成が完了すると、VPNトンネルの「ステータス」欄に確立済みと表示されます。
7.VPN接続テスト
7-1.仮想マシン作成(Google Cloud (GCP)-Azure)
仮想マシンを作成し、実際に接続ができているか、Azure側のサーバーに対して、プライベートIPで通信ができるか、見てみましょう。Google Cloud (GCP)上で仮想マシンを作成します。
以下の内容を入力します。
名前 | instance-azure-to-gcp |
リージョン | 東京 |
ネットワーク | gcp-to-azure-vpc |
サブネットワーク | gcp-to-azure-sub1(10.101.0.0/16) |
Azure側でも以下の仮想マシンを作成します。詳細は割愛しますが、プライベートIPアドレスとして、Azureでは10.201.0.4が割り当てられていることが確認できます。
通常であれば、Google Cloud (GCP)の仮想マシンから、このアドレスに対しては通信ができませんが、今回VPNを作成してGoogle Cloud (GCP)と拠点間で閉域通信が可能なため、適切に設定がされていれば通信が可能なはずです。
7-2.対向VMへの疎通確認(Azure)
Google Cloud (GCP)からSSHでinstance-azure-to-gcpにアクセスし、Azure上の仮想マシン10.201.0.4にpingを実施したところ、正常に応答が帰ってきました。
これで正しくVPNが確立できたことを確認できました。
7-3.仮想マシン作成(GCP-AWS)
同様に、Google Cloud (GCP)からAWSの場合も確認してみましょう。
Azureの時と同様に、仮想マシンをGoogle Cloud (GCP)上で作成します。画面イメージは7-1と同様ですので、割愛します。
名前 | instance-gcp-to-aws |
リージョン | 東京 |
ネットワーク | gcp-to-aws-vpc |
サブネットワーク | gcp-to-aws-sub1(10.102.0.0/16) |
AWS上の仮想マシンは以下のように作成しました。
先ほど作成したVPCのネットワーク「10.202.0.42」が割り振られています。ではGoogle Cloud (GCP)の仮想マシンから、このAWSの仮想マシンに大してpingを実施してみましょう。
7-4.対向VMへの疎通確認(AWS)
Google Cloud (GCP)からSSHでinstance-gcp-to-awsにアクセスし、AWS上の仮想マシン10.202.0.42にpingを実施したところ、正常に応答が帰ってきました。これで正しくVPNが確立できたことを確認できました。
8.まとめ
今回、Google Cloud (GCP)と他のクラウドの間でVPN接続を行いました。通常のネットワーク機器であれば、コマンドラインで複雑なコマンドを入力してVPN設定を行うことが多いと思います。
しかしGoogle Cloud (GCP)をはじめとしたパブリッククラウドは、今回のようにGUI上ですべて完結するため、あまりネットワークに知見がない方でも、このようなチュートリアルとともに簡単にVPN接続が可能となっています。
みなさまもぜひお試しください。
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、
- Google Cloud (GCP)支払い代行
- システム構築からアプリケーション開発
- Google Cloud (GCP)運用サポート
- Google Cloud (GCP)に関する技術サポート、コンサルティング
など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
Google Cloud (GCP)関係の記事もたくさん公開しておりますので、ぜひご興味ありましたら、リンク先にてご確認ください。
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!