Google Cloud 認定 Professional Cloud Architect 本番レベル問題 Part2 4~6問目（概要欄に問題集のリンクあり）

## この記事の目的
Clouds StarterがKindle・Udemyにてしている問題集の一部を公開します。
この記事の問題を解くことで、本番レベルの問題に慣れるだけでなく、どういった観点が本番で問われるかを確認することができます。

## 本シリーズのリンク
Part1：https://qiita.com/clouds-starter/items/e59979b04e4089243342/
Part3：https://qiita.com/clouds-starter/items/6d1170823ed2652ad47a/

## 問題集（Udemy・Kindle）
### Udemy 
【Google Cloud】
Associate Cloud Engineer：https://www.udemy.com/course/google-cloud-associate-cloud-engineer-z/?referralCode=6F46C7AAC19A25BE1728
Professional Cloud Architect：https://www.udemy.com/course/google-cloud-professional-cloud-architect-i/?referralCode=2533A3214C4439F57A42
Professional Data Engineer：https://www.udemy.com/course/google-cloud-professional-data-engineer-s/?referralCode=B50B6D7F8849CCCF6B6E

【AWS】
Cloud Practitioner：https://www.udemy.com/course/2022aws-10-650/?referralCode=6B63C1D36EA602B66A02
Machine Learning：https://www.udemy.com/course/aws-30-b/?referralCode=62C2C02B9127E6DFE9F6

### Kindle
Google Cloud認定Professional Cloud Architect：https://amzn.to/3GQw2XT
Google Cloud認定Professional Data Engineer：https://amzn.to/339Az9Z

その他問題集：
https://amzn.to/34LKAu9

##問題（#4~#6)
###Q4：
あなたは、金融機関で住宅ローンの稟議書をCloud Storageに保存しています。承認書類に変更があった場合は、別の承認ファイルとしてアップロードする必要があります。新たにアップロードされたファイルは5年間は削除や上書きができないようにしたいと考えています。
要件を達成するためにするべきことは何ですか？

A.  バケットに 5 年間の保持ポリシーを作成する。保持ポリシーにロックを作成する。
B.  バケットレベルの均一なアクセス権でバケットを作成し、サービスアカウントにオブジェクトライターの役割を与えます。新しいファイルのアップロードには、このサービスアカウントを使用する。
C.  バケットの暗号化には、お客様が管理する鍵を使用する。鍵は5年後にローテーションする。
D.  細かなアクセス制御が可能なバケットを作成し、サービスアカウントにオブジェクトライターの役割を付与する。新しいファイルのアップロードには、このサービスアカウントを使用する。
 

####解説：
バケットロック機能を使用すると、バケット内のオブジェクトの保持期間を制御するデータ保持ポリシーを Cloud Storage バケットに構成できます。
また、データ保持ポリシーをロックして、ポリシーの変更や削除を防止することもできます。

バケットに保持ポリシーを追加して、保持期間を指定できます。
- バケットに保持ポリシーがない場合は、バケット内のオブジェクトをいつでも削除または置き換えできます。
- バケットに保持ポリシーが設定されている場合、バケット内のオブジェクトを削除または置き換えできるのは、所定の保持期間を経過した後です。
- 保持ポリシーは、バケットに追加された新しいオブジェクトだけでなく、バケット内の既存のオブジェクトにさかのぼって適用されます。

保持ポリシーは、バケットに永久に設定されるようにロックできます。
- 保持ポリシーをロックすると、そのポリシーを削除したり、保持期間を短縮したりすることはできません。
- バケット内のすべてのオブジェクトが保持期間を満たしていない限り、ロックされた保持ポリシーのバケットを削除することはできません。
- ロックされた保持ポリシーの保持期間は延長できます。
- 保持ポリシーのロックは記録保持規制の遵守に役立ちます。

今回の例であれば、ファイルは5年間の削除や上書きを禁止する必要があり、そのルール自体も制御する必要があるので、バケットロック機能は最適です。

したがって正解は以下の通りです。
「バケットに 5 年間の保持ポリシーを作成する。保持ポリシーにロックを作成する」

####参照：
https://cloud.google.com/storage/docs/using-bucket-lock


####正解： A


