基礎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. 設計演習
- プロジェクト、実行主体、VPC、サブネット、データの配置を描く。
- Cloud RunからCloud SQLとCloud Storageへ接続するための、ネットワークと認証の要件を分ける。
- アクセスが10倍になったとき、実行基盤・DB接続・ログ量・費用のどこが増えるかを書く。
- 教材の読取だけを許したアプリが、削除を試みた場合の期待結果を書く。
- 復元先を用意してから利用再開までの手順を並べる。
解答例: 開発専用プロジェクトにCloud Run、Cloud SQL、Cloud Storageを置く。 実行サービスアカウントに必要な操作だけ許し、DB接続の経路とDB側認証を別に設計する。 最大スケールとDB接続数の予算を揃え、応答遅延と接続失敗を監視する。 教材削除は拒否が期待結果。復旧ではDBだけでなくアプリの接続先と教材参照も検証する。
理解度チェック
| 問い | 解答の要点 |
|---|---|
| プロジェクトと請求先アカウントは同じか | 別の管理対象。関連付けを確認する |
| VPCがグローバルならDBも自動で多地域化するか | しない。各資源の配置と複製を別に設計する |
| サービスアカウントを作れば安全か | 作成だけでは不十分。付与権限、利用主体、鍵管理が必要 |
| Cloud Runがスケールすれば性能問題は解消するか | DB接続や外部APIなどが詰まる可能性がある |
| BigQueryを進捗更新DBと同じ用途で選んでよいか | 分析とトランザクションの要求を分けて比較する |
次: 類似サービスと設計の違い