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

GCP-PCD 練習問題 10|クラウドネイティブ アプリケーションのデプロイ構成

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

問題
あなたは、Cloud Storage にアップロードされたファイルから情報を取得し、その情報を Bigtable に書き込む Python スクリプトを開発しました。ローカル環境でのテストを完了し、Bigtable ユーザーの IAM ロールを持つ python-script サービス アカウントを作成しました。Google が推奨するプラクティスに従いながら、適切な認証でコードをデプロイしたいと考えています。どうすればよいですか。

選択肢と解説

  • ✓
    1. コードを Cloud Functions にデプロイする。Cloud Storage トリガーを作成する。2. 認証のために IAM バインディングを構成する。
  • 2
    1. コードを Cloud Functions にデプロイする。Cloud Storage トリガーを作成する。2. 認証のためにサービス アカウント キーを作成する。
  • 3
    1. イメージを Cloud Run にデプロイする。サービスを 1 分ごとにトリガーするトリガーを Cloud Scheduler に作成する。2. 認証のために IAM バインディングを構成する。
  • 4
    1. イメージを Cloud Run にデプロイする。サービスを 1 分ごとにトリガーするトリガーを Cloud Scheduler に作成する。2. 認証のためにサービス アカウント キーを作成する。

解説

【正解】A

【0からの解説】
①前提知識:
・Cloud Functions(現 Cloud Run functions):関数単位のコードをデプロイすると、イベントに応じて自動実行されるサーバーレス サービスです。Cloud Storage トリガー(Eventarc 経由の「オブジェクトのファイナライズ」イベントなど)を設定すれば、バケットにファイルがアップロードされた瞬間に関数が起動します。
・サービス アカウントの関連付けと IAM バインディング:Google Cloud 上で動くコードは、リソース(関数や Cloud Run サービス)にサービス アカウントを「関連付ける(ランタイム サービス アカウントとして指定する)」ことで、そのサービス アカウントとして Google Cloud API を呼び出せます。認証情報はメタデータ サーバー経由で自動的に短期トークンとして提供され、アプリケーションのデフォルト認証情報(ADC)がそれを使うため、コード内に鍵を持つ必要がありません。必要な権限は、そのサービス アカウントに IAM ロール(ここでは Bigtable ユーザー)をバインドして与えます。
・サービス アカウント キー:長期間有効な秘密鍵(JSON ファイル)で、漏えいすると悪用されるリスクが高いため、Google は「他に手段がない場合を除き使用しない」ことを推奨しています。

②要件の整理:「Cloud Storage にアップロードされたファイルを処理」=アップロードをきっかけに処理するのが自然。「python-script サービス アカウント(Bigtable ユーザー)を使う」「適切な認証」「Google 推奨のプラクティス」。

③正解の理由:A は、(1) Cloud Functions に Cloud Storage トリガーを設定してアップロードのたびに即座に処理するイベント駆動構成で、ファイルを取りこぼさず無駄な起動もありません。(2) 関数に python-script サービス アカウントを関連付け、IAM バインディングで権限を付与するため、鍵ファイルを使わない安全な認証になります。どちらも Google の推奨に沿っています。

【誤りの選択肢】
B:トリガーの選択は適切ですが、サービス アカウント キーを作成して認証するのは推奨されません。関数にサービス アカウントを関連付ければ鍵なしで認証できるのに、漏えいリスクのある長期鍵を作る理由がなく、鍵のローテーションなどの管理負担も増えます。
C:認証方法(IAM バインディング)は適切ですが、Cloud Scheduler で 1 分ごとにサービスを起動するポーリング方式は、ファイルが無いときも無駄に起動し、アップロードから処理まで最大 1 分の遅延も生じます。さらに、どのファイルが新しく処理済みかを自前で管理する必要があります。Cloud Storage のイベントで直接起動できる A に比べて非効率です(Cloud Run でも Eventarc の Cloud Storage トリガーは使えますが、この選択肢はポーリング方式です)。
D:Cloud Scheduler による 1 分ごとのポーリングという非効率な起動方法と、推奨されないサービス アカウント キーによる認証の両方が問題で、最も不適切です。

【参考】
Cloud Storage イベントからトリガーを作成する | Cloud Run
サービスのサービス ID を構成する | Cloud Run
サービス アカウント キーを管理するためのベスト プラクティス | Identity and Access Management (IAM)
← 練習問題 9練習問題 11 →
GCP-PCD の模擬問題集は全 200 問

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

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

GCP-PCD の無料公開問題

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