GoogleCloud PCA資格の学習記録 - Network編

## はじめに

Google CloudのPCA(Professional Cloud Architect)認定資格取得に向けて学習した内容を自分なりに整理します。Google Cloudのサービスに限らず、それを扱う上での関連知識についても触れています。
本記事はNetwork編ということで、下記の要素を扱います。

* VPC（Virtual Private Cloud）
    * VPC Service Control
    * Private Google Access
* Cloud VPN
* Dedicated Interconnect
* VPCルーティング
* Cloud Router
* VPC Firewall
* Cloud Armor
* Cloud Load Balancing
* Cloud CDN
* Cloud DNS
* Apigee


:::note
この記事における「現在」や「最近」などの表現は、特に断らない限り2025年6月時点を指します
:::

## VPC（Virtual Private Cloud）

Google Cloudのリソース間通信を制御する仮想ネットワーク

* グローバルリソースであり、単一のVPCで複数リージョンにまたがるネットワークを構成可能
    * サブネットはリージョン単位で管理され、IP範囲はCIDRで定義
* 共有VPCにより、複数プロジェクト間で一貫したネットワーク管理が可能
    * これによりネットワーク管理とアプリケーション開発の責務を分離する


### VPC Service Control

境界ベースのセキュリティモデルにより、Google Cloudへの不正アクセスやデータ漏洩を防ぐための機能

* セキュリティ境界（Service Perimeter）を定義し、プロジェクトやサービスアカウト、組織フォルダなどを「境界内」に含める
    * この境界の外から内側のリソースへのAPIアクセスは制限される
* 対象サービス
    * Cloud Storage, BigQuery, Cloud Pub/Sub など、多くのマネージドサービスに対応
* 注意点として、対象はあくまで「API経由のアクセス」
* インターネットアクセスをブロックするわけではないため、VPC FirewallやPrivate Google Accessと併用して保護する必要がある


### Private Google Access

* VPC内のプライベートIPアドレスを持つVMから、インターネットを介さずにGoogleのAPIやサービスへアクセスできるようにする機能
* サブネット単位で有効化できる
* 対象サービス
    * Cloud Storage, BigQuery, Cloud Pub/Sub など
* インスタンスが該当サブネットに属し、デフォルトルートでインターネットに向かう経路を持っている必要がある
* 外部インターネットアクセスやパブリックIPを持たない環境で、Google Cloudのサービスへアクセスする際に活用される


## Cloud VPN

オンプレミスや他クラウドとのセキュアな（暗号化された）IPsecトンネルを通じた接続

* Classic VPN
    * 単一トンネル。静的ルートのみ対応
* HA VPN
    * 高可用性を提供するVPN
    * 複数トンネル、自動フェイルオーバー、動的ルーティングに対応
        * BGPを使うためCloud Routerが必須
* GCP内のVPC間接続にも使えるが、インターネット経由のため、Interconnectと比べるとパフォーマンスは劣る
    * ただし構築は簡便


## Dedicated Interconnect

オンプレミスとGoogleのネットワーク間を専用線で接続するサービス

* Google Cloudとオンプレミスを物理的に直接接続することで、高帯域・安定性・セキュリティを実現
    * Dedicated Interconnect：Googleとの直結（エンタープライズ向け）
    * Partner Interconnect：通信事業者を介した接続（中小規模向け）
* Cloud Routerと連携して動的ルーティングを構成可能



## VPCルーティング

Google Cloud内のパケット転送経路を制御する仕組み。自動ルートとカスタムルートが存在する

* リージョンをまたいだ内部通信もサポート（グローバルVPC）
* VPNやInterconnect使用時は、Cloud RouterによるBGP動的ルーティングが推奨


## Cloud Router

オンプレミスや他クラウドと接続する際の動的ルーティング（BGP: Border Gateway Protocol）を提供するフルマネージドサービス

* Interconnect や VPN を使ったハイブリッド接続時に、経路情報を動的にやりとりする役割を持つ
    * オンプレミスとGoogle Cloud間のネットワーク構成変更があっても、自動で経路が更新される
* Cloud RouterがBGPにより学習・生成したルートは、VPCルーティングにも自動的に反映される
* 高可用性
    * Cloud Router 自体はゾーン障害に強く、リージョン内で自動的に復旧

## VPC Firewall

インスタンス間の通信許可・拒否を制御するステートフルなファイヤーウォール
ステートフルとは、片方向（ingressまたはegress）のルールを記述するだけで、対応する逆方向の返答通信が自動で許可されることを意味する


* 許可ルール中心の構成
    * 明示的な拒否も可能だが補助的なもの
        * 後述のとおり、すべてのIngress通信は暗黙のルールで拒否されているため
* インスタンス単位ではなく、ネットワークタグやサービスアカウントに基づいて制御
* 優先度によってルールを適用する
    * より優先度の若いものが優先される。0が最優先
    * 最も低い優先度である`65535`に下記の設定がある
        * 暗黙の許可（Egress: 任意の宛先）
        * 暗黙の拒否（Ingress: すべてのインスタンス）
    * つまり、特に制限しない限り外に出ていく通信は許可されるし、明示的に許可しない限り外部からの通信は拒否されるということ
        * これらの暗黙的なルールをベースとして、明示的な許可ルールと明示的な拒否ルールを加えて制御する
        * 「暗黙のルールを追加する」という操作はない


## Cloud Armor

DDoS防御およびWebアプリケーションファイアウォール（WAF）サービス


* WebアプリケーションやAPIのセキュリティを強化するために設計されたグローバルな防御レイヤー
* HTTP(S) Load Balancerに対してのセキュリティ対策を行う
* Google のエッジネットワークでグローバルに動作する


## Cloud Load Balancing

グローバルスケールでトラフィック分散を提供するフルマネージド型ロードバランサ

* 種類によって適用範囲が異なる
    * HTTP(S) LB
        * グローバル対応、CDNやCloud Armorと連携可
        * レイヤー7（アプリケーション層）で動作する
            * URLパスやHTTPヘッダーなどで負荷分散を行う
    * Internal LB
        * マイクロサービス間などプライベート通信向け
    * TCP/SSL/UDP LB
        * 低レイヤー（レイヤー4: トランスポート層）の通信向けであり、L7と比べて処理が高速
            * IPアドレスとポート番号を基準に判断し、アプリケーションの内容は解析しない
* オートスケーリング、ヘルスチェック、SSL終端処理に対応



## Cloud CDN

静的コンテンツのキャッシュ配信を行うことで、応答速度を高速化し、バックエンド負荷を軽減

* Googleのエッジネットワークを活用する
* HTTP(S) Load Balancerと組み合わせて使用
* レイテンシ削減、帯域使用量削減、トラフィックのスパイク吸収に有効



## Cloud DNS

Google Cloud上のスケーラブルなDNSサービス

* パブリックDNS／プライベートDNSの両方に対応
* インフラ構成のコード化と合わせて、Managed Zoneで自動化が可能




## Apigee

APIのライフサイクル全体（API公開、制御、分析、セキュリティ保護）を管理するプラットフォーム

* レート制限、アクセス制御、分析、バージョン管理、モニタリングなどを統合
* 内部／外部向け問わず、APIの統一的な公開基盤を提供
* 企業のAPIファースト戦略を支える中核コンポーネントとして重要