↓メインコンテンツへスキップ

TerraformでGoogle Cloudを学ぶ

0222-nnn
著者
0222-nnn
猫が好き
目次

TerraformでGoogle Cloudのリソースを実際に作りながら学ぶシリーズです。

このページの位置づけ
#

[Terraform CLI チートシート](/terraform-cli/)
    ↓
Terraform × Google Cloud シリーズ(このページ)
    ↓
各 GCP 検証記事(22本)

CLIコマンドの確認は先に Terraform コマンド一覧・チートシート を参照してください。

BasicではProviderの接続確認から主要サービスの基本構成まで、AdvancedではIAMや複数サービスを組み合わせた実践的な構成を扱います。各項目から解説記事と対応するTerraformコードの両方を参照できます。

Basic Examples
#

Advanced Examples
#

Basicの内容を組み合わせ、認証、権限分離、Remote State、Application接続を扱います。

# テーマ 解説記事 Terraformコード
01 GCE + IAP + VPC 外部IPなしのGCEへIAP経由で接続する 01-gce-iap-vpc
02 Cloud Run + Artifact Registry 自前RepositoryのImageをデプロイする 02-cloudrun-artifact-registry
03 GKE + Workload Identity + GCS Podから鍵なしでStorageへアクセスする 03-gke-workload-identity-gcs
04 GCS Remote Backend Terraform StateをGCSで管理する 04-gcs-remote-backend
05 GitHub Actions + WIF GitHub Actionsから鍵なしで認証する 05-wif-github-actions
06 Cloud Run + Cloud SQL Cloud RunからPostgreSQLへ接続する 06-cloudrun-cloudsql-postgresql
11 GKE Private Cluster + 踏み台 プライベートクラスタと踏み台VMを作成する 11-gke-private-bastion
12 GKE + Memorystore for Redis プライベートクラスタからRedisへ接続する 12-gke-bastion-redis-instance
13 GKE + Memorystore for Redis Cluster プライベートクラスタからRedis Clusterへ接続する 13-gke-bastion-redis-cluster
14 GKE + Internal HTTP LB(NEG) PodをInternal HTTP LBでポート別に振り分ける 14-gke-bastion-ilb-multi-neg
15 GKE Dual Endpoint プライベート+パブリックの両方から接続する 15-gke-dual-endpoint
16 GKE Dataplane V2 + NetworkPolicy NetworkPolicyでPod間通信を遮断する 16-gke-dataplane-v2-networkpolicy
17 GKE ノードあたり最大Pod数 最大Pod数を小さくしすぎるとどうなるか 11-gke-private-bastion(max_pods_per_node変数を追加)
18 GKE + ip-masq-agent(SNAT) Peering越しのPod→VM通信が落ちる原因を、ルートだと思い込んでいた話 17-gke-routes-based-ip-masq
19 GKE Standalone NEG 復旧 NEGを消したときLBのバックエンドはどうなるか 18-gke-standalone-neg-recovery
20 GKE Secret Manager CSI Podにシークレットをファイルとしてマウントする 19-gke-secret-manager-csi
21 GKE ノードのブートディスクCMEK 鍵をローテーションしたあと既存ノードはどうなるか 20-gke-cmek-node-boot-disk-rotation
22 GKE Blue/Greenアップグレード soak期間中にロールバックする 21-gke-blue-green-node-pool-upgrade
23 GKE SURGEアップグレード Blue/Greenと同じ条件で測って比べる 22-gke-surge-node-pool-upgrade
24 GKE default compute class 有効にしても何も起きない理由 23-gke-default-compute-class
25 GKE Cloud Loggingのログ形式 Fluentdサイドカーが要らなかった話 24-gke-fluentd-log-format
26 Terraform + Ansible applyが成功してもVMの中は設定されていなかった話 25-gce-ansible-ops-agent-nginx
27 Cloud Billing 予算アラート 予算アラートを作り、Pub/Sub通知の中身まで確かめた 26-billing-budget-pubsub
28 Certificate Manager ドメイン認証がFAILEDになった9分後にAUTHORIZEDへ戻り、証明書はACTIVEになった 27-regional-alb-certificate-manager
29 Pod の退避 GKEでPodの退避を起こしたら、監視に必要なメトリクスがCloud Monitoringに来なかった 28-gke-pod-eviction
30 リージョンALBと proxy-only subnet proxy-onlyサブネットを塞ぐと、リージョンALBはHEALTHYのまま504を返した 08-regional-external-alb-neg
31 ヘルスチェックと切り離しの時間 draining=300のままNEGからバックエンドを外したら、gcloudが320秒終わらなかった 08-regional-external-alb-neg
32 Cloud Armor Cloud Armorで送信元IPを拒否したら、リクエストはバックエンドに届かなかった 09-regional-alb-cloud-armor
33 IAP SSH IAPのSSHトンネルは、誰が何をしたかどこまで残るのか 07-iap-ssh-port-forwarding
34 セッションアフィニティ Cookieに backend-a と書いたら backend-a2 に振られた 10-regional-alb-session-affinity
35 ダッシュボード Cloud Monitoring ダッシュボード実践|既存ダッシュボードの活用からCustom Dashboard・Terraform管理まで 29-cloud-monitoring-dashboard

学習を始める
#

初めての場合は、00 Provider / ADCから順に進めてください。すでにTerraformとGoogle Cloudの基本操作に慣れている場合は、必要なサービスの記事またはAdvanced Examplesから始められます。