Professional Cloud Developer

認定試験ガイド

ケーススタディのサンプル

Professional Cloud Developer 認定試験の問題で、架空の会社やソリューションを説明するケーススタディが使われる場合があります。このケーススタディは、回答を選択するうえで役立つコンテキストを提供するために作成されたものです。試験で使われる可能性のあるケーススタディのサンプルを確認しておくことをおすすめします。

HipLocal

Professional Google Cloud Developer は、フルマネージド サービスを利用する Google の各種ツールを使用して、Google の推奨する方法を実践しながら、スケーラブルで可用性の高いアプリケーションを構築します。また、次世代データベース、ランタイム環境、デベロッパー ツールを利用した経験もあります。少なくとも 1 つの汎用プログラミング言語に精通していて、新しい API の定義や Google API の呼び出しができます。さらに、Stackdriver を使用するスキルがあり、コードのデバッグやトレースを行うための有意義な指標やログを生成できます。

*注: この試験はコーディングのスキルを直接評価するものではありません。GCP のサービスや推奨方法を利用して、スケーラブルで可用性の高いアプリケーションを構築、テスト、デプロイ、管理する能力を評価することに重点を置いています。少なくとも 1 つの汎用コーディング言語に精通している方であれば、コード スニペットに関する質問を理解できるはずです。

1. スケーラビリティ、可用性、信頼性に優れたクラウド ネイティブ アプリケーションの設計

    (2020 年 3 月 23 日より前に受験する認定試験用)

    1.1 高パフォーマンスのアプリケーションと API を設計する。以下のような点を考察します。

    • Infrastructure as a Service、Container as a Service、Platform as a Service の比較(例: 自動スケーリングへの影響)
    • ポータビリティと、プラットフォーム固有の設計との比較
    • さまざまなサービスとテクノロジーの評価
    • オペレーティング システムのバージョンとサービスの基本ランタイム
    • Google Cloud サービスの地理的分布
    • マイクロサービス
    • Cloud Storage、Cloud Bigtable、Cloud Spanner、Cloud SQL を使用する書き込みレートが高いアプリケーションのキー構造の定義
    • セッション管理
    • Cloud Endpoints を使用した API のデプロイと保護
    • 非同期 Cloud Pub/Sub イベントを使用したアプリケーションの疎結合
    • ヘルスチェック
    • Google の推奨方法とドキュメント

    1.2 安全なアプリケーションを設計する。以下のような点を考察します。

    • 適用される規制上の要件と法律
    • サービスとリソースを保護するセキュリティ メカニズム
    • シークレットの保存とローテーション
    • ユーザー、グループ、サービス アカウントの IAM ロール
    • HTTPS 証明書
    • Google の推奨方法とドキュメント

    1.3 アプリケーション データを管理する。以下のようなタスクを行います。

    • Google が管理するデータベース(例: Cloud Datastore、Cloud Spanner、Cloud Bigtable、BigQuery)のデータベース スキーマを定義する
    • 以下のようなユースケースの考慮事項に基づいてデータ ストレージ オプションを選択する
      • ユーザーがアップロードしたコンテンツの Cloud Storage 署名付き URL
      • Cloud Storage を使用した静的ウェブサイトの実行
      • 構造化データと非構造化データの比較
      • ACID トランザクションと分析処理の比較
      • データ容量
      • Cloud Storage のデータへのアクセス頻度
    • データ取り込みシステム(例: Cloud Pub/Sub、Storage Transfer Service)を操作する
    • Google の推奨方法とドキュメントを確認する

    1.4 ローカル サービスから Google Cloud Platform にアプリケーションを再構築する。以下のようなタスクを行います。

    • マネージド サービスを使用する
    • 移行にストラングラー パターンを使用する
    • Google の推奨方法とドキュメントを確認する

