この記事では、GCPの認定試験であるProfessional Cloud Developerの模擬試験の解説をします。 模擬試験終了後に簡易的な解説は表示されますが、もっと汎用的な関連知識を深めることを目的としています。 前編はこちら 目次 Toggle 設問15:GCPにおけるプロジェクト分割に関する出題設問16:AppEngineのトラフィック分割に関する出題設問17:GCPが関係ない出題設問18:AppEngineのトラフィック分割に関する出題設問19:Cloud StorageのStorage Classに関する出題設問20:Cloud Tasksの一般的なユースケースに関する出題設問21:BigQueryにおけるUNNESTの使いかたに関する出題設問22:マネージドインスタンスグループのトラブルシューティングに関する出題設問23:PubSubのSubscriptionに関する出題設問24:ネットワークのトラブルシューティングに関する出題設問25:VMインスタンスのログをLoggingに出力する方法に関する出題設問26:よりリアルタイムにデータを分析する方法に関する出題設問27:gsutilコマンドに関する出題設問28:GCPが関係ない出題 設問15:GCPにおけるプロジェクト分割に関する出題 もちろん状況に依るのですが、一般的にはアプリケーション毎、リリース段階毎に分けるのが適切です。 チームであればグループを利用し、部門などのより大きな組織単位であればフォルダを利用するといった、なるべく大きな範囲でまとめてなるべく小さな権限を与えるのがコツです。 設問16:AppEngineのトラフィック分割に関する出題 AppEngineのトラフィック分割を利用すれば、一部のトラフィックのみを新しいバージョンに割り当てることができます。 新しいバージョンでエラーが検出されなければ、全てのトラフィックを新しいバージョンに割り当てるカナリアリリースを採用できます。 設問17:GCPが関係ない出題 設問18:AppEngineのトラフィック分割に関する出題 サービスを別にしてしまうとURLが変わるため、コンバージョン率のテストには不向きです。 設問19:Cloud StorageのStorage Classに関する出題 Nearline StorageやColdline Storageはオブジェクトの保存コストは安いものの、データのアクセスに対して課金が発生します。そのため、頻繁にアクセスされるデータの保存場所としては不適切です。 また、Regional StorageはMulti-Regionalに比べてコストが安いです。 設問20:Cloud Tasksの一般的なユースケースに関する出題 非同期のタスク実行と書かれた時点でCloud Tasksを連想できるようにしましょう。 設問21:BigQueryにおけるUNNESTの使いかたに関する出題 BigQueryで配列形式のデータを扱ったことがあれば即答できそうです。 具体的な使い方はこちら 設問22:マネージドインスタンスグループのトラブルシューティングに関する出題 アプリケーションが正常に利用できるのにインスタンスが再起動を繰り返す場合、その理由のほとんどはGCPのヘルスチェックからのFirewallを許可していないことです。 具体的には 35.191.0.0/16 と 130.211.0.0/22 からアプリケーションのポートへのリクエストを許可するFirewallルールを作成する必要があります。 設問23:PubSubのSubscriptionに関する出題 PubSubのTopicにPublishされたメッセージは、Topicに紐づく各Subscription毎に1回以上配信されます。 Cloud StorageとBigQueryそれぞれへの書き込みに失敗した際にリトライするために、データシンク毎にSubscriptionを作成するのが適切です。 Topicが分かれている必要は一切ありません。 設問24:ネットワークのトラブルシューティングに関する出題 ネットワークに関する問題を調査する際にはVPCフローログを利用するのが便利です。 利用してみればわかるのですが、大量のログが吐き出されることになるので、長期的に利用する場合はログの量に対する課金に注意してください。 設問25:VMインスタンスのログをLoggingに出力する方法に関する出題 コンテナアプリケーションであれば多くの場合では標準出力にログを出力するだけでLoggingに保存されますが、VMで起動するアプリケーションはその限りではありません。 VMのログをLoggingに取り込むには、Loggingエージェントを利用しましょう。 VMのシステムイベントログは、VMのライブマイグレーションなどのログが吐き出されるものであり、アプリケーションのログではありません。 設問26:よりリアルタイムにデータを分析する方法に関する出題 筆者は間違えました。 ログの分析なのだからLoggingからBigQueryへ同期すれば良いと想ったのですが、問題ではどのような分析を行うかの指定がなく、リアルタイムであることを強調していました。 PubSubを利用すれば、ログをリアルタイムにTopicへPublishし、そのシンク先で好きな分析をリアルタイムに行うことができます。 設問27:gsutilコマンドに関する出題 gsutilコマンドを利用したことがあるかどうかだけを問われています。 他の方法ではGCSへオブジェクトを転送することはできません。 設問28:GCPが関係ない出題 アプリケーションのバックエンドでエラーが発生したので普通にエラーレスポンスを返しましょう。