Cloud Service
Virtual Private Cloud (VPC)
Google Cloud 上に作るグローバルな仮想ネットワーク。サブネットはリージョン単位、ファイアウォールやルートはネットワーク全体で管理する通信設計の土台。
- 1.GCP内に作る自分専用の仮想ネットワーク。通信設計の土台。
- 2.VPC自体がグローバルで、サブネットはリージョン単位なのが特徴。
- 3.ルートとファイアウォールはVPC全体で評価、AWSと粒度が違う。
解決する課題
- リソースをネットワーク的に隔離し、外部から触れる範囲を最小化
- 「公開する層」と「隠す層」をサブネット+ファイアウォールで分離(Web ⇄ DB など)
- オンプレや他プロジェクト・他 VPC と安全に接続
- 複数リージョンのサブネットを**1つの VPC(グローバル)**でまたいで運用
主要概念と用語
- VPC ネットワーク: プロジェクトに属するグローバルな仮想ネットワーク。リージョンをまたいで広がる
- サブネット: VPC をリージョン単位で区切った区画。CIDR を持つ(例
10.0.0.0/20)。AZ(ゾーン)単位ではない点が AWS と決定的に違う - ルート: 宛先ごとの経路。VPC 全体で評価される(AWS の「サブネットごとのルートテーブル」ではない)
- ファイアウォールルール: VPC レベルで定義するステートフルな許可/拒否ルール。ネットワークタグやサービスアカウントで適用先を絞る
- Cloud Router: 動的ルート交換(BGP)を担う。Cloud NAT や VPN/Interconnect で利用
- Cloud NAT: プライベートな VM から外向きのみ通信させるマネージド NAT(AWS の NAT Gateway 相当)
- 外部 IP / Cloud Load Balancing: インターネットからの受信は外部 IP かグローバル/リージョン LB 経由
仕様・制限・クォータ
- VPC はグローバル、サブネットはリージョナル(リージョン内の全ゾーンにまたがる)→ 冗長化はリージョン内の複数ゾーンに VM を分散するだけでよい
- ネットワークモードは auto モード(各リージョンに自動でサブネット作成)/ custom モード(手動定義・本番推奨)/ legacy(非推奨)
- ファイアウォールルールはネットワーク単位でステートフル。デフォルトで「外向き許可・内向き拒否」の暗黙ルールが存在
- サブネットの先頭2つ(ネットワーク/ゲートウェイ用)と末尾2つ(ブロードキャスト等)、計4つの IP を Google が予約
- プロジェクト/ネットワークごとに VPC 数・サブネット数・ルート数・ファイアウォールルール数などの上限(引き上げ可)
内部の仕組み
AWS のような「パブリックサブネット」という区分はサブネット側には存在しません。VM が外部到達できるかは、外部 IP の有無とファイアウォール/ルートで決まります。
- 外部に出せる: VM に外部 IP を付与、またはデフォルトルート
0.0.0.0/0 → default-internet-gateway+ 外向きファイアウォール許可 - プライベートのまま外向き: 外部 IP を付けず、Cloud NAT(+ Cloud Router)で送信元 NAT する
- 同一 VPC 内はリージョンをまたいでもサブネット間でプライベート IP 通信できる(ファイアウォールで許可されていれば)
通信可否は ファイアウォールルール(ステートフル・VPC 単位、タグ/SA で適用先を限定) の1層で評価されるのが基本です。AWS の SG(インスタンス単位)と NACL(サブネット単位)の2層構成とは設計思想が異なります。
GCP のルートとファイアウォールはネットワーク(VPC)全体で評価され、サブネット単位ではありません。 そのため「あるサブネットだけ NAT に向ける」には、ルートのタグ指定やCloud NAT の対象サブネット指定で表現します。AWS の「サブネット⇔ルートテーブル」の感覚で来ると混乱しがちです。
設計パターン / ベストプラクティス
- custom モード VPC を使い、サブネットの CIDR を明示設計(auto モードは検証用途向き)
- 3層構成: 外部 LB → プライベート VM(App)→ プライベート VM/Cloud SQL(DB)。各層は外部 IP を付けず Cloud NAT と LB で出入りを制御
- マルチゾーン: サブネットはリージョン全体に広がるので、VM を複数ゾーンに分散するだけで可用性を確保
- Shared VPC(共有 VPC): ホストプロジェクトで VPC を集中管理し、複数のサービスプロジェクトから共有。組織のネットワークガバナンスに有効
- Private Google Access / Private Service Connect: 外部 IP なしで Google API(Cloud Storage / BigQuery など)やマネージドサービスへインターネットを経由せず接続
運用・監視
- VPC Flow Logs でサブネット内の通信メタデータ(許可/拒否・送受信量)を記録し、到達性やコストを分析
- Firewall Rules Logging で個々のファイアウォールルールのヒット状況を可視化
- 「繋がらない」時の確認順: ルート → ファイアウォール → 外部 IP / Cloud NAT → サービスアカウント/タグの一致
- Network Intelligence Center(Connectivity Tests) で送信元⇔宛先の経路を静的に検証
コスト
VPC・サブネット・ルート・ファイアウォールといったネットワーク定義そのものは無料。課金されるのは主に下り(外向き)データ転送と Cloud NAT などのマネージド機能です。
| 項目 | 課金 | ポイント |
|---|---|---|
| VPC / サブネット / ルート / FW | 無料 | ネットワーク定義自体は課金されない |
| 下り(外向き)データ転送 | 従量(宛先・リージョンで単価が異なる) | 同一リージョン内のVM間は無料、リージョン跨ぎ/インターネット向けは課金 |
| Cloud NAT | 時間 + 処理データ量 | AWS NAT Gateway 同様、使うと有料 |
| Cloud VPN / Interconnect | 時間 + 転送量 | オンプレ接続のトンネル/回線コスト |
Google API への通信は Private Google Access や Private Service Connect を使うと、外部 IP / Cloud NAT を経由せず内部経路で到達でき、NAT の処理データ料金やインターネット下り課金を回避できます。
セキュリティ
- 最小公開: DB などの VM は外部 IP を付与しない。受信はロードバランサ経由に限定
- ファイアウォールルールは許可を最小限にし、ネットワークタグやサービスアカウントで適用先を厳密に絞る
- 管理アクセスは踏み台レスに: Identity-Aware Proxy(IAP)TCP 転送で外部 IP なしの VM へ SSH/RDP
- VPC Service Controls でマネージドサービス(Cloud Storage 等)にサービス境界を張り、データ持ち出しを防止
ファイアウォールで 0.0.0.0/0 から SSH(22)/RDP(3389) を全許可するのは NG。
管理接続は IAP TCP 転送(送信元を Google の IAP レンジに限定)か、送信元 IP を絞ったルールにし、外部 IP の付与自体を避けましょう。
関連サービス・比較(AWS との対応)
| 観点 | GCP VPC | Amazon VPC |
|---|---|---|
| ネットワークの範囲 | グローバル(リージョン跨ぎ) | リージョン単位 |
| サブネットの範囲 | リージョナル(全ゾーンにまたがる) | AZ(ゾーン)単位 |
| ルートの粒度 | VPC 全体(タグで適用先を限定) | サブネットごとのルートテーブル |
| 仮想FW | ファイアウォールルール(ステートフル・タグ/SA) | セキュリティグループ + NACL の2層 |
| 外向きNAT | Cloud NAT(+ Cloud Router) | NAT Gateway |
| VPC間接続 | VPC Network Peering / Shared VPC | VPC ピアリング / Transit Gateway |
| プライベートAPI接続 | Private Google Access / Private Service Connect | ゲートウェイ型/インターフェース型 VPCエンドポイント |
ハンズオン / CLI例
# custom モードの VPC ネットワークを作成
gcloud compute networks create demo-vpc \
--subnet-mode=custom
# 東京リージョンにサブネットを作成
gcloud compute networks subnets create demo-subnet-tokyo \
--network=demo-vpc \
--region=asia-northeast1 \
--range=10.0.1.0/24
# 内部からの SSH を IAP レンジのみ許可(外部公開しない)
gcloud compute firewall-rules create demo-allow-iap-ssh \
--network=demo-vpc \
--direction=INGRESS \
--action=ALLOW \
--rules=tcp:22 \
--source-ranges=35.235.240.0/20
# Cloud Router を作成(Cloud NAT の前提)
gcloud compute routers create demo-router \
--network=demo-vpc \
--region=asia-northeast1
# Cloud NAT を構成(プライベート VM の外向き通信を許可)
gcloud compute routers nats create demo-nat \
--router=demo-router \
--region=asia-northeast1 \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
Google Cloud Service
Virtual Private Cloud (VPC)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ネットワーキング
比較で見る軸
クラウド: Google Cloud / カテゴリ: ネットワーキング / 難易度: intermediate
導入後に効く点
VPC自体がグローバルで、サブネットはリージョン単位なのが特徴。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- ネットワーキング
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- security / reliability / performance / cost
判断チェックリスト
- 自社の用途が「ネットワーキング / security」に近いか確認する。
- 強みである「GCP内に作る自分専用の仮想ネットワーク。通信設計の土台。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。
他クラウドの同等サービス
役割が近いサービスです。設計の置き換えや比較検討の参考に。