この記事では、GCPの認定試験であるProfessional Cloud Architectの模擬試験の解説をします。
前編はこちら

設問10:VPCネットワークとファイアウォールルールの基本に関する出題

VPCネットワーク内では、例え異なるサブネットワークに仮想マシンを配置しても、ファイアウォールルールはVPCネットワーク全体に適用されるため、アクセス制御のためにサブネットワークを分けることは意味がありません。
仮想マシン内にファイアウォールを構成しても同じことは可能ですが、よりGCPらしい方法でファイアウォールを構築するのであれば、ネットワークタグと併用するのが良いです。
具体的には、インスタンステンプレートにネットワークタグを設定しておけば、そこから作成されたインスタンス全てにネットワークタグを指定したファイアウォールルールが適用されます。
ネットワークタグとファイアウォールの利用については こちら に詳しく解説されています。

設問11:Secret Managerに関する出題

露骨にSecret Managerをアピールしている問題です。
Secret Managerを利用すれば、任意の機密情報をより安全に管理することができます。
例えば、コンテナをデプロイするCICDパイプライン中で、Secret Managerに保存した鍵をコンテナビルド時に含めるようにすれば、機密情報をファイルとして管理する必要がなくなります。

設問12:大量のデータをリアルタイムに処理するアーキテクチャに関する出題

ケーススタディから分析要件を抜粋すると

  • ゲーム アクティビティに基づいて動的にスケールアップまたはスケールダウンする => Dataflow
  • 着信データをゲームサーバーから迅速に直接処理する => PubSub
  • 低速なモバイル ネットワークが原因で遅延したデータを処理する => PubSub + Dataflow
  • 10 TB 以上の履歴データに対してクエリを実行できるようにする => BigQuery
  • ユーザーのモバイル デバイスから定期的にアップロードされるファイルを処理する(保存する) => Cloud Storage
  • となります。

「PubSubで大量のデータを取り込み、Dataflowでスケーラブルに処理をして、BigQueryに保存する」というアーキテクチャは定番中の定番ですので、かならず抑えておきましょう。
遅延するデータの処理について、なぜPubSubとDataflowでそれが実現可能なのかは、DataEngineerの範囲で理解すれば良いことですのでここでは扱いません。

設問13:GCPのプロジェクト分割に関する出題

問題の意図が読めないのですが、GCPであればテスト用のインフラを用意することなく、別の環境(GCPプロジェクト)にほぼ同じものを作ってテストができる、ということを言いたいのだと思います。
オンプレミスサーバを用意したり、本番のインフラに負荷をかけるような選択肢は候補にも上がりませんし、事例ではテストにスケーラビリティを求めているとある、というような消去法でも選択できそうです。

設問14:HTTP(S)負荷分散の特徴に関する出題

必ず覚えておきたいのは、GCPのHTTP(S)負荷分散は、グローバルに単一なIPアドレスを持つということです。
これは、1つのLoadBalancerから、世界中にデプロイした仮想マシンに対してGoogleのネットワークを介して高速にアクセスできることをアピールしている問題でもあります。
つまり、HTTP(S)負荷分散と仮想マシンを利用する組み合わせが正解となるので、Container Registryに保存されたデプロイメントアーティファクト(と問題文と同じように呼ぶことにしますが、もっと一般的な呼称がある気がします)をKubernetes Engineで起動し、HTTP(S)負荷分散と併用するのが正解となります。

ところで、一昔前であればAppEngineとHTTP(S)負荷分散を組み合わせることはできなかったのですが、記事執筆時点(2021年4月)では事情は大きく異なります。
現在は、 Serverless Network Endpoint Group という機能を利用することで、HTTP(S)負荷分散を通してAppEngineやCloud Runのようなサーバーレスなサービスにトラフィックを流すことができます。

このように、問題の回答と実情が異なる場合は結構あるのですが、どう答えるのが良いかは筆者もわかりません。

設問15:IAMに関する出題

セキュリティチームにはリソースの監査、つまり閲覧のみを付与すれば良いので、組織閲覧者とプロジェクト閲覧者が適切です。
ちなみに、「プロジェクト閲覧者」と「プロジェクト参照者」の違いは、前者はプロジェクトの中のリソースを閲覧できるのに対して、後者はプロジェクトが存在することまではわかりますが、中にどんなリソースがあるのかまではわかりません。

設問16:コスト削減と課金データのエクスポートに関する出題

インスタンスを停止していれば、永続ディスクについては課金が発生しますが、vCPUやメモリに対しては課金が発生しません。
筆者は、開発マシンに対しては朝9時に起動して夜10時に停止するというCloud Schedulerを設定しています。
また、GCPでは課金データをBigQueryへエクスポートすることができ、これをデータポータルで可視化することで、どの製品にいくら使っているのかを整理することもできます。

設問17:ディスク容量とIO性能に関する出題

vCPUやメモリを増やすことはもちろんパフォーマンス向上に繋がるのですが、この問題では最もコスト効率の良い方法を求められています。
元々比較的大きなマシンタイプが利用されていることを鑑みるに、ストレージ容量に注目できるかを問われている問題でもあります。
GCPでは、 ストレージのIO性能 はそのストレージ容量に大きく依存します。
そのため、比較的小さなストレージ容量を増やす選択肢を選ぶのが正解となります。