2. アプリケーションのビルドとテスト

    2.1 開発環境を設定する。以下のような点を考察します。

    • ローカル アプリケーション開発向けに GCP サービスのエミュレート
    • GCP プロジェクトの作成

    2.2 継続的インテグレーションのパイプラインを構築する。以下のような点を考察します。

    • Cloud Source Repositories のリポジトリの作成、それへのコードの commit
    • コードからコンテナ イメージの作成
    • 記述したすべてのコードの単体テストの開発
    • サービス(例: Cloud Build、Container Registry)を使用する統合パイプラインの開発、アプリケーションのターゲット環境(例: 開発、テスト、ステージング)へのデプロイ
    • 継続的インテグレーションのパイプラインのテスト結果の確認

    2.3 テストする。以下のような点を考察します。

    • パフォーマンス テスト
    • 統合テスト
    • 負荷テスト

    2.4 コードを記述する。以下のような点を考察します。

    • アルゴリズムの設計
    • 最新のアプリケーション パターン
    • 効率性
    • アジャイルな手法

3. アプリケーションのデプロイ

    3.1 ターゲットのコンピューティング環境(Compute Engine、Google Kubernetes Engine、App Engine)に基づいて適切なデプロイ戦略を実施する。以下のような戦略を実施します。

    • Blue/Green デプロイ
    • トラフィック分割デプロイ
    • ローリング デプロイ
    • カナリア デプロイ

    3.2 Compute Engine にアプリケーションとサービスをデプロイする。以下のようなタスクを行います。

    • GCP Console と Cloud SDK(gcloud)を使用してコンピューティング インスタンスを起動する(例: ディスク、可用性ポリシー、SSH 認証鍵の割り当て)
    • 永続ディスクを別の VM に移動する
    • インスタンス テンプレートを使用して、自動スケーリングされるマネージド インスタンス グループを作成する
    • インスタンス用のカスタム SSH 認証鍵を生成、アップロードする
    • Stackdriver Monitoring と Stackdriver Logging を使用するように VM を構成する
    • ソフトウェアをインストールする起動スクリプトを使用してインスタンスを作成する
    • カスタム メタデータのタグを作成する
    • Compute Engine インスタンスで使用するロードバランサを作成する

    3.3 Google Kubernetes Engine にアプリケーションとサービスをデプロイする。以下のようなタスクを行います。

    • GKE クラスタをデプロイする
    • コンテナ化したアプリケーションを GKE にデプロイする
    • GKE アプリケーションのモニタリングとロギングを構成する
    • GKE インスタンスで使用するロードバランサを作成する
    • Cloud Build を使用してコンテナ イメージを作成する

    3.4 App Engine にアプリケーションをデプロイする。以下のような点を考察します。

    • スケーリングの構成
    • バージョン
    • トラフィック分割
    • Blue/Green デプロイ

    3.5 Cloud Functions をデプロイする。以下のようなタイプがあります。

    • イベント(例: Cloud Pub/Sub イベント、Cloud Storage オブジェクト変更通知イベント)によってトリガーされる Cloud Functions
    • HTTP によって呼び出される Cloud Functions

    3.6 データ ストレージのリソースを作成する。以下のようなタスクを行います。

    • Cloud Repository を作成する
    • Cloud SQL インスタンスを作成する
    • Cloud Datastore に複合インデックスを作成する
    • BigQuery データセットを作成する
    • Cloud Spanner を計画してデプロイする
    • Cloud Storage バケットを作成する
    • Cloud Storage バケットを作成して、適切なストレージ クラスを選択する
    • Cloud Pub/Sub トピックを作成する

    3.7 ネットワーキング リソースをデプロイして実装する。以下のようなタスクを行います。

    • サブネットを持つ自動モード VPC を作成する
    • VPC 用の上り(内向き)および下り(外向き)ファイアウォール ルール(例: IP サブネット、タグ、サービス アカウント)を作成する
    • Cloud DNS を使用してドメインを設定する

    3.8 Deployment Manager によってリソースのプロビジョニングを自動化する。

    3.9 サービス アカウントを管理する。以下のようなタスクを行います。

    • 必要最低限の数のスコープを指定してサービス アカウントを作成する
    • サービス アカウントの秘密鍵ファイルをダウンロードして使用する

