クラウドインフラを
コードで書けるようになる。
HCL の書き方、AWS / Azure / GCP のリソース定義、GitHub での運用までを一貫して学べる構成。 初学者がつまずきやすい順番と勘所を、公式ドキュメントと実運用ベースで体系化しました。
HCL(HashiCorp Configuration Language)
Terraform の設定言語そのもの。書き方の文法と考え方を順に。
はじめに ─ Terraform と HCL
IaC とは何か、なぜ HCL を使うのか。
基本構文(block / argument)
HCL のたった 2 種類の文法を理解する。
値(variable / local / output)
3 種類の値の使い分けとベストプラクティス。
型(string〜object・optional)
Terraform の型システムを正確に。
resource と data
作るもの(resource)と参照するもの(data)。
式と関数
三項演算子・for 式・splat・組み込み関数。
反復構築(count / for_each / dynamic)
「数だけ作る」「集合から作る」「ブロックを動的に作る」。
モジュール
再利用とディレクトリ分割。
state とワークフロー
terraform init / plan / apply、リモート backend、state 操作。
lock ファイルと依存管理
.terraform.lock.hcl の役割とコミット運用。
デバッグとトラブルシュート
terraform console、TF_LOG、エラー集。
provisioners と最終手段
非推奨の機能と、その代替案。
check / precondition / postcondition
plan で守るアサーションと継続監視。
AWS リソース定義
AWS プロバイダで頻出のリソース/属性/組み合わせを章ごとに。
プロバイダと認証
required_providers、profile、assume_role、default_tags。
VPC とネットワーク
VPC / Subnet / IGW / NAT / Route Table / SG。
EC2 とコンピュート
aws_instance、AMI 検索、key_pair、user_data。
S3 とストレージ
S3 バケットの「分離型」モダンスタイル、aws_s3_object。
IAM
role / policy / instance_profile / policy_document。
RDS / DynamoDB
aws_db_instance と aws_dynamodb_table。
Lambda / API Gateway
サーバーレス API の最小構成。
CloudFront / Route 53 / ACM
独自ドメインの静的サイトを作る一式(このサイト自身の構成)。
CloudWatch / SNS / SQS
ログ・メトリクス・アラーム・キュー。
ECS / ECR / ALB
Fargate でコンテナを動かす。
データソース集
caller_identity / region / availability_zones / ami など。
KMS(暗号化キー管理)
カスタマー管理キー、自動ローテーション、キーポリシー。
Secrets Manager / SSM
機密値の保管と自動回転、データ駆動の設定。
EBS / EFS
ブロックストレージとファイルシステムの使い分け。
VPC Endpoints / PrivateLink
VPC から AWS API へプライベート接続。
Auto Scaling Group / Launch Template
EC2 の自動スケールとローリング更新。
EventBridge
cron スケジュール、イベント駆動、Scheduler。
AWS Backup
横断的バックアップ計画と Vault Lock。
Azure リソース定義
azurerm プロバイダで頻出のリソースを章ごとに。AWS との対応もコラム化。
プロバイダと認証
azurerm、features、Subscription / Tenant、OIDC。
Resource Group
Azure 固有の論理グループ。命名規約とタグ戦略。
VNet とネットワーク
Virtual Network、Subnet、NSG、NAT Gateway。
Virtual Machines
VM、NIC、Managed Identity、Scale Set。
Storage Account
Blob / File / Queue / Table、暗号化、ネットワーク制限。
Entra ID と RBAC
Role Assignment、Managed Identity、カスタムロール。
Azure SQL / Cosmos DB
SQL Database、Cosmos DB、PostgreSQL Flexible。
Functions / Container Apps
サーバーレス 3 選とコンテナレジストリ。
Key Vault
Secrets / Keys / Certificates。RBAC モード推奨。
Front Door / DNS
CDN + LB + WAF を 1 サービスで。Managed Certificate。
Monitor / Log Analytics
LAW、Diagnostic Setting、Action Group、アラート。
データソース集
client_config / subscription / azuread_user 等。
GCP リソース定義
google プロバイダで頻出のリソースを章ごとに。AWS / Azure との違いも明記。
プロバイダと認証
google プロバイダ、ADC、WIF、Impersonation。
Project と階層
Organization / Folder / Project、API 有効化、Labels。
VPC とネットワーク
グローバル VPC、Subnet、Firewall、Cloud NAT。
Compute Engine
VM、起動スクリプト、Spot VM、MIG。
Cloud Storage
バケット、Storage Class、ライフサイクル、CMEK。
IAM
policy / binding / member の使い分け、SA、条件付き IAM。
Cloud SQL / Firestore
PostgreSQL、Firestore、Spanner 概要。
Cloud Run / Functions
Cloud Run service / jobs、Functions v2、Artifact Registry。
Cloud KMS / Secret Manager
KeyRing と CryptoKey、ローテーション、シークレット参照。
Cloud LB / Cloud DNS
グローバル LB の構成要素、Managed SSL、Cloud CDN。
Cloud Logging / Monitoring
Log Sink、AlertPolicy、Uptime Check、通知チャネル。
データソース集
project / client_config / compute_image / zones 等。
GitHub × Terraform 運用
共同作業の土台と CI/CD、モジュール公開/自動更新まで。
Git 基本コマンド
add / commit / push / pull / branch / merge を 1 ページで。
標準リポジトリ構成
modules/ と envs/ を使った Terraform 用ディレクトリ構成。
.gitignore と機密管理
state や .tfvars を絶対にコミットしない方法。
pre-commit フック
fmt / validate / tflint / trivy を commit 前に自動実行。
GitHub Actions × Terraform
PR で plan、main マージで apply の標準ワークフロー。
OIDC で AWS にキーレス認証
アクセスキーを secrets に入れない、推奨パターン。
ブランチ保護 / CODEOWNERS / Environments
本番 apply に人間ゲートを置く設定。
PR レビューの進め方(IaC 観点)
plan の差分・破壊的変更・コストの見方。
ブランチ戦略
GitHub Flow / Trunk-Based / Git Flow の比較。
モジュールバージョニング
semver と Git tag で安全にモジュールを共有。
Dependabot / Renovate
provider と module の自動更新 PR。
コミット規約(Conventional Commits)
1 行ルールで CHANGELOG とリリース自動化。
Reusable workflows / Composite actions
CI/CD の DRY 化、組織内共有。
チーム開発(コミット → ビルド → デプロイ)
複数人で安全にコードを育てる仕組み。GitHub / AWS / Azure / GCP それぞれのサービスを横断で整理。
全体像 ─ コミット → ビルド → デプロイ
標準ワークフロー、CI と CD の境目、3 大原則。
GitHub でチーム開発を完結させる
Repository / PR / Branch Protection / Actions / Environments / OIDC。
AWS でチーム開発(Developer Tools)
CodeCommit / CodeBuild / CodeDeploy / CodePipeline + OIDC 連携。
Azure でチーム開発(Azure DevOps)
Repos / Pipelines / Boards / Artifacts + Federated Credential。
GCP でチーム開発(Cloud Build / Deploy)
Cloud Build / Artifact Registry / Cloud Deploy + Workload Identity Federation。