####Q5：
あなたのチームのシニアエンジニアが、新しいアプリケーションの設計で、ウェブサーバーにロードバランスされていないWebSocketとHTTPセッションを使用していると話します。あなたは、彼のアプリケーションがGoogle Cloud Platform上で適切に動作することを保証するために、彼を支援したいと考えています。
要件を達成するためにするべきことは何ですか？

A.  エンジニアがWebSocketのコードをHTTPストリーミングを使用するように変換できるようにする
B.  セキュリティチームと一緒に、WebSocket接続の暗号化要件を確認する
C.  クラウドオペレーションチームとエンジニアがロードバランサーのオプションについて話し合う
D.  WebソケットとHTTPセッションに依存しない分散型ユーザーセッションサービスを使用するように、エンジニアがアプリケーションを再設計するのを支援する
 

####解説：
Google Cloud Platform（GCP）のHTTP（S）ロードバランシングは、インスタンスに向けられたHTTP（S）リクエストのグローバルなロードバランシングを提供します。
HTTP(S)ロードバランサーは、WebSocketプロトコルをネイティブにサポートしています。

したがって正解は以下の通りです。
「クラウドオペレーションチームとエンジニアがロードバランサーのオプションについて話し合う」

####参照：
https://cloud.google.com/compute/docs/load-balancing/http/

####正解： C


####Q6：
お客様の会社では、Compute Engine上で動作するエンタープライズアプリケーションがあり、高可用性と高パフォーマンスが求められています。このアプリケーションは、同じリージョンの2つのゾーンにある2つのインスタンスに、アクティブ - パッシブモードで展開されています。このアプリケーションは、データを永続ディスクに書き込みます。1つのゾーンで障害が発生した場合、そのデータは他のゾーンにあるもう1つのインスタンスですぐに利用できるようにする必要があります。あなたは、ダウンタイムとデータ損失を最小限に抑えながら、パフォーマンスを最大化したいと考えています。
要件を達成するためにするべきことは何ですか？

A. 
1.最初のインスタンスにパーシステントSSDディスクを装着する。
2.1時間ごとにスナップショットを作成する。
3.ゾーン障害が発生した場合、作成したスナップショットからデータが来る2つ目のインスタンスにパーシステントSSDディスクを再作成する。
B. 
1.Cloud Storageのバケットを作成する。
2. gcs-fuse を使ってバケットを 1 つ目のインスタンスにマウントする。
3. ゾーン障害が発生した場合は、Cloud Storageのバケットを gcs-fuse で 2 番目のインスタンスにマウントする。
C. 
1.リージョナル SSD 永続ディスクを 1 つ目のインスタンスに取り付けます。
2. ゾーン障害が発生した場合、ディスクをもう一方のインスタンスに強制的に取り付けます。
D. 
1.最初のインスタンスのディスクに、ローカルSSDを取り付けます。
2. 1時間ごとにrsyncコマンドを実行する。ターゲットは、2番目のインスタンスに接続された永続的なSSDディスクです。
3. ゾーンが停止した場合には、2つ目のインスタンスを使用する。
 

####解説：
リージョン永続ディスクのストレージ品質は、ゾーン永続ディスクと同様です。
ただし、リージョン永続ディスクには、同じリージョン内の 2 つのゾーン間でのデータの耐久性の高いストレージとレプリケーションが用意されています。

Compute Engine で堅牢なシステムや高可用性サービスを設計する場合は、リージョン永続ディスクを使用するだけでなく、スナップショットを使用してデータをバックアップするなど、他のベスト プラクティスを取り入れる必要があります。
リージョン永続ディスクは、リージョン マネージド インスタンス グループと連携するように設計されています。

万一ゾーンが停止した場合、--force-attach フラグを使用することにより、リージョン永続ディスクで実行されているワークロードを別のゾーンにフェイルオーバーできます。
--force-attach フラグを使用すると、元の VM が使用できないためにディスクをその VM から切断できない場合でも、リージョン永続ディスクをスタンバイ VM インスタンスにアタッチできます。

したがって正解は以下の通りです。
「1.リージョナル SSD 永続ディスクを 1 つ目のインスタンスに取り付ける
2. ゾーン障害が発生した場合、ディスクをもう一方のインスタンスに強制的に取り付ける」

####参照：
https://cloud.google.com/compute/docs/disks/repd-failover
https://cloud.google.com/compute/docs/disks#repds

####正解： C