最終確認: 2026年5月
PMLE 試験の対象となる AWS サービスを、プレーンな Terraform を使用して構築します。1 ブロックずつ、それぞれ試験ドメインに関連付けられています。同じコードが OpenTofu でも動作します。
このラボの終わりまでに、プレーンなTerraformを使用して、PMLE(Google Professional Machine Learning Engineer)の最小限の現実的な基盤をプロビジョニングできます。具体的には、モデルファイルとトレーニングデータ用のCloud Storage成果物バケット、実験用のVertex AI Workbenchインスタンス、予測提供用のVertex AI Endpointです。これらは4つのブロックで構成されており、すべてのPMLEトレーニングおよびデプロイワークフローはこの基盤上に構築されます。
これらのスニペットを1つの main.tf にドロップし、terraform init を実行してから、terraform apply をステップバイステップで実行してください。
注:訓練済みモデル自体はTerraform経由ではプロビジョニングされません。モデルはトレーニング後に gcloud ai models upload またはVertex AI SDK経由でアップロードされます。ここでプロビジョニングされるエンドポイントはモデルをホストする準備ができている状態であり、モデルのデプロイは terraform apply 後に個別のステップとして行われます。
>= 1.5 または OpenTofu >= 1.6。your-project-id を置き換えてください。アイドル状態での課金項目が2つあります:
Workbenchを24時間365日稼働させると月額約100ドルかかります。各ラボセッション後には必ず停止してください。 エンドポイントにモデルをデプロイすると、n1-standard-2 での提供に対して約0.20ドル/時の費用(常時稼働で月額約144ドル)がかかると予想されます。
Vertex AI、Cloud Notebooks (Workbench用)、およびCloud StorageのAPIを有効にします。
terraform {
required_version = ">= 1.5"
required_providers {
google = { source = "hashicorp/google", version = "~> 6.0" }
}
}
provider "google" {
project = "your-project-id" # REPLACE
region = "us-central1"
}
locals {
labels = {
project = "certlabpro-pmle"
managed_by = "terraform"
}
}
resource "google_project_service" "aiplatform" {
service = "aiplatform.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "notebooks" {
service = "notebooks.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "storage" {
service = "storage.googleapis.com"
disable_on_destroy = false
}PMLE推奨のバケットレイアウト:MLプロジェクトごとに1つのリージョンバケットを設け、data/raw/、data/processed/、models/、pipelines/ のサブフォルダを作成します。ここでは単一のバケットをプロビジョニングします。命名規則は <project-name>-ml-<region>-<random> に従います。頻繁にアクセスされるトレーニングデータには標準ストレージクラスを使用し、90日後にニアラインへのライフサイクルルールを設定します。
resource "random_id" "suffix" {
byte_length = 4
}
resource "google_storage_bucket" "ml" {
name = "certlabpro-pmle-ml-${random_id.suffix.hex}"
location = "us-central1"
uniform_bucket_level_access = true
force_destroy = true # lab-only
versioning {
enabled = true # PMLE-recommended for model artifacts
}
lifecycle_rule {
condition {
age = 90
}
action {
type = "SetStorageClass"
storage_class = "NEARLINE"
}
}
labels = local.labels
depends_on = [google_project_service.storage]
}Vertex AI Workbench は、PMLEで標準的な実験環境です。PyTorch、TensorFlow、scikit-learn、Vertex AI SDKがプリロードされたGCE VM上のマネージドJupyterです。ここでは e2-standard-4 インスタンスをプロビジョニングします。実際のトレーニングワークロードには、GPUインスタンスタイプ (n1-standard-8 + nvidia-tesla-t4) に変更してください。
アクティブに使用していないときは、Workbenchコンソール経由でインスタンスを停止してください。そうしないと月額約100ドルかかります。
resource "google_workbench_instance" "main" {
name = "certlabpro-pmle-workbench"
location = "us-central1-a"
gce_setup {
machine_type = "e2-standard-4"
boot_disk {
disk_size_gb = 150
disk_type = "PD_STANDARD"
}
data_disks {
disk_size_gb = 100
disk_type = "PD_STANDARD"
}
}
labels = local.labels
depends_on = [google_project_service.notebooks]
}Vertex AI Endpoints はPMLEのデプロイの基本要素であり、すべての提供されるモデルはエンドポイントの背後に存在します。その流れは次のとおりです。(1) モデルをトレーニングし (Workbench / Vertex AI Training / AutoML経由)、(2) それを Vertex AI Model Registry にアップロードし (gcloud ai models upload)、(3) モデルをエンドポイントにデプロイします。PMLE試験では、このモデル → エンドポイント → トラフィック分割という形が標準的な提供パターンとして問われます。
ここでは、デプロイされたモデルのないエンドポイントをプロビジョニングします。モデルがアタッチされるまでは無料です。モデルは以下を使用してデプロイします。
gcloud ai models deploy MODEL_ID \
--endpoint certlabpro-pmle-endpoint \
--machine-type n1-standard-2 \
--region us-central1
4つのブロック (プロバイダー+API、成果物バケット、Workbench環境、エンドポイント表面) が整えば、PMLEの提供基盤は完成です。実際のPMLEワークフローでは、この基盤の上にVertex AI Pipelines (Kubeflow)、Vertex AI Experiments、Vertex AI Model Monitoring、Vertex AI Feature Store、Vertex AI Vizierがレイヤーとして構築されます。
resource "google_vertex_ai_endpoint" "main" {
name = "certlabpro-pmle-endpoint"
display_name = "PMLE lab endpoint"
location = "us-central1"
labels = local.labels
depends_on = [google_project_service.aiplatform]
}terraform destroy ですべてが削除されます。Workbenchインスタンスは削除と同時に課金が停止します (月額約100ドルを節約)。エンドポイントにはデプロイされたモデルがないため、もともと無料です。もし terraform apply の後にモデルをデプロイした場合は、gcloud ai endpoints undeploy-model を使用してまずモデルをアンデプロイしてください。そうしないと削除に失敗します。GCSバケットは force_destroy = true のため削除されます。
PMLEは、このラボでは扱いきれない多くのVertex AIサービスをカバーしています。これには、Vertex AI Pipelines (Kubeflow Pipelines + Vertex Pipelines SDK)、Vertex AI Training (カスタムトレーニングジョブ + ハイパーパラメータチューニング)、Vertex AI AutoML (表形式 / ビジョン / NLP / 予測の自動トレーニング)、Vertex AI Feature Store (オンライン + オフライン提供)、Vertex AI Model Monitoring (ドリフト + スキュー検出)、Vertex AI Experiments (追跡 + 比較)、Vertex AI Vizier (ベイズハイパーパラメータ最適化)、Vertex AI Matching Engine (ベクトル類似性検索)、Vertex AI Tensorboard、バッチモードでのVertex AI Predictions、BigQuery ML (データベース内MLトレーニング)、Generative AI Studio + Model Garden + Vertex AI Agent Builder ([[gcp-gail]])、大規模モデルトレーニング用のTPUポッド、Vertex AI Pipelinesテンプレート、Vertex AI Workbenchのユーザー管理型とインスタンス型の区別 (レガシー → マネージドへの移行) などがあります。
このラボでは、GCS + Workbench + Endpoint の基本要素にこだわります。なぜなら、これらがPMLEで標準的なトレーニングと提供の骨格だからです。他のすべてのVertex AIサービスはこの基盤に接続されます。PipelinesはモデルをGCSに書き込み登録するトレーニングジョブをオーケストレーションし、Feature Storeはトレーニングジョブに特徴量を読み込み、Model Monitoringはステップ4でデプロイされたエンドポイントを監視します。この基盤を習得すれば、より高レベルの構成要素は容易に構築できます。
サービスごとの概念的な内容は、この認定ページの閲覧、プレイブック、およびEditorialセクションを参照してください。