4.Google Cloud Platform サービスの統合

    4.1 アプリケーションにデータサービスとストレージ サービスを統合する。以下のようなタスクを行います。

    • BigQuery を有効にして、データセットに権限を設定する
    • リレーショナル データベースからデータを取得する SQL クエリを記述する
    • BigQuery を使用してデータを分析する
    • さまざまなデータベースからデータを取得する
    • Cloud SQL を有効にして、インスタンスを構成する
    • Cloud SQL インスタンスに接続する
    • Cloud Spanner を有効にして、インスタンスを構成する
    • Cloud Spanner を使用するアプリケーションを作成する
    • エンドポイントを呼び出す Cloud Pub/Sub push サブスクリプションを構成する
    • Cloud SQL に接続してクエリを実行する
    • Google Storage のオブジェクトを保存して取得する
    • データの取り込みソースを使用してデータを公開、使用する
    • アプリケーションから Cloud Datastore トランザクションのエンティティの読み取りと更新を行う
    • CLI ツールを使用する
    • ネットワークのプロビジョニングと構成を行う

    4.2 アプリケーションにコンピューティング サービスを統合する。以下のようなタスクを行います。

    • Google Kubernetes Engine、App Engine、Compute Engine にサービス ディスカバリを実装する
    • Cloud Pub/Sub を使用してデータを公開 / 使用するアプリケーションを作成する
    • インスタンス メタデータを読み取ってアプリケーションの構成を取得する
    • Oauth2 ウェブフローと Identity-Aware Proxy を使用してユーザーを認証する
    • CLI ツールを使用する
    • コンピューティング サービスのネットワーク設定(例: サブネット、上りと下りのファイアウォール、パブリック IP とプライベート IP)を構成する

    4.3 アプリケーションに Google Cloud APIs を統合する。以下のようなタスクを行います。

    • GCP API を有効にする
    • 事前トレーニング済み Google ML API を使用する
    • 以下の点を考慮に入れて、Cloud クライアント ライブラリ、REST API、API Explorer を使用して API 呼び出しを行う
      • 一括処理リクエスト
      • 戻りデータの制限
      • 結果のページ分け
      • 結果のキャッシュ保存
    • サービス アカウントを使用して Google API 呼び出しを行う
    • API を使用してデータサービス(BigQuery、Cloud Spanner)への読み取りと書き込みを行う
    • Cloud SDK を使用して基本タスクを実行する

5. アプリケーション パフォーマンス モニタリングの管理

    5.1 ロギングとモニタリングのエージェントをインストールする。

    5.2 VM を管理する。以下のようなタスクを行います。

    • シリアルポートを使用してカスタム VM イメージをデバッグする
    • 失敗した Compute Engine VM の起動を分析する
    • VM から Stackdriver にログを送信する

    5.3 Stackdriver を使用してアプリケーションのパフォーマンス指標を確認する。以下のようなタスクを行います。

    • モニタリング ダッシュボードを作成する
    • VM から syslog を確認する
    • カスタム指標とログからの指標を作成する
    • 指標のグラフを作成する
    • Stackdriver Debugger を使用する
    • GCP Console からログをストリーミングする
    • エラーを分析するためにスタック トレースを確認する
    • ログシンクを設定する
    • GCP Console でログを確認する
    • リクエスト / レスポンスのパフォーマンスのプロファイルを作成する
    • サービスのプロファイルを作成する
    • Stackdriver Trace と Stackdriver Logging を使用してアプリケーションのパフォーマンスを確認する
    • 実行中のアプリケーションのモニタリングとプロファイリングを行う

    5.4 アプリケーションのパフォーマンスに関する問題を診断して解決する。以下のようなタスクを行います。

    • 時間チェックとその他の基本アラートを設定する
    • ロギングとトレースを設定する
    • リソースのモニタリングを設定する
    • ネットワーク問題のトラブルシューティングを行う
    • クラウドアプリのデバッグとトレースを行う
    • イメージや OS に関する問題のトラブルシューティングを行う
    • ドキュメント、フォーラム、Google サポートを利用する