模擬問題集 › GCP-PCD › 練習問題 14

GCP-PCD 練習問題 14|スケーラブルで安全かつ信頼性の高いクラウドネイティブ アプリケーションの設計

Professional Cloud Developer・無料公開(全 200 問中 15 問を無料公開中)

問題
あなたはカスタムのジョブ スケジューラを開発しています。このスケジューラには、実行中の状態(削除、停止、一時停止されていない状態)にあるすべての Compute Engine VM のエントリを保持する永続キャッシュが必要です。ジョブ スケジューラはこのキャッシュを確認し、キャッシュ内の利用可能な Compute Engine VM にのみジョブを送信します。利用可能な Compute Engine インスタンスのキャッシュが古くならない(最新の状態が保たれる)ようにする必要があります。どうすればよいですか?

選択肢と解説

  • 1
    組織レベルの Cloud Storage ログシンクを、Compute Engine の監査ログイベントを取得するフィルタを付けて設定する。Cloud Storage バケットが更新されたときに実行される Eventarc トリガーを構成し、これらのイベントをアプリケーションに送信してキャッシュを更新する。
  • 2
    アセットタイプ フィルタを compute.googleapis.com/Instance に設定した、挿入イベントと削除イベントの Cloud Asset Inventory リアルタイム フィードを設定する。これらのイベントをアプリケーションに送信してキャッシュを更新する Eventarc トリガーを構成する。
  • ✓
    組織レベルの Pub/Sub ログシンクを、Compute Engine の監査ログイベントを取得するフィルタを付けて設定する。これらのイベントをアプリケーションに送信してキャッシュを更新する Eventarc トリガーを構成する。
  • 4
    組織レベルの BigQuery ログシンクを設定する。アプリケーションが 1 分ごとにこの BigQuery テーブルにクエリを実行して直近 1 分間のイベントを取得し、キャッシュを更新するように構成する。

解説

【正解】C

【0からの解説】
①前提知識
・Cloud 監査ログ(Cloud Audit Logs):Compute Engine では、VM の作成(insert)・削除(delete)・停止(stop)・起動(start)・一時停止(suspend)・再開(resume)などの API 操作が管理アクティビティ監査ログとして、また Google による自動的な停止(プリエンプションやホスト メンテナンスなど)がシステム イベント監査ログとして記録されます。
・ログシンク(Log Router のシンク):Cloud Logging に届いたログを、フィルタ条件で選んで Cloud Storage・BigQuery・Pub/Sub などの宛先へ転送する仕組みです。組織レベルで作成すれば組織内の全プロジェクトのログを集約できます。宛先が Pub/Sub の場合はログがほぼリアルタイムにメッセージとして発行されますが、Cloud Storage の場合はファイルとしてまとめて(バッチで)書き出されるため遅延があります。
・Eventarc:Pub/Sub トピックのメッセージなどのイベントを受け、Cloud Run などのターゲットへ配信するイベント ルーティング サービスです。
・Cloud Asset Inventory のリアルタイム フィード:指定したアセットタイプの変更を Pub/Sub トピックに通知する機能で、条件(CEL 式)で通知するイベントを絞り込めます。

②要件と制約の整理
・キャッシュに置くのは「実行中(削除・停止・一時停止されていない)」の VM だけ。つまり作成・削除だけでなく、停止・一時停止・再開といった「状態の変化」も漏れなく捉える必要があります。
・キャッシュが古くならないこと → ポーリングではなく、変化をほぼリアルタイムに受け取るイベント駆動が望ましい。

③正解がどう満たすか
組織レベルの Pub/Sub ログシンクで Compute Engine の監査ログイベントを抽出すれば、VM の作成・削除に加えて停止・一時停止・再開・プリエンプションなどの状態変化を含むすべてのイベントが、発生とほぼ同時に Pub/Sub へ発行されます。Pub/Sub トピックをイベント ソースにした Eventarc トリガーでアプリケーション(例: Cloud Run 上のキャッシュ更新処理)へ届ければ、イベントのたびにキャッシュを更新でき、キャッシュが古くなることを防げます。

【誤りの選択肢】
A:Cloud Storage を宛先とするログシンクは、ログを一定間隔でまとめてファイルとして書き出すため、イベント発生からキャッシュ更新まで大きな遅延が生じ、キャッシュが古くなります。さらにファイル単位の更新通知からイベントを取り出す処理も必要になり、構成が複雑です。
B:フィードを「挿入イベントと削除イベント」に限定しているため、VM の停止・一時停止・再開といった状態変化(アセットの更新)を捉えられません。停止された VM がキャッシュに残り続け、そこへジョブが送られてしまうため、「実行中の VM のみ」という要件を満たしません。
D:BigQuery シンクを 1 分ごとにポーリングする方式では、最大で 1 分以上キャッシュが古いままになるうえ、ストリーミング取り込みの遅延や毎分のクエリ費用も発生します。イベント駆動の C に比べて鮮度・コストの両面で劣ります。

【参考】
ログエントリを転送する | Cloud Logging
イベント プロバイダと宛先 | Eventarc
← 練習問題 13練習問題 15 →
GCP-PCD の模擬問題集は全 200 問

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

GCP-PCD の模試を受ける料金プランを見る

GCP-PCD の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15