Professional Cloud Developer
認定試験ガイド
Professional Cloud Developer は、Google が推奨するツールとベスト プラクティスを使用して、スケーラブルで可用性の高いアプリケーションを構築します。また、クラウドネイティブ アプリケーション、デベロッパー ツール、マネージド サービス、次世代データベースを利用した経験もあります。さらに、少なくとも 1 つの汎用プログラミング言語に精通し、コードを計測して指標、ログ、トレースを作成します。
*注: この試験はコーディングのスキルを直接評価するものではありません。 Google Cloud のサービスや推奨方法を活用して、スケーラブルで可用性の高いアプリケーションの構築、テスト、デプロイ、管理を行う能力を評価することに重点を置いています。少なくとも 1 つの汎用コーディング言語に精通していれば、コード スニペットを使用して質問を理解できるはずです。
1: スケーラビリティ、可用性、信頼性に優れたクラウド ネイティブなアプリケーションの設計(試験内容の 27% 以下)
1.1 高パフォーマンスのアプリケーションと API を設計する。 以下のような点を考慮します。
● マイクロサービス
● IaaS(Infrastructure as a Service)、CaaS(Container as a Service)、PaaS(Platform as a Service)、FaaS(Functions as a Service)のスケーリング速度特性とトレードオフ
● Google Cloud サービスがどのように地理的に分散されるか(レイテンシ、リージョン サービス、ゾーンサービスなど)の理解
● ユーザー セッション管理
● キャッシュ ソリューション
● HTTP REST か gRPC(Google リモート プロシージャ コール)か
● API ゲートウェイと Cloud Endpoints を使用する API サービスの設計
● 疎結合した非同期アプリケーション(Apache Kafka、Pub/Sub、Eventarc など)
● 指標、ログ、トレースを作成するためのコードの計測
● プラットフォームが停止したときのアプリケーションの正常なシャットダウン
● フォールト トレラントなコードの記述
1.2 安全なアプリケーションを設計する。以下のような点を考慮します。
● 該当する規則に関連するデータ ライフサイクルとデータ所在地の要件の実装
● サービスとリソースを保護するセキュリティ メカニズム
● アプリケーションのバイナリとマニフェストを保護またはスキャンするセキュリティ メカニズム
● アプリケーション シークレットとキーの保存とアクセス、ローテーション(Secret Manager、Cloud Key Management Service)
● Google Cloud サービスに対する認証(アプリケーションのデフォルト認証情報、JSON Web Token(JWT)、OAuth 2.0 など)
● Identity Platform を使用するエンドユーザー アカウント管理と認証
● ユーザー、グループ、サービス アカウントの IAM ロール
● サービス間の通信(サービス メッシュ、Kubernetes ネットワーク ポリシー、Kubernetes Namespace など)を保護する
● 最小限の特権アクセスでサービスを実行する(Workload Identity)
● 証明書を利用した認証(SSL、mTLS など)
1.3 アプリケーション データを管理する。以下のような点を考慮します。
● Google マネージド データベース(Firestore、Cloud Spanner, Bigtable、Cloud SQL など)のデータベース スキーマの設計
● 書き込みレートが高いアプリケーションのキー構造の定義
● 以下のようなユースケースの考慮事項に基づくデータ ストレージ オプションの選択
○ オブジェクトへの時間制限付きアクセス
○ データ保持に関する要件
○ 構造化データか非構造化データか
○ 強整合性か結果整合性か
○ データの量
○ データのアクセス パターン
○ オンライン トランザクション処理(OLTP)かデータ ウェアハウジングか
2: アプリケーションの構築とテスト(試験内容の 20% 以下)
2.1 ローカル開発環境を設定する。以下のような点を考慮します。
● ローカル アプリケーション開発向けに Google Cloud サービスをエミュレートする
● Google Cloud コンソール、Google Cloud SDK、Cloud Shell ツールを使用する
● デベロッパー ツールを使用する(Cloud Code、Skaffold など)
2.2 構築する。以下のような点を考慮します。
● ソース コントロール管理
● コードから安全なコンテナ イメージを作成する
● デプロイメント アーティファクトを構成するサービス(Cloud Build、Artifact Registry など)を使用して、継続的インテグレーション パイプラインを開発する
● コードとテストビルドの最適化
2.3 テストする。以下のような点を考慮します。
● 単体テスト(エミュレータなど)
● 統合テスト
● パフォーマンス テスト
● 負荷テスト
● 障害テストとカオス エンジニアリング
3: アプリケーションのデプロイ(試験内容の 18% 以下)
3.1 適切な機能ロールアウト戦略を適用する。以下のような点を考慮します。
● A/B テスト
● フィーチャー トグル
● 下位互換性
3.2 アプリケーションをサーバーレス コンピューティング環境にデプロイする。以下のような点を考慮します。
● サーバーレス環境のサイズ設定とスケーリング
● ソースコードからのデプロイ
● トリガー経由の呼び出し
● イベント レシーバの構成
● アプリケーション API の公開と保護(API ゲートウェイ、Cloud Endpoints など)
3.3 Google Kubernetes Engine(GKE)にアプリケーションとサービスをデプロイする。以下のような点を考慮します。
● コンテナ化したアプリケーションを GKE にデプロイする
● Kubernetes RBAC を Identity and Access Management(IAM)と統合する
● Kubernetes Namespace を構成する
● ワークロードの仕様(リソース要件など)を定義する
● Cloud Build を使用してコンテナ イメージを作成する
● ユーザー トラフィックとその他のサービスへのアプリケーションによるアクセス可否を構成する
● コンテナのライフサイクルを管理する
4: Google Cloud サービスの統合(試験内容の 20% 以下)
4.1 アプリケーションにデータサービスとストレージ サービスを統合する。以下のような点を考慮します。
● データストアへの接続を管理する(Cloud SQL、Cloud Spanner、Firestore、Bigtable、Cloud Storage など)
● さまざまなデータストアのデータの読み取りと書き込み
● データを非同期で(Pub/Sub などから)パブリッシュまたは使用するアプリケーションを作成する
4.2 アプリケーションにコンピューティング サービスを統合する。以下のような点を考慮します。
● サービス ディスカバリ(Service Directory など)を使用する
● インスタンス メタデータを読み取ってアプリケーションの構成を取得する
● 正常なアプリケーションの起動とシャットダウン
4.3 アプリケーションに Cloud APIs を統合する。以下のような点を考慮します。
● Cloud APIs を有効化する
● 以下の点を考慮に入れて、サポートされているオプション(Cloud クライアント ライブラリ、REST API または gRPC、API Explorer など)を使用して API 呼び出しを行う
○ 一括処理リクエスト
○ 戻りデータの制限
○ 結果のページ分け
○ 結果のキャッシュ保存
○ エラー処理(指数バックオフなど)
● サービス アカウントを使用して Cloud APIs 呼び出しを行う
5: デプロイされたアプリケーションの管理(試験内容の 15% 以下)
5.1 クラウド コンピューティング サービス(Google Kubernetes Engine、サーバーレスなど)を管理する。以下のような点を考慮します。
● ライフサイクル イベントを分析する
● 外部指標とそれに対応するアラートを使用する
● ワークロードの自動スケーリングを構成する
5.2 アプリケーションをトラブルシューティングする。以下のような点を考慮します。
● デバッガの使用
● Cloud Logging の使用
● Cloud Monitoring の使用
● Cloud Profiler の使用
● Cloud Trace の使用
● Error Reporting の使用
● ドキュメント、フォーラム、Google Cloud サポートの使用