誰かの参考になれば。
受験概要
- 受験日 2025/12/27
- オンライン受験(Kryterion)※複数回目
- 試験時間 2h ※見直し含めて1.5h超
- 問題数 50問 ※合格したので正答率不明
受験後の感想
- 模擬試験では一度も70%超えなかったので結構不安だった
- 見直し対象問題が22問もあり、結構時間が掛かった
- オンライン試験で受験中の回線トラブルが2回発生
勉強法
- Udemy:
- まずはMaruchinさんのACEコースを通勤電車などを利用して一通り視聴し、分からない所を繰り返し見る
- 一旦真面目に模擬試験を受けて、直しをしながらChatGPTと壁打ち
- 物理的にノートに適宜メモを取る
- コマンドとロールはGeminiにまとめてもらって、プリントアウトしたものに適宜メモ
- 勉強時間:30h弱(動画視聴で15h、模試4回で5h、テスト直しと要点まとめで6hくらい)
- Udemyの模擬試験で4回とも一度も70%を超えなかった
- CDLでサービスの概要は押さえていたが、追加で以下を押さえる必要があった
- リソース階層とNW階層の違い
- 基本的なコマンドとロール
- VM,AppEngine,GKEのユースケース
- Cloud Run, Cloud Functionsのユースケース
前提
- 一般的なwebシステム開発の経験あり
- AWSは触っていた
- Docker、k8sはudemyで学習済み
- いくつかのGoogleCloud資格取得済み(CDL,GAIL)
- まだ実際のGoogle Cloud環境は一切触ってない(触ると混乱するため)
得られた用語など
※自分用メモ。正確性に責任負いません
コマンド
gcloud
- 記法: gcloud [GROUP] [SUBGROUP] COMMAND [FLAGS]
- サンプル: gcloud compute instances create INSTANCE_NAME --zone=ZONE ※処理(動詞)が最後
- 主なコマンド:
- gcloud auth: 認証管理
- gcloud config: gcloud設定管理
- gcloud init: gcloud初期設定
- gcloud project: プロジェクト設定
- gcloud profile: プロファイル管理
- gcloud iam: IAMロール、ポリシー管理
- gcloud compute: Compute Engineリソース管理
- gcloud compute instances: VMインスタンス管理
- gcloud compute instance-templates: インスタンステンプレート管理
- gcloud compute instance-groups: インスタンスグループ管理
- gcloud compute zones: ゾーン管理
- gcloud compute regions: リージョン管理
- gcloud compute disks: 永続ディスク管理
- gcloud compute images: イメージ管理
- gcloud compute snapshots: スナップショット管理
- gcloud compute networks: ネットワーク管理
- gcloud compute networks subnets: サブネット管理
- gcloud compute firewall-rules: ファイアウォールルール管理
- gcloud app: App Engineリソース管理
- gcloud container: GKEリソース管理
- gcloud container clusters: GKEクラスタ管理
- gcloud container node-pools: GKEノードプール管理
- gcloud container images: コンテナイメージ管理
- gcloud functions: Cloud Functionsリソース管理
- gcloud run: Cloud Runリソース管理
- gcloud projects: プロジェクト管理
- gcloud storage: Cloud Storageリソース管理
- gcloud storage buckets: バケット管理
- gcloud storage objects: オブジェクト管理
- gcloud storage transfers: データ転送管理
- gcloud storage signed-urls: 署名付きURL管理
- gcloud sql: Cloud SQLリソース管理
- gcloud sql instances: Cloud SQLインスタンス管理
- gcloud sql databases: Cloud SQLデータベース管理
- gcloud sql backups: Cloud SQLバックアップ管理
- gcloud sql users: Cloud SQLユーザ管理
- gcloud logging: ログ管理
- gcloud logging logs: ログエントリ管理
- gcloud logging sinks: ログシンク管理
- gcloud monitoring: モニタリング管理
- gcloud monitoring dashboards: ダッシュボード管理
- gcloud monitoring policies: アラートポリシー管理
gsutil
- 記法: gsutil COMMAND [ARGS...]
- サンプル: gsutil cp source destination ※処理(動詞)が最初、linuxの一般的なコマンドに近い
- 基本的にはgcloud storageコマンド利用推奨、gsutilはレガシー扱い?
- 主なコマンド:
- gsutil mb: バケット作成(make bucket)
- gsutil cp: ファイル/ディレクトリのコピー
- gsutil ls: バケット/オブジェクトの一覧表示
- gsutil rm: オブジェクト/バケットの削除
- gsutil rsync: ディレクトリ間の同期
- gsutil acl: アクセス制御リスト(ACL)管理
- gsutil iam: IAMポリシー管理
- gsutil signurl: 署名付きURLの生成
kubectl (GC限定ではないが)
- 記法: kubectl COMMAND [TYPE] [NAME] [FLAGS]
- サンプル: kubectl get pods --namespace=NAMESPACE ※処理(動詞)が最初
- 主なコマンド:
- kubectl get: リソースの一覧表示
- kubectl describe: リソースの詳細表示
- kubectl create: リソースの作成
- kubectl apply: マニフェストファイルからリソースの作成/更新
- kubectl delete: リソースの削除
ロール
- プリミティブロール: Owner, Editor, Viewer ※権限管理が大雑把になりすぎるため、利用は推奨されていない
- 事前定義ロール: サービス毎に用意された細かいロール
- カスタムロール: ユーザが独自に定義可能なロール
プリミティブロール
- Owner: すべてのリソースに対するフルコントロール権限 ※使用不可推奨
- Editor: すべてのリソースに対する編集権限(作成、更新、削除が可能) ※使用不可推奨
- Viewer: すべてのリソースに対する読み取り専用権限 ※使用不可推奨
- Admin: すべてのリソースに対する管理権限(作成、更新、削除が可能)
- writer: すべてのリソースに対する編集権限(Editorと同等)
- Reader: 読み取り専用権限(Viewerと同等)
事前定義ロール
- IAM:
- iam.serviceAccountUser: サービスアカウントのユーザ権限
- iam.serviceAccountAdmin: サービスアカウントの管理者権限
- iam.roleAdmin: ロール管理者権限
- iam.securityAdmin: セキュリティ管理者権限
- Compute Engine:
- compute.admin: フルコントロール権限
- compute.instanceAdmin.v1: インスタンス管理者権限
- compute.networkAdmin: ネットワーク管理者権限
- compute.securityAdmin: セキュリティ管理者権限
- compute.viewer: 読み取り専用権限
- Cloud Storage:
- storage.admin: フルコントロール権限
- storage.objectAdmin: オブジェクト管理者権限
- storage.objectCreator: オブジェクト作成者権限
- storage.objectViewer: オブジェクト閲覧者権限
- storage.viewer: 読み取り専用権限
- App Engine:
- appengine.appAdmin: アプリケーション管理者権限
- appengine.deployer: アプリケーションデプロイヤー権限
- appengine.viewer: 読み取り専用権限
- GKE:
- container.admin: フルコントロール権限
- container.clusterAdmin: クラスタ管理者権限
- container.developer: 開発者権限
- container.viewer: 読み取り専用権限
- Cloud Functions:
- cloudfunctions.admin: フルコントロール権限
- cloudfunctions.developer: 開発者権限
- cloudfunctions.viewer: 読み取り専用権限
- Cloud Run:
- run.admin: フルコントロール権限
- run.developer: 開発者権限
- run.viewer: 読み取り専用権限
- Cloud SQL:
- cloudsql.admin: フルコントロール権限
- cloudsql.editor: 編集者権限
- cloudsql.viewer: 閲覧者権限
- BigQuery:
- bigquery.admin: フルコントロール権限
- bigquery.dataEditor: データ編集者権限
- bigquery.dataViewer: データ閲覧者権限
- bigquery.jobUser: ジョブ実行者権限
- bigquery.metadataViewer: メタデータ閲覧者権限
- bigquery.user: ユーザ権限
- Cloud Logging:
- logging.admin: フルコントロール権限
- logging.configWriter: ログ設定編集者権限
- logging.viewer: 閲覧者権限
- Cloud Monitoring:
- monitoring.admin: フルコントロール権限
- monitoring.editor: 編集者権限
- monitoring.viewer: 閲覧者権限
頻出のユースケースに対応したロール
- BigQueryのデータ参照+クエリ実行者:
- bigquery.dataViewer: データの閲覧が可能
- bigquery.jobUser: クエリの実行が可能
- App Engineのデプロイ担当者:
- appengine.deployer: アプリケーションのデプロイが可能
アカウント
- ユーザアカウント: 個人ユーザが作成、管理するアカウント
- サービスアカウント: アプリケーションやVMなどのサービスが作成、管理するアカウント
- 権限付与: IAMロールをサービスアカウントに付与することで、そのサービスが必要なリソースにアクセス可能
- キー管理: サービスアカウントのキーを作成し、アプリケーションが認証に使用可能
リージョン・ゾーン
- リージョン: 地理的に分散されたデータセンターのグループ
- ゾーン: リージョン内の独立したデータセンター
- マルチリージョン: 複数のリージョンにまたがる広域な地理的エリア
- リージョン選択基準:
- ユーザの所在地: ユーザに近いリージョンを選択して、レイテンシを最小化
- サービスの可用性: 複数のリージョンにリソースを分散配置して、障害発生時の影響を最小化
- コスト: リージョンごとの料金差を考慮して、コスト効率の良いリージョンを選択
- 法規制: データの保存や処理に関する法規制を遵守するため、適切なリージョンを選択
リージョン・ゾーンに属するリソース
- リージョンに属するリソース:
- Cloud Storageバケット(マルチリージョン/リージョン)
- BigQueryデータセット(マルチリージョン/リージョン)
- Cloud SQLインスタンス
- Cloud Spannerインスタンス
- ゾーンに属するリソース:
- Compute Engineインスタンス
- GKEクラスタ(ゾーン/リージョン)
- 永続ディスク
リソース階層
- 組織: 企業や団体全体を表す最上位のリソース
- フォルダ: 組織内でプロジェクトをグループ化するための中間リソース
- プロジェクト: GCPリソースを作成、管理するためのコンテナ
- リソース: GCPサービスで使用される具体的なインスタンスやサービス
- プロジェクト: GCPリソースを作成、管理するためのコンテナ
- フォルダ: 組織内でプロジェクトをグループ化するための中間リソース
ネットワーク階層
- VPC: プロジェクト内で論理的に分離されたネットワーク
- サブネット: VPC内でIPアドレス範囲を分割したもの
- IPレンジ: サブネットに割り当てられたIPアドレスの範囲
- リソース: VMインスタンスや他のリソースに割り当てられたIPアドレス
- IPレンジ: サブネットに割り当てられたIPアドレスの範囲
- サブネット: VPC内でIPアドレス範囲を分割したもの
- VPCのコンポーネント
- ファイアウォールルール: ネットワークトラフィックの許可/拒否ルール
- ルート: ネットワークトラフィックの経路設定
- VPN: オンプレミスネットワークとGCPネットワークを安全に接続
- Cloud Interconnect: 専用線を使用してオンプレミスネットワークとGCPネットワークを接続
- VPCピアリング: 異なるVPC間でのプライベート接続を確立
- VPCピアリングした場合のIPレンジ: 重複不可
- Cloud NAT: プライベートIPアドレスを持つリソースがインターネットにアクセス可能にする
- プライマリIPレンジ: VMインスタンスや他のリソースに割り当てるためのIPアドレス範囲
- セカンダリIPレンジ: GKEのVPCネイティブクラスタや他のサービスで使用するための追加のIPアドレス範囲
GKEの階層・コンポーネント
- クラスタ: GKEの基本単位、複数のノードで構成される
- ノードプール: クラスタ内のノードグループ、同一の設定を持つノードで構成
- ノード: クラスタ内の仮想マシン、Podを実行
- Pod: コンテナの最小実行単位、1つ以上のコンテナを含む
- デプロイメント: Podの管理とスケーリングを行うリソース
- サービス: Podへの安定したネットワークアクセスを提供
- ネームスペース: クラスタ内でリソースを分離、管理
各Data pipeline
- Cloud Dataflow(Apache Beam): Streaming/Batch双方をカバーし同一の処理を再利用可能、テンプレート(cloud storage pub/sub->軽微な変換->BQ)もある
- Cloud Dataproc(Apache Spark, Hadoop): 計算リソース(クラスタ)の管理や、処理の構築はユーザ
- Cloud Composer(Apache Airflow): 複雑かつ細かいバッチ、ワークフロー制御が可能、実際の処理は呼び出した先のプログラム等にお任せ
- Cloud Data Fusion: ロー/ノーコードでデータを繋ぐ、GUIベース、プラグインで拡張可能
- Dataform: BQ内専用、SQLX(SQL+独自)、js利用可能、Git連携可、CI/CD対応、データ品質管理
- Cloud Pub/Sub: メッセージングサービス、リアルタイムデータ連携
環境移行
- 6Rs: Rehost, Replatform, Repurchase, Refactor, Retire, Retain
- Database Migration Service: オンプレや他クラウドからGCへのDB移行支援
- Transfer Appliance: 大容量データ(数百TB)を物理的にGCに移行するためのハードウェアデバイスをリクエスト、送り返してデータをGCSにアップロード
BigQuery
基本
- データセット: テーブルのコンテナ、プロジェクト内に複数作成可能
- テーブル: データセット内に作成される、行と列で構成されるデータの集合
- スロット: BQの処理リソース、オンデマンド課金は自動で割り当てられるが、予約購入も可能
- 組み込み関数: 日付操作、文字列操作、数学関数、集計関数など、多数の組み込み関数を提供
- ジョブ: BQで実行される操作の単位、クエリ実行、データの読み込み、エクスポートなど
権限管理
- IAMロール: プロジェクト、データセット、テーブル単位でのアクセス権限を設定
- 役割例: ビューア、編集者、管理者、データ所有者など
データ、環境移行
- BQ Data Transfer Service: 定期的に外部データソースからBQにデータを自動転送
- BQ Migration Service: 他のデータウェアハウスからBQへのデータ移行を支援
- CDC(Change Data Capture): データベースの変更をリアルタイムでキャプチャし、BQに反映
Cloud SQL
- フルマネージドのリレーショナルデータベースサービス
- サポートされるDBエンジン: MySQL、PostgreSQL、SQL Server
- 自動バックアップ、スケーリング、パッチ適用、監視などの管理機能を提供
Cloud Spanner
- グローバル分散型のフルマネージドリレーショナルデータベースサービス
- CPU/ストレージ/ノードを独立してスケーリング可能
- 水平スケーリングとマルチリージョン配置をサポート
- 高い可用性とスケーラビリティを提供
- 強力な一貫性とACIDトランザクションをサポート
- Data Boost: サーバレスの追加計算リソースを一時的に利用して、クエリパフォーマンスを向上
Cloud Bigtable
- フルマネージドのNoSQLビッグデータデータベースサービス
- 大規模なデータセットの低レイテンシアクセスと高スループットを提供
- HBase互換APIをサポートし、既存のHBaseアプリケーションと連携可能
Cloud Firestore
- フルマネージドのNoSQLドキュメントデータベースサービス
- リアルタイムデータ同期とオフラインサポートを提供
- スケーラブルで高可用性を持ち、モバイルおよびウェブアプリケーションに最適
- DatastoreモードとNativeモードの2つのモードを提供
- Datastoreモード: 既存のDatastoreアプリケーションとの互換性を提供(古い)
Cloud Filestore
- フルマネージドのNFSファイルストレージサービス
- 高性能でスケーラブルなファイル共有を提供
- Compute EngineやGKEなどのコンピューティングリソースと連携可能
Cloud Storage
- ストレージクラス
- Standard: 頻繁にアクセスするデータ向け、高い可用性と耐久性
- Nearline: 月1回程度アクセスするデータ向け、低コスト
- Coldline: 年1回程度アクセスするデータ向け、さらに低コスト
- Archive: 長期保存向け、最低コスト
- ライフサイクル管理: オブジェクトの自動移行や削除ルールを設定、コスト最適化が可能
- 厳格なポリシー適用: オブジェクトの保存期間やアクセス頻度に基づいて、適切なストレージクラスへの自動移行や削除を設定可能
- バケットロケーション
- マルチリージョン: 複数のリージョンにデータを分散、最高の可用性と耐久性
- デュアルリージョン: 2つの指定リージョンにデータを分散、特定の地理的要件に対応
- リージョン: 単一リージョンにデータを保存、低レイテンシアクセスが可能
- セキュリティ
- IAMポリシー: バケットやオブジェクト単位でのアクセス制御
- ACL: オブジェクト単位での詳細なアクセス制御
- 監査ログ: Cloud Audit Logsと連携し、アクセス履歴を記録
サービスの新旧対応
- Container Registry -> Artifact Registry: Artifact Registryが新しいサービスで、より多くの機能と柔軟性を提供
- Datastore -> Firestore: Firestoreが新しいサービスで、リアルタイム同期やオフラインサポートなどの追加機能を提供
- Deployment Manager -> Terraform on GCP: Terraformがより広範なインフラストラクチャ管理を提供
- Deployment ManagerはGCP専用のインフラストラクチャ管理ツール
- CEL: Configuration Expression Language、YAMLベースのテンプレートでリソースを定義
- Deployment ManagerはGCP専用のインフラストラクチャ管理ツール
- Stackdriver -> Cloud Operations: Cloud Operationsがより包括的な監視と管理機能を提供
- Cloud Endpoints -> API Gateway: API Gatewayがより高度なAPI管理機能を提供
サーバレスコンピューティングサービスの比較
- App Engine: フルマネージドのPaaS、アプリケーションのデプロイとスケーリングを自動化、標準環境とフレキシブル環境を提供
- Cloud Run: コンテナ化されたアプリケーションのフルマネージドな実行環境、リクエストに応じて自動スケーリング
- Cloud Functions: イベント駆動型のFaaS、コードの断片を関数としてデプロイし、特定のイベントに応じて実行
ユースケース
- App Engine: ウェブアプリケーション、モバイルバックエンド、APIサービス
- Cloud Run: マイクロサービス、APIゲートウェイ、バッチ処理
- Cloud Functions: データ処理、リアルタイムファイル処理、イベント駆動型ワークフロー
世代
- App Engine: 第1世代と第2世代があり、第2世代はより多くの言語とランタイムをサポート
- Cloud Run: 第1世代と第2世代があり、第2世代はより高度な機能と柔軟性を提供
- Cloud Functions: 第1世代と第2世代があり、第2世代はより多くの言語とランタイムをサポート
ログ管理
- Cloud Logging: フルマネージドのログ管理サービス、リアルタイムでログデータの収集、保存、分析が可能
- Cloud Audit Logs: GCPリソースの操作履歴を記録する監査ログサービス
- Cloud Trace: 分散トレーシングサービス、アプリケーションのパフォーマンスを分析、ボトルネックを特定
- Cloud Debugger: アプリケーションの実行中にコードの状態を調査可能、デバッグ支援
- Cloud Profiler: アプリケーションのパフォーマンスプロファイリングサービス、リソース使用状況を最適化
- Cloud service health: GCP全体サービスの稼働状況とパフォーマンスを監視
各サービスとのログ連携
- Compute Engine: VMインスタンスのシステムログとアプリケーションログを収集
- App Engine: アプリケーションログとリクエストログを収集
- GKE: コンテナログとクラスタログを収集
- Cloud Functions: 関数の実行ログを収集
- Cloud Run: サービスのリクエストログとアプリケーションログを収集
エージェント
- Ops Agent: Compute EngineやGKEノードにインストール可能な統合エージェント、ログとメトリクスの収集を一元化
- Fluentd: オープンソースのログ収集エージェント、カスタムログ収集に利用可能
エージェントなしでのログ収集
- App Engine、Cloud Functions、Cloud Runなどのフルマネージドサービスは、エージェントなしで自動的にログを収集
- VPCフローログ: VPCネットワークのトラフィックログを自動的に収集
ログの主な機能
- ログシンク: ログデータを他のGCPサービスや外部システムに転送するための設定
- ログビューア: Cloud Consoleでログデータを検索、フィルタリング、分析するためのツール
- ログベースのメトリクス: ログデータからカスタムメトリクスを作成し、Cloud Monitoringで監視可能
モニタリング
- Cloud Monitoring: フルマネージドのモニタリングサービス、GCPリソースやアプリケーションのパフォーマンスと可用性を監視
- メトリクス: システムやアプリケーションのパフォーマンスデータを収集
- チャート: メトリクスデータを視覚化するためのグラフ
- ダッシュボード: カスタムダッシュボードを作成し、重要なメトリクスを視覚化
- アラートポリシー: メトリクスのしきい値に基づいてアラートを設定
- スコーピング: プロジェクト、フォルダ、組織単位での監視が可能
- 複数プロジェクトの監視設定:指標スコープを作成し、複数のプロジェクトを監視対象として設定することで、一元的な監視が可能
セキュリティ対応
- Cloud IAM: リソースへのアクセス制御を管理
- Cloud Identity: ユーザとグループの管理、シングルサインオン(SSO)を提供
- Cloud Key Management Service(KMS): 暗号化キーの作成、管理、使用を提供
- Cloud Security Command Center: セキュリティの可視化と管理を提供
- VPC Service Controls: サービス間のデータ移動を制限し、データ漏洩を防止
- Cloud Armor: DDoS攻撃やアプリケーションレベルの攻撃から保護
- Secret Manager: 機密情報の安全な保存と管理を提供
請求管理
- Billing Account: 請求情報を管理するためのアカウント
- プロジェクトごとのコスト管理: プロジェクト単位でのコスト分析と予算設定が可能
- コストアラート: 予算超過時に通知を受け取る設定が可能
- コストレポート: 詳細なコスト分析レポートを生成
- 割引:
- Sustained Use Discounts: 長期間使用するリソースに自動的に適用される割引
- Committed Use Contracts: 一定期間のリソース使用を約束することで割引を受ける契約
- Preemptible VM Discounts: プリエンプティブVMインスタンスに対して提供される割引
その他
- プリエンプティブ: 低コストな一時的VMインスタンス、通常のVMよりも安価だが、Googleによって予告なく停止される可能性あり
- スポットVM: プリエンプティブVMの新名称、同様に低コストで一時的なVMインスタンス
- エフェメラルIPアドレス: VMインスタンスのライフサイクルに依存する一時的なパブリックIPアドレス
- 永続ディスク: VMインスタンスのストレージとして使用されるブロックストレージ、VMの停止や削除後もデータが保持される
- ローカルSSD: VMインスタンスに直接接続される高速な一時的ストレージ、VMの停止や削除後にデータが失われる
- カスタムマシンタイプ: ユーザがCPUとメモリを自由に組み合わせてVMインスタンスを作成可能
- Cloud Shell: ブラウザベースのターミナル環境、gcloudコマンドラインツールがプリインストールされている
- Cloud Marketplace: 事前構築されたソフトウェアソリューションを提供、ワンクリックでデプロイ可能
- Cloud APIs: GCPサービスにプログラムからアクセスするためのAPI群
- Cloud storage API: Cloud Storageリソースの管理
- Cloud Functions API: Cloud Functionsリソースの管理
- Cloud Pub/Sub API: Pub/Subリソースの管理
- BigQuery API: BigQueryリソースの管理
- Compute Engine API: Compute Engineリソースの管理
- 年間停止可能時間:
- 99.9%: 8.76時間/年
- 99.999%: 5.26分/年