「世の中には難しいことが多い!」と感じることが多い私が、様々な用語を、初学者向けにわかりやすく全力で解説します。
今回解説するGoogle Cloudのサービス
組織でGoogle Cloudを使用する場合に、安全で効率的な相互通信が出来る、共有VPCについて解説します。
共有VPCとは?
共有VPCとは、ネットワークをおすそ分けすることが出来る設定のことです。もっとまじめに言うと、Google Cloudのネットワークを管理するための設定のことです。共有VPCを使うことで、同じネットワークリソースを複数のプロジェクトで共有することが出来ます。
今回は共有VPCについて、以下の構成図をもとに説明をしていきます。
なぜ共有VPCを使用するのか?
企業などの組織でGoogle Cloudを使用することがあると思います。
小さい組織であれば、各々で自由にプロジェクトとVPCネットワークを作成しても管理が行き届くかもしれません。
しかし、大きい組織の場合、各々で自由にプロジェクトとVPCネットワークを作成されると、管理が行き届かず、情報漏洩や悪意のある攻撃の脅威にさらされる可能性が出てきます。
これを防ぐために、効率的に複数のプロジェクトのネットワークを管理する必要があります。そのために便利な方法が、共有VPCを使用することです。
共有VPCを使用すると、1つの管理プロジェクトで1つのVPCネットワークを管理することが出来ます。他のプロジェクトは管理プロジェクトが管理している1つのVPCネットワークを使用して、Google Cloudのサービスを使用することが出来るようになるのです。
わかりやすく説明するよ
ホストプロジェクトでネットワークを管理する
まずは「このプロジェクトでネットワークを管理するぞ」なプロジェクトを用意します。一見すると、特に何の変哲もないプロジェクトです。このプロジェクトにはVPCネットワークがあり、リージョンにサブネットが作成されています。
この親分みたいなプロジェクトのことを「ホストプロジェクト」と呼びます。
リージョンやサブネットが分からない場合は、とても分かりやすい、以下の記事を読んでみてください。
サービスプロジェクトはホストプロジェクトの子分
次に、「このプロジェクトでインスタンスなどのリソースを作成するぞ」なプロジェクトを用意します。このプロジェクトにはVPCネットワークは存在しません。VPCネットワークがないということは、通常であればインスタンスなども作成することが出来ません。
この子分みたいなプロジェクトのことを「サービスプロジェクト」と呼びます。
共有VPCを使用すると、、
このままだとサービスプロジェクトではインスタンスなどのリソースを作成することが出来ません。
そこで、なんやかんや設定すると、ホストプロジェクトからサービスプロジェクトへ内部IPアドレスをおすそ分けすることが出来るようになります。
以下の図のように、サービスプロジェクトはホストプロジェクトから内部IPアドレスをおすそ分けしてもらったので、この内部IPアドレスを使用して、インスタンスを作成することが出来るようになりました。
「なんやかんや」の部分は以下の公式ドキュメントを読んでみてください。
今後もサービスプロジェクトでインスタンスなどのリソースを作成したい場合は、ホストプロジェクトに「IPアドレスちょうだい」とお願いする必要があります。
内部IPアドレスをちまちまあげるのが面倒な場合は、サブネット毎にドカッとあげることも出来ます。
ホストプロジェクトはサブネットの追加・削除、セカンダリIPアドレスレンジの設定やファイアウォールルールの設定などを行います。「ネットワーク関係の設定は親分がやってくれる」みたいな感じです。
このようにして親分から子分へIPアドレスをおすそ分けすることが出来るような方法が共有VPCです。
ちなみに、わかりやすく区別するために、共有 VPC に参加していないプロジェクトは「スタンドアロンプロジェクト」と呼びます。今まではみんな1人だったけど、複数人の集まりが出来て、孤独になった瞬間に「ぼっち」と呼ばれるみたいな感じです。
まとめ
共有VPCを使用することで、それぞれのプロジェクトで勝手にネットワークを作成することが出来なくなります。1箇所でネットワークを管理することが出来るようになり、セキュリティのリスクを軽減することが出来るので、組織でGoogle Cloudを使用する場合は共有VPCを使用することを検討してみてください。