基礎LESSON 14

この教材で学ぶこと プロジェクト、IAM、VPC、Cloud Run、保存と監視を学びます。

Google Cloud(GCP)— 基礎から設計・運用へ

前提: Azure章。同じ学習ポータルをGCPで設計する。

1. プロジェクトとIAM

Google Cloudは、組織 → フォルダ → プロジェクト → リソースという階層を使う。 組織・フォルダの有無は利用形態によるが、プロジェクトはAPIの利用、権限、資源管理の基本単位になる。 請求先アカウントはプロジェクトと区別して扱う。リソース階層の公式説明

IAMは、誰に、どのロールを、どのリソース階層で与えるかを考える。 上位階層の付与が下位へ影響するため、プロジェクト内の設定だけを見て権限を判断しない。 アプリにはサービスアカウントなどのワークロード用IDを使い、人のアカウントから分離する。 長期鍵ファイルを配る前に、実行環境のIDやWorkload Identity Federationを使えるか検討する。

課題: ポータルの開発プロジェクト、請求先、デプロイ担当、実行サービスアカウントを図にする。 解答例: デプロイ担当とアプリの実行主体を分離し、アプリには教材読取などの用途に限定した権限を付ける。

2. VPCがグローバルである意味

Google CloudのVPCネットワークはグローバル、サブネットはリージョンに属する。 同じリージョンの複数ゾーンにあるVMが同じサブネットを使える。 AWSの「VPCはリージョン、サブネットはAZ」という図をそのまま使わない。VPCの公式仕様

グローバルVPCだからといって、すべてのデータが世界中に複製されるわけではない。 VM、DB、バケット、実行サービスの配置と冗長化は個別に決める。 ファイアウォールルール、経路、外部IP、プライベートアクセスの方式を合わせて接続性を確認する。

プロジェクト
  ├─ VPC(グローバル)
  │    ├─ リージョンAのサブネット → 複数ゾーンのVM
  │    └─ リージョンBのサブネット → 別地域のVM
  ├─ Cloud Runなどの実行サービス → 必要に応じたVPC接続
  └─ IAMで各資源の操作権限を管理

Cloud Runなどのマネージド実行サービスを、VMと同じようにサブネットへ配置したと考えない。 サービスの入口制御と、サービスからVPC内の宛先へ接続する方法を区別する。

3. 実行基盤とデータ

候補 まず理解すること
Compute Engine VM、イメージ、ディスク、サービスアカウント
Managed Instance Groups 同じ定義からVMを管理し、配置・ヘルスチェック・スケールを設計
Cloud Run コンテナ実行、入口、実行ID、同時実行、スケール、外部接続
GKE Kubernetesの管理範囲、ワークロード、更新、権限
Cloud Storage オブジェクト、ロケーション、アクセス、ライフサイクル
Cloud SQL RDBのエンジン、接続、認証、可用性、バックアップ
Firestore ドキュメントとクエリからの設計、索引、整合性、費用
BigQuery 分析用のデータ処理。日常の進捗更新DBと役割を分ける

ポータルではCloud Run + Cloud SQL + Cloud Storageを最初の候補にする。 アプリの自動スケールでDB接続が増えすぎないよう、最大インスタンス数、同時実行、接続プールを一緒に検討する。 サーバーレス側が増やせることと、DBが処理を受け止められることは別問題。

Pub/Subは非同期のメッセージ配信に使う候補。教材更新イベントから後続処理を分離する場合、再配信と重複、失敗時の保管・再処理を設計する。 Vertex AIなどのAI領域は、この基盤とIAMを理解してから選択学習に進む。

4. 監視・費用・復旧

Cloud Monitoringで数値を観測し、Cloud Loggingでログを調査する。 Cloud Audit Logsで管理やアクセスに関する記録を扱うが、ログ種別、有効化の要否、保持、閲覧権限を確認する。 Secret Managerで秘密情報、Cloud KMSで暗号鍵、Cloud Billingで費用を管理する構成を検討する。

ログが出ていても、必要な事象を記録していなければ障害原因は分からない。 ポータルでは要求ID、処理の種類、失敗した依存先を追えるようにし、個人情報や認証情報をログへ出さない。 予算通知を設定しても支出が強制停止されると考えず、利用上限や資源の管理を別に設計する。

Cloud SQLの可用性構成とバックアップ復旧を区別する。 教材側の保存ロケーション・保護と、進捗側の復元時点が揃うかも確認し、復元後に参照できない教材がないか検証する。

5. 設計演習

  1. プロジェクト、実行主体、VPC、サブネット、データの配置を描く。
  2. Cloud RunからCloud SQLとCloud Storageへ接続するための、ネットワークと認証の要件を分ける。
  3. アクセスが10倍になったとき、実行基盤・DB接続・ログ量・費用のどこが増えるかを書く。
  4. 教材の読取だけを許したアプリが、削除を試みた場合の期待結果を書く。
  5. 復元先を用意してから利用再開までの手順を並べる。

解答例: 開発専用プロジェクトにCloud Run、Cloud SQL、Cloud Storageを置く。 実行サービスアカウントに必要な操作だけ許し、DB接続の経路とDB側認証を別に設計する。 最大スケールとDB接続数の予算を揃え、応答遅延と接続失敗を監視する。 教材削除は拒否が期待結果。復旧ではDBだけでなくアプリの接続先と教材参照も検証する。

理解度チェック

問い 解答の要点
プロジェクトと請求先アカウントは同じか 別の管理対象。関連付けを確認する
VPCがグローバルならDBも自動で多地域化するか しない。各資源の配置と複製を別に設計する
サービスアカウントを作れば安全か 作成だけでは不十分。付与権限、利用主体、鍵管理が必要
Cloud Runがスケールすれば性能問題は解消するか DB接続や外部APIなどが詰まる可能性がある
BigQueryを進捗更新DBと同じ用途で選んでよいか 分析とトランザクションの要求を分けて比較する

次: 類似サービスと設計の違い