Google Cloud (GCP)におけるネットワーキングの必修ポイントとは?
- Cloud
- VPC
- VPC Service Controls
本記事は、2022年4月20日に開催された Google の公式イベント「 Google Cloud ML サミット」において、グーグル・クラウド・ジャパン合同会社のカスタマーエンジニアである有賀征爾氏が講演された「クラウド経験者に送る Google Cloud ネットワーキングの必修ポイント」のレポート記事となります。
今回は Google Cloud (GCP)におけるネットワーキングの基礎について、設計や考え方からの理解を深めるとともに、 Google Cloud (GCP)らしい特徴を持った機能やサービスについて図解を交えながらわかりやすくご紹介します。
なお、本記事内で使用している画像に関しては、 Google Cloud ML サミット「クラウド経験者に送る Google Cloud ネットワーキングの必修ポイント」を出典元として参照しております。
それでは、早速内容を見ていきましょう。
目次
Google Cloud (GCP)の物理ネットワーク
ネットワーキングを考える際、物理ネットワークはとても重要な要素です。下図は Google Cloud (GCP)のリージョンを示したものであり、青い丸が現行リージョンで白い丸が今後予定されているリージョンです。そして、各リージョンが通信ケーブルで繋がっています。
下図は海底ケーブルをより詳細に表したものであり、海底ケーブルが海底を通ってリージョン A とリージョン B を繋いでいることがわかります。このように、 Google Cloud (GCP)のすべてのリージョンは海底ケーブルで接続されています。なお、右下に掲載されている2枚の写真は実際の海底ケーブルを映したものです。
では、リージョンとはどのようなものでしょうか?リージョンとは、 Google Cloud (GCP)の複数のデータセンターから構成されており、 Compute Engine のインスタンスなどが物理的に稼働する場所のことを指します。
下図に並んでいる9つの写真が Google の実際のデータセンターです。
そして、このリージョンを分割する形で存在するものがゾーンです。以下は東京リージョン( asia-northeast 1)図で示したものであり、1つのリージョンの中に3つのゾーンがあります。なお、ゾーンは相互に障害などの影響が及ばないように配慮されています。
リージョンとゾーンについてわかりやすく解説した記事もありますので、こちらもあわせてご覧ください。
【クラウドの必須知識】「リージョン」と「ゾーン」の違いや選ぶときのポイントを徹底解説!
Google Cloud (GCP)の Virtual Private Cloud (VPC)
昨今、クラウドが広く浸透していますが、クラウドを利用する場合は物理的なインフラストラクチャの上に論理的なネットワークを構築する必要があります。
そこで、最初に定義すべきものとしては Virtual Private Cloud (VPC)が挙げられます。この Virtual Private Cloud (VPC)がネットワークの一番基本的な単位になります。
Virtual Private Cloud (VPC)の範囲
それでは、ここで Virtual Private Cloud (VPC)の範囲について考えてみましょう。 Google Cloud (GCP)の Virtual Private Cloud (VPC)は以下1〜3のどれに該当するでしょうか?
- 1.グローバル単位
- 2.リージョン単位
- 3.ゾーン単位
正解は 1 であり、 Google Cloud (GCP)ではグローバルに1つの Virtual Private Cloud (VPC)を定義する形になります。そのため、例えば東京リージョンと大阪リージョンにまたがるシステムを作りたい場合でも、1つの Virtual Private Cloud (VPC)で簡単にマルチリージョンの構成を実現できます。
IP アドレスの設定対象
次に IP アドレスの設定について考えてみましょう。 Google Cloud (GCP)における IP アドレスの設定対象は以下のどちらに該当するでしょうか?
- 1.各サブネット
- 2.Virtual Private Cloud (VPC)と各サブネット
正解は 1 であり、 Google Cloud (GCP)では各サブネット単位で IP アドレスを設定します。 Virtual Private Cloud (VPC)には IP アドレスを定義せず、特定の Virtual Private Cloud (VPC)の中に複数のサブネットを個別に作成し、ネットワーク全体を構成する形になります。
ちなみに Google Cloud (GCP)には default という名前の Virtual Private Cloud (VPC)が存在しますが、これはテスト以外での利用は非推奨となっているため、削除しても問題はありません。
サブネットの定義
次はサブネットの定義について考えてみましょう。サブネットの定義は以下のどれに該当するでしょうか?
1.グローバル単位
2.リージョン単位
3.ゾーン単位
正解は 2 のリージョン単位です。先程、 Virtual Private Cloud (VPC)の範囲はグローバル単位だとご説明しましたが、サブネットの定義はリージョン単位となり、これによってシンプルな冗長化を実現できます。
例えば、複数のゾーンを跨いで VM を展開したい場合、リージョン単位でサブネットを定義できることで、1つのサブネットを定義すればそのサブネットの中で別々のゾーンに VM を展開できます。これにより、1つのサブネットで可用性の高いシステムを構成可能になります。
ちなみに、サブネットの中に作る VM は全て /32 の単位でサブネットマスクが払い出されます。ただし、ソフトウェアの種類によっては /32 では正常に動かない場合がありますが、この時は MULTI_IP_SUBNET を定義することで単位を調整できます。
ルートの設定
次にルートの設定について考えてみましょう。ルートの範囲は以下のどれに該当するでしょうか?
1.グローバル単位
2.リージョン単位
3.ゾーン単位
正解は 1 のグローバル単位になります。ルートをグローバルに定義できることで、ルーティングが簡単になる点はメリットとして挙げられますが、その一方で細かい調整には若干の手間がかかります。
例えば、下図を見てください。
この図では、大阪リージョンの VM からオンプレミスに対して VPN が張られています。そして、オンプレミスへアクセスするためには VPN が張られている VM 経由で接続する構成となっています。
なお、 VPN について理解を深めたい方は以下の記事がオススメです。
専用線と VPN の違いとは?違いを理解して会社のセキュリティを強化しよう!
Google Cloud (GCP)でVPNを構築してAWS、Azureと通信する方法をご紹介!
この場合のルート設定を考えた場合、オンプレミス(10.1.0.0/16)は大阪の VPN VM 経由で接続し、大阪リージョンからも東京リージョンからも同じルートが使われることになります。ただし、東京リージョンにも VPN を張って、東京からは東京へ、大阪からは大阪へアクセスしたい場合、この構成では全ての VM が同じルートを通るので実現できません。
そこで使われるのがタグというものです。タグを活用することで、同じタグが付いた VM だけに適用されるルートを確保でき、前述した構成を実現することができます。
ちなみに、タグの設定は下図の「インスタンスタグ」という部分で設定し、 VM を作るときにそのタグをネットワークタグとして定義する形になります。
また、静的ルーティングの話をしたので動的ルーティングにも簡単に触れておきます。動的ルーティングは主に Google Cloud (GCP)とオンプレミスを接続する際に使われます。
VPN 接続や専用線接続、仮想アプライアンス接続を行う場合には、動的ルーティング( Border Gateway Protocol : BGP )を利用して経路交換を行います。なお、経路交換を行う際の仮想ルーターとしては Cloud Router というものが Google Cloud (GCP)では用意されています。
また、 Virtual Private Cloud (VPC)にはルーティングモードというものが存在し、デフォルトではリージョナルとなっています。リージョナルでは大阪で受け取った経路は大阪リージョンでしか使えず、仮に大阪リージョンの VPN が切れた場合、東京側の経路を利用できないため、大阪からはアクセス不可になります。
しかし、ルーティングモードをグローバルに変更することで、大阪・東京どちらの経路もグローバルに共有されるため、東京側で受け取った経路を大阪リージョンで利用することができます。
ファイアウォールの設定
最後はファイアウォールの設定ですが、ファイアウォールはグローバル単位での設定になります。以下、 Google Cloud (GCP)におけるファイアウォールルールの実現方法を図で示します。
Google Cloud (GCP)の特徴的な機能
共有 VPC
共有 VPC は1つの Virtual Private Cloud (VPC)を複数のプロジェクトで共有するときに効果を発揮する機能です。サブネット単位で権限を設定することもできるため、各チームが必要に応じて Virtual Private Cloud (VPC)を利用可能になります。
共有 VPC では、あくまで Virtual Private Cloud (VPC)は1つしか存在しないため、非常にシンプルな構成を取ることができ、手間なく安全に Virtual Private Cloud (VPC)を運用することができます。
Google API サービスへの閉域接続
オンプレミスから BigQuery などの Google API サービスを閉域接続で利用したい場合、これまでは Private Google Access が主に使われていました。
しかし、最近では Private Service Connect というサービスが登場し、これは Private Google Access とほぼ同等の機能を提供しています。 Private Service Connect を設定すると API サービス用のエンドポイントが Virtual Private Cloud (VPC)内に作成され、オンプレミスからも API サービスを使えるようになります。
非 Google API サービスへの閉域接続
次に、非 Google API サービスへの閉域接続について考えてみましょう。非 Google API サービスの具体例としては Cloud SQL や Memorystore などが挙げられます。
この場合は Private Service Access というものを利用します。 Private Service Access を使うことで、非 Google API サービスの Private Cloud (VPC)と自社の Private Cloud (VPC)が接続されるため、これによりオンプレミスからでも簡単に接続可能になります。
非 Google API サービスからの閉域接続
先程とは逆に、非 Google API サービスからの閉域接続の例をご紹介します。例えば、マネージドサービスである Cloud DNS からオンプレミスへアクセスする場合を考えてみます。
この場合、 35.199.192.0/19 からのアクセスとなりますが、このアドレスはインターネットには流れておらず、閉域内で使われているだけのアドレスです。このアドレスをオンプレミス内でルーティングできるようにルーターやファイアウォールを設定することで、 Cloud DNS からオンプレミスへのアクセスが可能になります。
VPC Service Controls
API サービスを利用する上で注意すべき点として、認証情報が漏れた場合のリスクが挙げられます。例えば、 BigQuery に接続するための認証情報がインターネットに漏洩した場合、その情報を取得した全ての人が BigQuery にアクセスできるようになってしまいます。
そこで、 API を保護するために VPC Service Controls が効果を発揮します。
VPC Service Controls を活用することで、仮に正しい認証情報が外部に漏れたとしても、インターネット上からの API サービスへのアクセスをブロックすることができます。
また、 Cloud Storage のデータを一旦 VM にダウンロードしてから外部のストレージにアップロードする、ということが起きた場合でも、 VPC Service Controls でブロックすることが可能です。
つまり、「入る時」も「出る時」も自社のリソース外からアクセスする際はブロックするような使い方ができます。このように、 VPC Service Controls を活用することで様々なリスクを未然に防ぐことができ、 API サービスの安全な利用を実現可能になります。
VPC Service Controls の具体的な使い方に関しては以下の記事で詳しく解説しておりますので、ご確認ください。
VPC Service Controlsを使ってGoogle Cloud セキュリティ対策を強化しよう!
Google Cloud (GCP)に関する Q&A
Q.サブネットを切り出して使い始めた後に使用している VM などが存在したままで拡張することは可能ですか?
A.はい、可能です。ただし、拡張した際に隣に使っているサブネットがある場合、その部分は使えなくなるのでこの点は注意が必要です。
Q.VPC Service Controls は具体的にどのような使い方をされますか?
A.主にデータの流出防止と外部からのアクセスをコントロールする目的で使われることが多くなっています。例えば、 BigQuery (データウェアハウス)や Cloud Storage (オブジェクトストレージ)に対して、外部からのアクセスを遮断したい場合などに使用します。
また、他の使用方法としては BigQuery や Cloud Storage からデータをダウンロードし、それを自分のリソースにアップロードして全世界に公開してしまうような「外部にデータを出す」ということを防ぐために使われることもあります。
つまり、「外部からのアクセスを防ぐこと」と「外部への流出を防ぐこと」をどちらも実現できるため、セキュリティを担保しながら自社のデータを取り扱うことが可能になります。
Q.仮想インスタンスベースのサードパーティサービスを必ず経由させたい、もしくは特定の VM などに対して必ず経由させたいなどの制御は可能ですか?また、それらのアプライアンス用仮想インスタンスで VIP のような仕組みは使えますか?
A.はい、可能です。
Q.仮想ネットワークではなく、物理 NIC 単位で直接接続してくれるサービスはありますか?( Azure > ネットワーキング > Virtual Network > 高速ネットワーク)
A.物理 NIC 単位で直接接続してくれるサービスはありません。ただし、高速ネットワーキングの機能は搭載されており、 100 GB のスループットまで出すことができます。
まとめ
今回は Google Cloud (GCP)におけるネットワーキングの基礎について、設計や考え方からの理解を深めるとともに、 Google Cloud (GCP)らしい特徴を持った機能やサービスについて図解を交えながらわかりやすくご紹介しました。
Google Cloud (GCP)の Virtual Private Cloud (VPC)では、 Virtual Private Cloud (VPC)の範囲やサブネットの定義など、その項目の単位はそれぞれ異なります。例えば、 Virtual Private Cloud (VPC)の範囲はグローバル単位であり、サブネットの定義はリージョン単位です。
そして、このような単位に設定されているのには理由があり、そうなっているからこそ得られるメリットが多数存在します。この記事を読み返して、ぜひポイントを理解していただければと思います。
また、 Google Cloud (GCP)には共有 VPC や VPC Service Controls など、 Google Cloud (GCP)ならではの便利な機能が搭載されています。これらを活用することで、 Virtual Private Cloud (VPC)の運用を効率化できたり、 API サービスを安全に運用できたりします。
本記事を参考にして、ぜひ Google Cloud (GCP)の導入を検討してみてはいかがでしょうか?
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!
Google Cloud (GCP)のネットワーキングに関するオススメ記事をご紹介!
Google Cloud (GCP)のネットワーキングに関するオススメ記事をまとめました。関心のある方はぜひご覧ください。
ハイブリッドクラウドにした際のネットワーク構成と注意すべきポイントとは?