Google Cloud Associate Cloud Engineer チートシート(2022年最新版)

# 概要
Google Cloud の資格試験 Associate Cloud Engineer の[認定試験ガイド](https://cloud.google.com/certification/guides/cloud-engineer?hl=ja)と公式ドキュメントのURLを紐づけたもの。

## 2022/5 更新

資格の更新再受験にあたって、チートシートを更新しました。
2020/5 にこれを新規作成した時との差異は、以下の通りです。
オフィシャルでない教材を参考に試験準備をしている方は、「削除された項目」がその教材にある場合は無視をし、「追加された項目」がその教材にない場合は自力で学習されるのが良いかと思います。

### 削除された項目

- Google App Engine 全般 (GAE は オワコンですね)
- Deployment Manager 全般 (IaCツールとしては Terraform を使うよう推奨されています)

### 追加された項目

- GKE 関連 (クラスタの選択、Config Connector、水平／垂直スケーリング等)
- IAM 関連 (権限借用、有効期間が短いサービス アカウント等)

# 意義

Google Cloud の資格試験ではそれぞれ、**認定試験ガイド**という**試験で問われること**の一覧が公開されています。しかし、そのガイドでは、各タスクとそれに対応する公式ドキュメントとはリンクしていません。学習する際には、**該当する公式ドキュメントをいちいち探す**という手間が必要となってくるわけです。本記事はその手間を省くものです。

## 1. クラウド ソリューション環境の設定
- 1.1 クラウド プロジェクトとアカウントを設定する。以下のような作業があります。
    - [リソース階層の作成](https://cloud.google.com/resource-manager/docs/creating-managing-organization)
    - [リソース階層への組織のポリシーの適用](https://cloud.google.com/resource-manager/docs/organization-policy/creating-managing-policies#inheriting_organization_policy)
    - [プロジェクト内の IAM ロールをメンバーに付与する](https://cloud.google.com/iam/docs/granting-changing-revoking-access)
    - [Cloud Identity でのユーザーの管理（手動および自動）](https://support.google.com/cloudidentity/topic/7555414)
    - [プロジェクトで API を有効にする](https://cloud.google.com/endpoints/docs/openapi/enable-api?hl=ja#enabling_an_api)
    - [Google Cloud のオペレーション スイートでのプロダクトのプロビジョニングと設定](https://cloud.google.com/monitoring/workspaces?hl=ja)
- 1.2 課金構成を管理する。以下のような作業があります。
    - [請求先アカウントを作成する](https://cloud.google.com/billing/docs/how-to/manage-billing-account?hl=ja#create_a_new_billing_account)
    - [プロジェクトを請求先アカウントにリンクする](https://cloud.google.com/billing/docs/how-to/modify-project?hl=ja#change_the_billing_account_for_a_project)
    - [課金の予算とアラートを設定する](https://cloud.google.com/billing/docs/how-to/budgets?hl=ja)
    - [日 / 月単位の料金見積もりを目的とする請求関連のエクスポートの設定](https://cloud.google.com/billing/docs/how-to/export-data-bigquery?hl=ja)
- 1.3 コマンドライン インターフェース（CLI）、具体的には [Cloud SDK をインストールして構成する](https://cloud.google.com/sdk/docs/configurations?hl=ja)（デフォルト プロジェクトの設定など）。

## 2. クラウド ソリューションの計画と構成
- 2.1 [料金計算ツールを使用して GCP プロダクトの使用量を計画し、見積もる。](https://cloud.google.com/products/calculator)
- 2.2 コンピューティング リソースを計画し、構成する。以下のような検討事項があります。
    - [ワークロードに適したコンピューティング サービスを選択する](https://cloud.google.com/hosting-options?hl=ja)（Compute Engine、Google Kubernetes Engine、Cloud Run、Cloud Functions など）
    - [必要に応じてプリエンプティブル VM とカスタム マシンタイプを使用する](https://cloud.google.com/compute/docs/instances/preemptible?hl=ja#what_is_a_preemptible_instance)
- 2.3 データ ストレージ オプションを計画し、構成する。以下のような検討事項があります。
    - [プロダクトの選択](https://cloud.google.com/products/databases?hl=ja)（Cloud SQL、BigQuery、Cloud Spanner、Cloud Bigtable など）
    - [ストレージ オプションの選択](https://cloud.google.com/storage/docs/storage-classes?hl=ja#available_storage_classes)（ゾーン永続ディスク、リージョン バランス永続ディスク、標準、Standard、Nearline、Coldline、Archive など）
- 2.4 ネットワーク リソースを計画し、構成する。以下のようなタスクがあります。
    - [負荷分散オプションの違いを見分ける](https://cloud.google.com/load-balancing/docs/choosing-load-balancer?hl=ja#flow_chart)
    - [可用性を考慮してネットワーク内のリソースのロケーションを決定する](https://cloud.google.com/solutions/best-practices-compute-engine-region-selection?hl=ja)
    - [Cloud DNS を構成する](https://cloud.google.com/dns/docs/overview)

## 3. クラウド ソリューションのデプロイと実装
- 3.1 Compute Engine リソースをデプロイし、実装する。以下のようなタスクがあります。
    - [Cloud Console と Cloud SDK（gcloud）を使用したコンピューティング インスタンスの起動](https://cloud.google.com/compute/docs/instances/create-start-instance#console)（ディスクの割り当て、可用性ポリシー、SSH 認証鍵など）
    - [インスタンス テンプレートを使用して、自動スケーリングされるマネージド インスタンス グループを作成する](https://cloud.google.com/compute/docs/autoscaler)
    - [インスタンス用のカスタム SSH 認証鍵を生成、アップロードする](https://cloud.google.com/compute/docs/instances/connecting-advanced#provide-key)
    - [Cloud Monitoring と Cloud Logging のエージェントをインストールし、構成する](https://cloud.google.com/logging/docs/agent/installation?hl=ja)
    - [コンピューティングの割り当てを評価し、割り当ての増加をリクエストする](https://cloud.google.com/compute/quotas?hl=ja)
- 3.2 Google Kubernetes Engine リソースをデプロイし、実装する。以下のようなタスクがあります。
    - [Kubernetes 用のコマンドライン インターフェース（CLI）である kubectl をインストールして構成する](https://kubernetes.io/docs/tasks/tools/)
    - [AutoPilot、リージョン クラスタ、限定公開クラスタなど、さまざまな構成で Google Kubernetes Engine クラスタをデプロイする](https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app?hl=ja#step_4_create_a_container_cluster)
    - [ポッドを使用して Google Kubernetes Engine にコンテナ アプリケーションをデプロイする](https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app?hl=ja#step_5_deploy_your_application)
    - [Google Kubernetes Engine アプリケーションのモニタリングとロギングを構成する](https://cloud.google.com/monitoring/kubernetes-engine?hl=ja)
- 3.3 Cloud Run リソース、Cloud Functions リソースをデプロイし、実装する。以下のようなタスクがあります（該当する場合）。
    - [アプリケーションをデプロイし、スケーリング構成、バージョン、トラフィック分割を更新する](https://cloud.google.com/run/docs/about-instance-autoscaling?hl=ja#guarantee)
    - [Google Cloud イベント（Cloud Pub/Sub イベント、Cloud Storage オブジェクト変更通知イベントなど）を受け取るアプリケーションをデプロイする](https://cloud.google.com/storage/docs/object-change-notification?hl=ja#_Application_Example)
- 3.4 データ ソリューションをデプロイし、実装する。以下のようなタスクがあります。
    - [Cloud SQL、Cloud Datastore、BigQuery、Cloud Spanner、Cloud Pub/Sub、Cloud Bigtable、Cloud Dataproc、Cloud Dataflow、Cloud Storage などのプロダクトを使用してデータシステムを初期化する](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/init-actions?hl=ja)
    - [データを読み込む](https://cloud.google.com/dataflow/docs/concepts/streaming-with-cloud-pubsub?hl=ja)（コマンドラインによるアップロード、API による転送、インポート / エクスポート、Cloud Storage からのデータの読み込み、Cloud Pub/Sub へのデータのストリーミングなど）
- 3.5 ネットワーキング リソースをデプロイし、実装する。以下のようなタスクがあります。
    - [サブネットを持つ VPC を作成する](https://cloud.google.com/vpc/docs/using-vpc?hl=ja)（カスタムモード VPC、共有 VPC など）
    - [カスタム ネットワーク構成を持つ Compute Engine インスタンスを起動する](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address?hl=ja)（内部専用 IP アドレス、限定公開の Google アクセス、静的外部 IP アドレスとプライベート IP アドレス、ネットワーク タグなど）
    - [VPC 用の上り（内向き）および下り（外向き）ファイアウォール ルールを作成する](https://cloud.google.com/vpc/docs/using-firewalls?hl=ja#creating_firewall_rules)（IP サブネット、タグ、サービス アカウントなど）
    - [Cloud VPN を使用して Google VPC と外部ネットワークとの間の VPN を作成する](https://cloud.google.com/vpn/docs/how-to/creating-vpn-dynamic-routes)
    - [アプリケーションへのネットワーク トラフィックを分散するロードバランサの作成](https://cloud.google.com/load-balancing/docs/https/ext-http-lb-simple?hl=ja#load-balancer)（グローバル HTTP(S) ロードバランサ、グローバル SSL プロキシ ロードバランサ、グローバル TCP プロキシ ロードバランサ、リージョン ネットワーク ロードバランサ、リージョン内部ロードバランサなど）
- 3.6 Cloud Marketplace を使用してソリューションをデプロイする。以下のようなタスクがあります。
    - [Cloud Marketplace カタログを閲覧し、ソリューションの詳細を見る](https://cloud.google.com/marketplace)
    - [Cloud Marketplace ソリューションをデプロイする](https://cloud.google.com/marketplace/docs/manage-deployments)
- 3.7 Infrastructure as Code を介してリソースを実装する。以下のようなタスクを行います。
    - [Cloud Foundation Toolkit テンプレートを使用してインフラストラクチャを構築し、ベスト プラクティスを実装する](https://cloud.google.com/foundation-toolkit)
    - [Google Kubernetes Engine に Config Connector をインストールして構成し、リソースの作成、更新、削除、保護に利用する](https://cloud.google.com/config-connector/docs/how-to/install-upgrade-uninstall)

## 4. クラウド ソリューションの正常なオペレーションの確保
- 4.1 Compute Engine リソースを管理する。以下のようなタスクがあります。
    - [単一の VM インスタンスを管理する](https://cloud.google.com/compute/docs/instances/stop-start-instance)（起動、停止、構成の編集、インスタンスの削除など）
    - [インスタンスリモート接続する](https://cloud.google.com/compute/docs/instances/connecting-to-instance)
    - [GPU を新しいインスタンスに接続し、CUDA ライブラリをインストールする](https://cloud.google.com/compute/docs/gpus/add-gpus?hl=ja#add-gpu-to-instance)
    - [現在実行されている VM のインベントリ（インスタンス ID、詳細）を見る](https://cloud.google.com/compute/docs/gcloud-compute?hl=ja#listing)
    - [スナップショットを操作する](https://cloud.google.com/compute/docs/disks/create-snapshots?hl=ja)（VM からのスナップショットの作成、スナップショットの表示、スナップショットの削除など）
    - [イメージを操作する](https://cloud.google.com/compute/docs/machine-images/create-machine-images?hl=ja)（VM またはスナップショットからのイメージの作成、イメージの表示、イメージの削除など）
    - [インスタンス グループを操作する](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances?hl=ja)（自動スケーリング パラメータの設定、インスタンス テンプレートの割り当てや作成、インスタンス グループの削除など）
    - [管理インターフェースを操作する](https://cloud.google.com/compute/docs/gcloud-compute?hl=ja)（Cloud Console、Cloud Shell、GCloud SDK など）
- 4.2 Google Kubernetes Engine リソースを管理する。以下のようなタスクがあります。
    - [現在実行されているクラスタのインベントリ（ノード、ポッド、サービス）を見る](https://cloud.google.com/kubernetes-engine/docs/how-to/managing-clusters#viewing_your_clusters)
    - [Docker イメージを参照し、その詳細を Artifact Registry で確認する](https://cloud.google.com/artifact-registry/docs/docker/manage-images?hl=ja)
    - [ノードプールを操作する](https://cloud.google.com/kubernetes-engine/docs/how-to/node-pools?hl=ja#add)（ノードプールの追加、編集、削除など）
    - [Pod を操作する](https://cloud.google.com/kubernetes-engine/docs/concepts/pod?hl=ja)（Pod の追加、編集、削除など）
    - [サービスを操作する](https://cloud.google.com/kubernetes-engine/docs/how-to/exposing-apps?hl=ja)（サービスの追加、編集、削除など）
    - [ステートフル アプリケーションを操作する](https://cloud.google.com/kubernetes-engine/docs/how-to/stateful-apps?hl=ja)（永続ボリューム、ステートフル セットなど）
    - [水平自動スケーリングと垂直自動スケーリングの構成を管理する](https://cloud.google.com/kubernetes-engine/docs/concepts/horizontalpodautoscaler)
    - [管理インターフェースを操作する](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)（Cloud Console、Cloud Shell、Cloud SDK など）
- 4.3 Cloud Run リソースを管理する。以下のようなタスクがあります。
    - [アプリケーションのトラフィック分割パラメータを調整する](https://cloud.google.com/run/docs/rollouts-rollbacks-traffic-migration?hl=ja)
    - [自動スケーリング インスタンスのスケーリング パラメータを設定する](https://cloud.google.com/run/docs/about-instance-autoscaling?hl=ja#guarantee)
    - [Cloud Run（フルマネージド）と Cloud Run for Anthos のどちらを実行するかを決定する]()
- 4.4 ストレージとデータベースのソリューションを管理する。以下のようなタスクがあります。
    - [Cloud Storage バケット間でオブジェクトを移動する](https://cloud.google.com/storage/docs/renaming-copying-moving-objects?hl=ja#move)
    - [ストレージ クラス間で Cloud Storage バケットを変換する]()
    - [Cloud Storage バケットのオブジェクト ライフサイクル管理ポリシーを設定する](https://cloud.google.com/storage/docs/changing-default-storage-class?hl=ja#console)
    - [データ インスタンス（Cloud SQL、BigQuery、Cloud Spanner、Cloud Datastore、Cloud Bigtable など）からデータを取得するクエリを実行する](https://cloud.google.com/bigquery/docs/running-queries)
    - [BigQuery クエリのコストを見積もる](https://cloud.google.com/bigquery/docs/estimate-costs)
    - [データ インスタンス（Cloud SQL、Cloud Datastore など）のバックアップと復元を行う](https://cloud.google.com/sql/docs/mysql/backup-recovery/backups#tips-pitr)
    - [Cloud Dataproc、Cloud Dataflow、BigQuery のジョブ ステータスを確認する](https://cloud.google.com/bigquery/docs/managing-jobs#listing_jobs_in_a_project)
- 4.5 ネットワーキング リソースを管理する。以下のようなタスクがあります。
    - [既存の VPC にサブネットを追加する](https://cloud.google.com/vpc/docs/using-vpc#add-subnets)
    - [サブネットを拡張して IP アドレスを増やす](https://cloud.google.com/vpc/docs/using-vpc#expand-subnet)
    - [静的外部または内部 IP アドレスを予約する](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address?hl=ja#console)
    - [CloudDNS、CloudNAT、ロードバランサ、ファイアウォール ルールを操作する](https://cloud.google.com/compute/docs/gcloud-compute?hl=ja)（Cloud Console、Cloud Shell、Cloud SDK など）
- 4.6 モニタリングとロギングを行う。以下のようなタスクがあります。
    - [リソース指標に基づいて Cloud Monitoring アラートを作成する](https://cloud.google.com/monitoring/alerts/using-alerting-ui#create-policy)
    - [Cloud Monitoring カスタム指標を作成する](https://cloud.google.com/monitoring/custom-metrics/creating-metrics)
    - [ログが外部システムにエクスポートされるようにログシンクを構成する（オンプレミスまたは BigQuery など）](https://cloud.google.com/logging/docs/export/aggregated_sinks)
    - [ログルーターを構成する](https://cloud.google.com/logging/docs/routing/overview?hl=ja)
    - [Cloud Logging のログを表示してフィルタリングする](https://cloud.google.com/logging/docs/view/overview)
    - [Cloud Logging のログメッセージの詳細を見る](https://cloud.google.com/logging/docs/view/overview#expanding)
    - [Cloud Diagnostics を使用してアプリケーションの問題を調査する](https://cloud.google.com/interconnect/docs/how-to/getting-diagnostics)（Cloud Trace データの表示、Cloud Debug を使用したアプリケーションのポイントインタイムの表示など）
    - [Google Cloud のステータスを見る](https://cloud.google.com/service-infrastructure/docs/checking-status?hl=ja)

## 5. アクセスとセキュリティの構成
- 5.1 Identity and Access Management（IAM）を管理する。以下のようなタスクがあります。
    - [IAM ポリシーの表示](https://cloud.google.com/iam/docs/granting-changing-revoking-access?hl=ja#getting-policy)
    - [IAM ポリシーの作成](https://cloud.google.com/iam/docs/granting-changing-revoking-access?hl=ja#granting-gcloud-manual)
    - [さまざまなロールタイプの管理とカスタム IAM ロールの定義](https://cloud.google.com/iam/docs/creating-custom-roles?hl=ja#creating_a_custom_role)（基本ロール、事前定義ロール、カスタムロールなど）
- 5.2 サービス アカウントを管理する。以下のようなタスクがあります。
    - [サービス アカウントの作成](https://cloud.google.com/iam/docs/creating-managing-service-accounts?hl=ja#iam-service-accounts-create-gcloud)
    - [最小限の権限を持つ IAM ポリシー内のサービス アカウントを使用する](https://cloud.google.com/iam/docs/using-iam-securely?hl=ja)
    - [サービス アカウントを リソースに割り当てる](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#using)
    - [サービス アカウントの IAM の管理](https://cloud.google.com/iam/docs/granting-changing-revoking-access?hl=ja)
    - [サービス アカウントの権限借用の管理](https://cloud.google.com/iam/docs/impersonating-service-accounts?hl=ja)
    - [有効期間が短いサービス アカウント認証情報の作成と管理](https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials?hl=ja)
- 5.3 [監査ログの表示](https://cloud.google.com/logging/docs/audit?hl=ja#viewing_audit_logs)