terraform-aws について
AWS インフラを Terraform で構築・管理するためのスキルです。Provider、リソース、モジュールの例に加え、リモート状態や環境分離の実践方法を扱います。
主な機能
- 01AWS Terraform Provider の設定
- 02VPC と EC2 リソースの定義
- 03VPC モジュールの利用
- 04init、plan、apply、destroy の実行
- 05リモート状態と環境分離の管理
活用シーン
- 01Terraform で AWS ネットワークとインスタンスを作成
- 02モジュールで VPC 構成を整理
- 03環境ごとに状態を分けて変更を適用
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ bagelhole/ devops-security-agent-skills --skill terraform-awsインストール後、Claude Code で/terraform-awsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/vpc-module.tfreferences/best-practices.mdscripts/tf-init.sh詳細
Terraform AWS
Terraform で AWS インフラストラクチャをプロビジョニングし、管理します。
プロバイダーの設定
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
backend "s3" {
bucket = "terraform-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
}
}
provider "aws" {
region = var.region
default_tags {
tags = {
Environment = var.environment
ManagedBy = "terraform"
}
}
}
リソースの例
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
tags = { Name = "main-vpc" }
}
resource "aws_instance" "web" {
ami = data.aws_ami.amazon_linux.id
instance_type = "t3.micro"
subnet_id = aws_subnet.public.id
tags = { Name = "web-server" }
}
モジュール
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "my-vpc"
cidr = "10.0.0.0/16"
azs = ["us-east-1a", "us-east-1b"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24"]
enable_nat_gateway = true
}
コマンド
terraform init
terraform plan -out=plan.tfplan
terraform apply plan.tfplan
terraform destroy
ベストプラクティス
- ロック機能付きのリモートステートを使用します
- モジュール構造を実装します
- 環境ごとにワークスペースまたは個別のステートを使用します
- プロバイダーのバージョンを固定します
- AMI にはデータソースを使用します
関連スキル
コメント
Markdown 対応