Google Cloudを扱うためには、VPC(Virtual Private Cloud)の理解が欠かせません。
VPCは、クラウド上でプライベートなネットワーク環境を構築できる仕組みであり、リソースの安全な運用や効率的な通信を可能にします。
特にGoogle CloudのVPCは、グローバルなネットワーク構成が可能で、他のクラウドサービスにはない独自の特徴を持っています。
この記事では、初心者向けにVPCの基本的な概念からその構成要素や料金について解説していきます。
VPCとは
Google CloudのVPC(Virtual Private Cloud)は、Google Cloud上に作成できる仮想ネットワークです。
VPCを利用すれば、物理的なネットワーク機器を設置することなく、クラウド上に自分専用のネットワーク空間を作ることができます。
作成したVPCの中に仮想マシンやデータベースなどのクラウドリソースを構築することで、1つの隔離された安全なネットワーク環境を作成できます。
VPCの構成要素
Google CloudのVPCは以下の主要な要素から成り立っています。
サブネット
サブネットは、VPC内にリージョン単位で作成されるネットワークで、サブネットごとにIPアドレスの範囲を定義して作成します。
東京リージョンにサブネットa、ロンドンリージョンにサブネットbといった地理的に離れたリージョンを指定してサブネットを作成することができます。
また、東京リージョン内に2つのサブネットを作成することも可能です。
ファイアウォールルール
VPC内にある仮想マシン(VM)間の通信を制御するための機能です。このルールによって、通信を許可または拒否する条件を細かく設定できます。
通信の方向やどのプロトコルとポート番号を指定するのか、優先度をどうするかなど必要な要件に沿って設定が可能です。
ルート(ルートテーブル)
Google Cloudのルートは、どの経路を通って通信するかを定義します。一般的にはルートテーブルと表現されるものです。
内部向けの通信であれば特定のプライベートIPアドレスへ、インターネット向けの通信ではインターネットゲートウェイへなど、目的に沿ってルートを設定することで通信を確立します。
VPCを作成するとデフォルトルートが自動で生成され、インターネット向けのルートが設定されます。このデフォルトルートはそのまま利用することも、削除することも可能です。
Cloud NAT
Google Cloudが提供するCloud NATは、パブリックIPを持たずにプライベートIPアドレスを持つリソースがインターネットにアクセスするための機能を提供します。
このような機能を一般的にNAT(Network Address Translation)と呼び、グローバルIPアドレスとプライベートIPアドレスを変換する技術を指します。Cloud NATは「送信専用」で、外部から直接通信を受け付けることはありません。
Cloud NATはCompute Engine やGoogle Kubernetes Engine(GKE)などで利用でき、受信した通信が確立できた場合にのみアドレス変換を行います。
Cloud NATを使用することで個々のVMがパブリックIPアドレスを持つ必要がなくなり、外部には公開したくないが、必要に応じてインターネットと通信したいといった要件を満たすことができます。
VPCネットワークピアリング
VPCネットワークピアリングは、異なるVPCネットワーク同士を直接接続し、プライベートIPアドレスを使用して相互に通信できるようにする機能です。
プロジェクトAで開発したアプリケーションから、プロジェクトBのデータベースにアクセスする場合や、異なる企業間でのデータのやり取りが必要な場合などに利用可能です。
それぞれのVPC間でサブネットのIP範囲が重複してはいけないなど、いくつかの制限があるため注意が必要です。
VPCの特徴
このセクションでは、Google CloudにおけるVPCの特徴を解説します。
グローバルなネットワーク構成
Google CloudのVPCは、複数のリージョンを跨いで利用できます。
AzureやAWSなどのクラウドサービスではリージョンごとにネットワークを分ける場合がありますが、Google Cloudでは1つのVPC内で異なるリージョンのリソースをまとめて管理、運用することが可能です。
例えば、アプリケーションを東京リージョンとモントリオールリージョンにまたがって展開した場合でも、両方のリソースを同じVPC内のリソースとして扱えるため、特別な設定をせずにマルチリージョン構成を構築できます。
AWSのVPCに関しては、以下の記事で詳しく解説しています。
リージョン単位でのサブネット
Google CloudのVPCでは、サブネットはリージョン単位で作成します。そのため、リージョンごとに異なるリソースを分けて管理することが可能です。
このメリットとしては、各リージョンのリソースを独立して管理できるだけでなく、リージョンをまたいだリソース間の通信も同じVPC内で安全に行えます。
CIDRブロックはサブネットで指定する
Google CloudのVPCはあくまで仮想ネットワークの「枠組み」を提供するため、VPC作成時にCIDRブロックは指定しません。
IPアドレスの範囲であるCIDRブロックはサブネットに対して指定するため、VPCとしてはIPアドレスに依存しない設計となっています。
ハイブリッドクラウドにも対応
Google CloudのVPCネットワークでは、オンプレミスネットワークや他のクラウドプロバイダのネットワーク接続にも対応しています。
Cloud VPNでは、データを暗号化して安全に送るための技術であるIPsec(Internet Protocol Security)を利用して、Google Cloudと接続先のネットワークを接続します。この技術では、物理的な専用回線を用意することなく利用できます。
Cloud Interconnectでは、インターネットを経由せずに「Googleの専用ネットワーク」を利用して通信を行います。
Dedicated Interconnect、Partner Interconnect、Cross-Cloud Interconnectの3つに分類でき、前者2つはオンプレミス向け、Cross-Cloud Interconnectは別のクラウドプロバイダーとの間で専用接続を行います。
Google Cloudでのネットワーク接続オプションの選択
VPCの料金
このセクションではVPCで発生する料金に関して解説します。
VPC内の通信料金は、通信データを送信するインスタンスやサービスを含むプロジェクトに課金されます。
たとえば、VMから別のVMやインターネットにデータを送信する場合、送信元のプロジェクトが料金を負担します。
インバウンド通信
インターネットからのインバウンド通信そのものには料金は発生しません。
ただし、ロードバランサを経由した場合には、データ処理料金やバックエンドへのデータ転送料金が発生します。
また、Cloud NATを利用してレスポンスを返した場合にも、Cloud NATの利用料金が別途課金されます。
リージョン内の異なるゾーン間での通信
同じリージョンを利用している場合でも、異なるゾーンへの通信を行う場合、1GiBあたり0.01ドルの料金が発生します。
具体的には、asia-northeast1(東京)リージョンを利用している場合、asia-northeast1-aからasia-northeast1-cへ通信を行った場合料金が発生します。
同一ゾーン間での通信では料金は発生しません。
VMからGoogleサービスへの通信
Compute EngineやGoogle Kubernetes EngineからGmail、YouTube、Google MapsといったGoogleのサービスを利用する場合、データ転送料金は発生しません。
ただし、これらのサービスが提供するAPIを利用する場合、API利用料金が別途発生します。
Cloud StorageやCloud Pub/SubなどのGoogle Cloudサービスや、他のプロジェクトのGoogle Cloudリソースにアクセスする場合は、送信データ量に基づいた課金が適用されます。
Google CloudのCloud Storageについては、以下の記事で解説しています。
【Google Cloudの基礎】Google Cloud Storageの基礎を理解しよう
まとめ
この記事では、Google Cloud VPCの基礎について解説しました。
Google CloudのVPCはグローバルなネットワーク構成が可能で、複数リージョンをまたいだリソースの一元管理を実現できる点が大きな特徴です。
また、CIDRブロックはVPCではなくサブネット単位で指定する設計となっており、これも他のクラウドプロバイダとの違いとして挙げられます。
この記事がGoogle Cloud VPCの理解を深める一助となれば幸いです。
参考記事
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.12.03
【Google Cloudの基礎】Google Cloud サービスアカウントの基礎を学ぼう
この記事では、初心者でもわかりやすいようGCPのサービスアカウントについて解説していきます。サービスアカウントの基本を理解し、GCPを扱うインフラエンジニアになるために必要な知識を提供します。
- GCP
2024.06.25
初心者向け!CloudFunctionで簡単アプリをデプロイしよう
CloudFunctionは、一言で言えば「サーバーレスコンピューティングサービス」です。AWSのLambdaに相当するサービスで、インフラの管理を気にせずにコードを実行することができます。
- GCP
2023.02.28
エンジニア初心者が取るべきGoogle Cloudの認定資格「ACE」
ACEは、データ分析基盤において一定の評価を得ている資格です。Google Cloudのエントリー的立ち位置にあり、実務で基本的なGoogle Cloudの設定や管理ができる証明になります。
- GCP