Google Cloud (旧GCP)にVPNを構築してみた

Google Cloud (旧GCP)でVPNを構築してAWS、Azureと通信する方法をご紹介!

GCP

投稿日:2021/03/30 | 最終更新日:2021/04/27

今回、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)、または Google Workspace(旧G Suite) 導入をご検討をされているお客様へ「Google Meet で無料個別相談会」を実施いたします。導入前に懸念点を解決したい方、そもそも導入した方がいいのかをお聞きしたい方はお気軽にお申し込みください!

トップゲート経由でGoogle Cloudをご契約いただけるとGoogle Cloudの利用料金はずっと3%オフとお得になります!

お申込みはこちら

Google Cloud (旧GCP)関係の記事もたくさん公開しておりますので、ぜひご興味ありましたら、リンク先にてご確認ください。



メール登録者数3万件!大人気TOPGATE MAGAZINEにご登録いただけますと、TOPGATE Broadcaster の情報があなたのメールボックスに届きます。
他にも、Google Cloud (旧GCP) 、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!

メルマガ登録はこちら

記事を探す

GCP のメリットを最大限に活用しよう!

Google Cloud・Google Workspace のご相談・
お見積り依頼はお気軽に
お問合せフォーム