Professional Cloud Developer

Question 46

あなたはGoogle Kubernetes Engine (GKE) でホストされるJPEG画像リサイズAPIを開発しています。このサービスの呼び出し元は、同じGKEクラスタ内に存在します。クライアントがサービスのIPアドレスを取得できるようにしたいと考えています。 どうすべきですか?

A.
GKE Serviceを定義します。クライアントは、Cloud DNSのAレコードの名前を使用して、サービスのクラスタIPアドレスを見つける必要があります。
B.
GKE Serviceを定義します。クライアントは、URLにサービス名を使用してサービスに接続する必要があります。
C.
GKE Endpointを定義します。クライアントは、クライアントコンテナ内の適切な環境変数からエンドポイント名を取得する必要があります。
D.
GKE Endpointを定義します。クライアントは、Cloud DNSからエンドポイント名を取得する必要があります。
Question 47

あなたは、Cloud Buildを使用して継続的インテグレーションパイプラインを構成し、新しいコンテナイメージのGoogle Kubernetes Engine(GKE)へのデプロイを自動化しています。パイプラインは、ソースコードからアプリケーションをビルドし、個別のステップで単体テストと統合テストを実行し、コンテナをContainer Registryにプッシュします。アプリケーションはPythonウェブサーバー上で動作します。 Dockerfileは以下の通りです: ```dockerfile FROM python:3.7-alpine COPY . /app WORKDIR /app RUN pip install -r requirements.txt CMD [ "gunicorn", "-w 4", "main:app" ] ``` Cloud Buildの実行が予想以上に時間がかかっていることに気づきました。ビルド時間を短縮したいと考えています。どうすべきですか?(2つ選択)

A.
Cloud Buildの実行用に、より高いCPUを持つ仮想マシン(VM)サイズを選択する。
B.
VPC内のCompute Engine VM上にContainer Registryをデプロイし、最終イメージの保存に使用する。
C.
ビルド構成ファイルで `--cache-from` 引数を使用して、後続のビルドのためにDockerイメージをキャッシュする。
D.
Dockerfileのベースイメージを `ubuntu:latest` に変更し、パッケージマネージャーユーティリティを使用してPython 3.7をインストールする。
E.
アプリケーションのソースコードをCloud Storageに保存し、パイプラインが `gsutil` を使用してソースコードをダウンロードするように構成する。
Question 48

あなたは、バージョン管理システム、Cloud Build、Container Registryで構成されるCI/CDパイプラインを構築しています。リポジトリに新しいタグがプッシュされるたびに、Cloud Buildジョブがトリガーされ、新しいコードで単体テストを実行し、新しいDockerコンテナイメージをビルドしてContainer Registryにプッシュします。パイプラインの最後のステップでは、新しいコンテナを本番のGoogle Kubernetes Engine(GKE)クラスタにデプロイする必要があります。以下の要件を満たすツールとデプロイ戦略を選択する必要があります。 • ダウンタイムが発生しないこと • テストが完全に自動化されていること • ユーザーへのロールアウト前にテストが可能であること • 必要に応じて迅速にロールバックできること どうすればよいですか?

A.
新しいコードのA/Bテストとして構成されたSpinnakerパイプラインをトリガーし、成功した場合にコンテナを本番環境にデプロイする。
B.
新しいコードのカナリアテストとして構成されたSpinnakerパイプラインをトリガーし、成功した場合にコンテナを本番環境にデプロイする。
C.
Kubernetes CLIツールを使用して新しいコンテナをGKEクラスタにデプロイする別のCloud Buildジョブをトリガーし、そこでカナリアテストを実行する。
D.
Kubernetes CLIツールを使用して新しいコンテナをGKEクラスタにデプロイする別のCloud Buildジョブをトリガーし、そこでシャドウテストを実行する。
Question 49

運用チームから、プロジェクト内で実行されている Cloud Bigtable、Memorystore、Cloud SQL データベースを一覧表示するスクリプトを作成するよう依頼されました。このスクリプトでは、ユーザーが表示される結果を制限するためのフィルタ式を送信できるようにする必要があります。どのようにデータを取得すべきですか?

A.
HBase API、Redis API、および MySQL 接続を使用してデータベースリストを取得します。結果を結合し、フィルタを適用して結果を表示します。
B.
HBase API、Redis API、および MySQL 接続を使用してデータベースリストを取得します。結果を個別にフィルタリングし、結合して結果を表示します。
C.
`gcloud bigtable instances list`、`gcloud redis instances list`、および `gcloud sql databases list` を実行します。アプリケーション内でフィルタを使用し、結果を表示します。
D.
`gcloud bigtable instances list`、`gcloud redis instances list`、および `gcloud sql databases list` を実行します。各コマンドで `--filter` フラグを使用し、結果を表示します。
Question 50

Google Kubernetes Engine でホストされているウェブサイトの新しいヨーロッパ版をデプロイする必要があります。既存のウェブサイトと新しいウェブサイトは、同じ HTTP(S) ロードバランサーの外部 IP アドレス経由でアクセスする必要がありますが、ドメイン名は異なります。どうすればよいですか?

A.
新しいドメインに一致するホストルールを持つ新しい Ingress リソースを定義する
B.
既存の Ingress リソースを、新しいドメインに一致するホストルールで変更する
C.
既存の IP アドレスを `loadBalancerIP` として指定して、タイプ `LoadBalancer` の新しい Service を作成する
D.
新しい Ingress リソースを生成し、既存の IP アドレスを `kubernetes.io/ingress.global-static-ip-name` アノテーションの値として指定する