この記事では、GCP の認定試験である Associate Cloud Engineer の模擬試験の解説をします。
模擬試験終了後に簡易的な解説は表示されますが、もっと汎用的な関連知識を深めることを目的としています。

設問1:IAM に関する出題

Googleが推奨する方法

というのは「 最小限の権限 を与える」というものです。
AppEngine には、 1つのサービスに対して複数のバージョン をデプロイすることができます。
このバージョンを新しく作成するためには、 appengine.versions.create の権限を持った役割が必要です。
AppEngineの役割 のうち、この権限を持ったなるべく小さい役割が正解となります。

設問2:課金の自動通知に関する出題

予算を設定して到達度に応じてアラートを鳴らすことができる、ということがわかっていれば良いです。
予算の設定について補足をします。

予算は単一のプロジェクトに対してのみ適用できるわけではありません。

  • 複数のプロジェクトを合算する
  • 特定のサービスに絞る
  • 特定のlabelを持つサービスに絞る
    といった柔軟な設定が可能です。下に参考画像を掲載しておきます。

設問3:bqコマンドのプロジェクト設定に関する出題

bq config というコマンドはありません。

$ bq config --help

FATAL Command 'config' unknown
Run 'bq.py help' to get help

Cloud Storageを操作するgsutilにも同様のことが言えますが、これらの関連コマンドが参照するプロジェクトはgcloud configで設定したものが適用されます。
gcloud config set project <PROJECT_ID> でこれらのコマンドが利用するデフォルトのGCPプロジェクトを指定することができます。

設問4:gcloudコマンドのデフォルト設定に関する設問

先程のGCPプロジェクトの他にも gcloud config set では様々なデフォルト設定が可能です。
リージョンやゾーンもそれらのうちの1つで、1度は gcloud config set --helpで設定できる項目の概要を眺めておくことをお勧めします。

更に、それらの設定をgcloud config configurations createで保存して、作業状況に応じてconfigurationを切り替えるとスムーズにgcloudコマンドが利用できるでしょう。
筆者は複数のGoogleアカウントやサービスアカウントを使い分ける際によくconfigurationを利用しています。

設問5:Google Cloud の利用料金見積もりに関する出題

AppEngineに限りませんが、GCPで利用料金を見積もるためには、 Pricing Caliculatorを利用します。
まるでAppEngine専用の計算ツールがあるかのような書き方がされていますが、そのようなものはありません。

Pricing Caliculatorで作成した見積もりは、専用のリンクで保存できるので、他人と共有する際にとても重宝しています。

設問6:大量なデータ処理のプロダクト選択に関する出題

問題文で重要なキーワードがいくつかあります。

  1. タイムスタンプつきのデータ
  2. データ量はペタバイト単位
  3. データに対する高速な書き込み処理と変更処理

BigTableやBigQueryは、データのタイムスタンプがクエリがスキャンするデータ容量などに良い影響を与えるため、このようなデータを保存するのに適しています。
ペタバイト単位のデータを扱えるのも、これら2つのサービスの特徴なので、BigQueryとBigTableの違いが問われている問題でしょう。

ポイントは、書き込み/変更処理に対してパフォーマンスを要求されている点です。
この問題のように、適切なストレージサービスを選択させる問題は定番なので、便利なフローチャートを貼っておきます。

BigTableは、ストレージやコンピューティングのコストがBigQueryに比べて高価であるのに対して、読み取り/書き込み両方に対して高速なスループットを発揮することができる、という点で優位性があります。
そのため、書き込みに対してのスループットを求められているケースではBigTableを利用しましょう。

設問7:Cloud Storageのオブジェクトライフサイクルに関する出題

この問題のポイントは以下の点です。

  1. 世界中から利用されるデータ
  2. 30日を過ぎるとファイルが自動削除

選択肢の中で、グローバルに高速なファイル配信が可能なのはCloud Storageのみです。
他のサービスはすべて特定のリージョンにのみデータを保存するサービスなので、リージョン外からのアクセスに対応することが難しいです。
また、Cloud Storageの オブジェクトのライフサイクル機能 を使えば、保存されるファイルに対して自動削除などの設定を行うことが可能です。

設問8:Compute Engineの自動スケーリングに関する出題

インスタンステンプレートで定義されたアプリケーションを、スケーラビリティを担保するのに最も簡単な方法は、マネージドインスタンスグループを利用することです。
非マネージドインスタンスグループを利用するのは、オートスケールが必要ないVMで構成されたアプリケーションをGoogle Cloud Load Balancingなどで提供する場合です。

設問9:Kubernetes Engineにおけるログ出力に関する出題

Kubernetes Engineでクラスタを作成する際に、Cloud Logging(旧Stackdriver Logging)が有効になっていると、コンテナの標準出力がCloud Loggingに出力されるようになります。
このオプションはデフォルトで有効になっています。

加えて、Cloud Loggingはログのフィルタ式によって抽出したログを PubSub, Cloud Storage, BigQueryなどに送信することができるため、これら2つを選択するのが正解となります。

設問10:Kubernetes Engineのクラスタオートスケーリングに関する出題

まず、Kubernetes Engineの問題でマネージドインスタンスグループやCompute Engineを操作するような選択肢はすべて不正解です。
KubernetesのAPIを利用してGCPのサービスが起動するのが魅力であるのに、それを意図的に損なうようなことをしてはいけません。
GKEのクラスタオートスケーリングを有効にするのが最も適した方法になります。


後編へ続く