Google PCD: アプリケーションデータ、状態、ストレージパターン — 学習ガイド

こちらの一部です: Google Professional Cloud Developer — 学習ガイド. 検証済みの解答で練習: Google試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.

概要

Google Cloud 上の最新のアプリケーションでは、レイテンシ、整合性、スケーラビリティ、コスト、運用の複雑さのバランスを取るために、複数のデータストアを組み合わせて使用することが日常的に行われています。目的に合ったサービスとパターンを選択し、それらの障害モードを理解することは、回復力のある設計の中心となります。このセクションでは、Cloud SQL、Cloud Spanner、Firestore、Bigtable、Memorystore、Cloud Storage に関する実践的なガイダンスを要約し、移行、パーティショニング、データ保護について説明します。

Cloud SQL 上のリレーショナルデータ

Cloud SQL は、使い慣れた RDBMS のセマンティクスを持つ、マネージドの MySQL、PostgreSQL、SQL Server を提供します。

一般的な障害モードと緩和策:

Cloud Spanner による地球規模のリレーショナル

Cloud Spanner は、グローバルな整合性オプションを備えた水平方向のスケーラビリティを提供します。

トレードオフ:

NoSQL オペレーショナルストア: Firestore と Bigtable

クエリパターンとスループットプロファイルに合った NoSQL モデルを選択します。

キャッシュとオブジェクトストレージのパターン

undefined

-

undefined

undefined

移行、一貫性、パーティショニング、データ保護

実践的な問題シナリオ

Aurora Outfittersは、モノリシックなeコマースプラットフォームをGoogle Cloudに移行しています。彼らは次のことを行う必要があります: 1) リスクを軽減するためにMySQLをリフトアンドシフトする、2) アプリに過負荷をかけずに500MBの製品メディアアップロードを処理する、3) 製品カタログの読み取りスループットをスケールさせる、4) ピークセール時にユーザーごとのレート制限を強制する。

アプローチ:

  1. MySQLをプライベートIPとリージョンHAを備えたCloud SQLに移行する

    • 根拠: プライベートIPにより、パブリックへの公開とIP許可リストが不要になり、GKEやCompute Engineからの安全な接続が簡素化されます。リージョンHAはゾーン障害から保護します。フェイルオーバー時には短い接続断が予想されるため、アプリはリトライ可能なトランザクションと再接続ロジックを実装します。
  2. 自動バックアップとPITRを有効にし、復元を検証する

    • 根拠: 自動バックアップとトランザクションログにより、ユーザーまたはアプリケーションのエラーからのポイントインタイムリカバリが可能になります。毎週、非本番インスタンスへのスケジュールされた復元を実行することで、バックアップが使用可能であることを検証し、RTOを測定します。
  3. カタログ読み取り用にリードレプリカを追加する

    • 根拠: カタログクエリをリードレプリカに移動することで、プライマリでの競合が減少します。アプリは、書き込み後の読み取りが必要な場合(カート/チェックアウト)はプライマリから読み取り、カタログ閲覧にはレプリカから読み取ります。この際、レプリカラグのトレードオフを理解しておく必要があります。
  4. アプリケーション側の接続プーリングを導入し、同時実行数を制限する

    • 根拠: PgBouncer/HikariCPは接続を制限して再利用し、オートスケーリングやHAフェイルオーバー中の接続ストームを回避します。プールは最大ポッド数ではなくCPUコアに合わせてサイズ設定され、過負荷を防ぎます。
  5. 署名付きURLと再開可能なアップロードを使用して、メディアのアップロードをCloud Storageにオフロードする

    • 根拠: アプリは、クライアントが直接アップロードするための短命の署名付きURLを発行します。再開可能なアップロードは、信頼性の低いネットワークに対応します。メディアサービスはPub/Subのファイナライズ通知をリッスンして、処理をトリガーします。事前条件ヘッダー(ifGenerationMatch)は、上書きの競合から保護します。
  6. ページキャッシュ、セッション、レート制限のためにMemorystore for Redisを実装する

    • 根拠: リードスルーキャッシュは、更新頻度に合わせたTTLを持つ製品ページのデータベース負荷を削減します。セッションデータは短いTTLでRedisに一時的に保持され、アプリケーションの状態はCloud SQLに残ります。固定ウィンドウのトークン戦略では、INCR/EXPIREを使用してユーザーごとのリクエスト上限を設定します。キャッシュは非権威的なものとして扱われ、アプリはキャッシュの損失を許容し、ミス時に再生成します。
  7. 高スループットのカタログ閲覧機能のために、Cloud Bigtableへの段階的な移行パスを準備する

    • 根拠: トラフィックが増加するにつれて、非正規化され、読み取りに最適化されたカタログビューをBigtableに移行します。行キーは、ホットスポットを発生させずに書き込みを分散させ、時間順のリストをサポートするために、bucket#category#reverse_tsとして設計されます。
  8. スキーマ移行とロールバックの手順を確立する

    • 根拠: 移行は追加的に行います。列/インデックスを追加し、べき等なジョブでバックフィルし、新旧両方を読み書きするコードをデプロイし、後で古いフィールドを削除します。フィーチャーフラグは新しいパスを保護し、ロールバックは破壊的なDDLなしで新しいフィールドへの書き込みを無効にします。
  9. データのライフサイクルと保護ポリシーを設定する

    • 根拠: Cloud Storageバケットは、ライフサイクルルールを使用してサムネイルをよりコールドなストレージに移行し、古い一時アップロードを削除します。Cloud SQLのバックアップと(採用された場合の)Spanner/Bigtableのバックアップは、検証のために定期的に復元されます。監査ログは削除ワークフローをキャプチャし、BigtableのGCはコンプライアンスドキュメントで非同期であることが認められています。
  10. クライアントとサーバーのリトライを切り捨て指数バックオフで実装する

    • 根拠: Cloud Storageはスパイク時に429/5xxを返す可能性があります。バックオフは負荷を平滑化し、エラー率を低減します。データベースとキャッシュの操作では、特にフェイルオーバーやネットワークの瞬断時に安全なリトライを保証するために、べき等性キーを使用します。

この計画は、プライベート接続とHAを備えたCloud SQLによる即時のリスク削減を実現し、キャッシュと署名付きURLアップロードによってアプリの応答性とコスト効率を維持し、トラフィックの増加に応じて読み取りスループットとデータ復元性をスケールさせるための明確な道筋を構築します。


API設計、統合、イベント駆動開発 · すべてのドメイン · ID、認証、アプリケーションセキュリティ

これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

試験に合格する →

Googleを閲覧 →

Related guides

オールインワンアクセス

1つのサブスクリプション。すべての試験。

すべてのプランで、無制限の回答検索、模擬試験、AI解説、および完全なリソースライブラリが利用可能 — 20以上の言語に対応。

月額
24.87
Just €0.83/day
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

ベストバリュー
12ヶ月
179.87
Just €0.49/daySave 40%
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

✓ 無料プランが含まれています · ✓ いつでもキャンセル可能 · ✓ すべてのプランで製品の全機能が利用可能