옵션
집집 Skill 클라우드 인프라 terraform-module-library

terraform-module-library

amurata/cc-tools amurata/cc-tools

Infrastructure as Code(IaC) 모범 사례를 따르며, AWS, Azure, GCP 인프라용 재사용 가능한 Terraform 모듈을 구축합니다. 이 모듈은 인프라 모듈 생성, 클라우드 프로비저닝 표준화, 재사용 가능한 IaC 구성 요소 구현 시에 사용됩니다.

...모든 것을 확장하십시오
50
업데이트 된 시간 2026년 6월 29일

소개 terraform-module-library

terraform-module-library 스킬은 AWS, Azure 및 GCP 전반에 걸쳐 프로덕션 환경에 바로 적용 가능한 인프라를 배포하기 위해 설계된, 재사용 가능한 Terraform 모듈의 체계적인 모음을 제공합니다. 이 스킬은 VPC, Kubernetes 클러스터, 데이터베이스 및 스토리지 서비스와 같은 일반적인 구성 요소에 대한 표준화된 패턴을 제공함으로써, 클라우드 인프라를 일관되게 관리하는 데 따르는 과제를 해결합니다. 이 스킬은 ‘인프라스트럭처 애즈 코드(Infrastructure as Code)’ 모범 사례를 따름으로써 클라우드 환경의 생성, 테스트 및 유지 관리를 간소화하고, 잘못된 구성의 위험을 줄이며, 여러 클라우드 공급자 전반에 걸쳐 반복 가능한 배포를 보장합니다.

주요 기능으로는 각 클라우드 제공업체별로 별도의 디렉터리를 두고, VPC, RDS, S3, AKS, GKE, Cloud SQL과 같은 개별 리소스를 위한 하위 디렉터리를 갖춘 체계적인 모듈 구조가 있습니다. 각 모듈은 주요 Terraform 리소스, 입력 변수, 출력, 예제, 버전 고정 및 테스트 파일로 구성된 일관된 패턴을 따릅니다. 모듈에는 신뢰성과 추적성을 유지하기 위한 입력 유효성 검사, 시맨틱 버저닝, Terratest 통합 및 태깅 표준이 포함되어 있습니다. 또한, 예제 구성을 통해 실제 구현 사례를 보여줌으로써 기존 인프라 파이프라인에 더 쉽게 도입하고 통합할 수 있도록 돕습니다.

이 스킬은 프로비저닝 프로세스를 표준화하고 재사용 가능하며 유지 관리가 용이한 Terraform 모듈을 구축하고자 하는 DevOps 엔지니어, 클라우드 아키텍트 및 인프라 팀에 이상적입니다. 이 스킬은 멀티 클라우드 배포, 조직 차원의 Terraform 표준 수립, 재사용 가능한 인프라 구성 요소 구축, 모범 사례 준수 보장 등의 시나리오를 지원합니다. 운영의 일관성을 유지하면서 클라우드 도입을 가속화하고자 하는 조직에게 이 스킬은 특히 유용할 것입니다.

자주 묻는 질문

terraform-module-library 는 어떤 클라우드 제공업체를 지원하나요?

이 스킬은 AWS, Azure 및 GCP용 재사용 가능한 Terraform 모듈을 제공하며, 각 공급자의 일반적인 인프라 구성 요소를 다룹니다.

이 모듈들을 프로덕션 환경에서 사용할 수 있나요?

예, 이 모듈들은 프로덕션 환경에서 바로 사용할 수 있도록 설계되었으며, 입력 검증, 태깅, 버전 고정, Terratest를 통한 테스트 등 모범 사례를 따릅니다.

모듈은 어떻게 구성되고 정리되어 있나요?

모듈은 클라우드 제공업체 및 리소스 유형별로 구성되어 있으며, main.tf, variables.tf, outputs.tf, versions.tf, README.md, 예제 및 테스트를 포함하는 표준 패턴을 따릅니다.

이 모듈들은 멀티 클라우드 배포를 지원하나요?

네, 이 스킬은 여러 클라우드 제공업체에 걸쳐 통합할 수 있는 재사용 가능한 구성 요소를 생성하기 위해 고안되었습니다.

이 모듈을 사용하기 위한 요구 사항이 있나요?

사용자는 Terraform 및 클라우드 제공업체 서비스에 대한 실무 지식을 갖추고 있어야 합니다. 모듈을 사용하려면 관련 클라우드 계정에 대한 접근 권한과 적절한 IAM 권한이 필요합니다.

GitHub에서 보기

English | 日本語

Terraformモジュールライブラリ

AWS、Azure、GCPインフラ用の本番環境対応Terraformモジュールパターン。

目的

複数のクラウドプロバイダーにまたがる一般的なクラウドインフラパターン用の再利用可能で、十分にテストされたTerraformモジュールを作成します。

使用タイミング

  • 再利用可能なインフラコンポーネントの構築
  • クラウドリソースプロビジョニングの標準化
  • Infrastructure as Codeベストプラクティスの実装
  • マルチクラウド互換モジュールの作成
  • 組織のTerraform標準の確立

モジュール構造

terraform-modules/├── aws/│   ├── vpc/│   ├── eks/│   ├── rds/│   └── s3/├── azure/│   ├── vnet/│   ├── aks/│   └── storage/└── gcp/    ├── vpc/    ├── gke/    └── cloud-sql/

標準モジュールパターン

module-name/├── main.tf          # メインリソース├── variables.tf     # 入力変数├── outputs.tf       # 出力値├── versions.tf      # プロバイダーバージョン├── README.md        # ドキュメント├── examples/        # 使用例│   └── complete/│       ├── main.tf│       └── variables.tf└── tests/           # Terratestファイル    └── module_test.go

AWS VPCモジュール例

main.tf:

resource "aws_vpc" "main" {  cidr_block           = var.cidr_block  enable_dns_hostnames = var.enable_dns_hostnames  enable_dns_support   = var.enable_dns_support  tags = merge(    {      Name = var.name    },    var.tags  )}resource "aws_subnet" "private" {  count             = length(var.private_subnet_cidrs)  vpc_id            = aws_vpc.main.id  cidr_block        = var.private_subnet_cidrs[count.index]  availability_zone = var.availability_zones[count.index]  tags = merge(    {      Name = "${var.name}-private-${count.index + 1}"      Tier = "private"    },    var.tags  )}resource "aws_internet_gateway" "main" {  count  = var.create_internet_gateway ? 1 : 0  vpc_id = aws_vpc.main.id  tags = merge(    {      Name = "${var.name}-igw"    },    var.tags  )}

variables.tf:

variable "name" {  description = "VPCの名前"  type        = string}variable "cidr_block" {  description = "VPC用CIDRブロック"  type        = string  validation {    condition     = can(regex("^([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$", var.cidr_block))    error_message = "CIDRブロックは有効なIPv4 CIDR表記でなければなりません。"  }}variable "availability_zones" {  description = "アベイラビリティゾーンのリスト"  type        = list(string)}variable "private_subnet_cidrs" {  description = "プライベートサブネット用CIDRブロック"  type        = list(string)  default     = []}variable "enable_dns_hostnames" {  description = "VPCでDNSホスト名を有効化"  type        = bool  default     = true}variable "tags" {  description = "追加タグ"  type        = map(string)  default     = {}}

outputs.tf:

output "vpc_id" {  description = "VPCのID"  value       = aws_vpc.main.id}output "private_subnet_ids" {  description = "プライベートサブネットのID"  value       = aws_subnet.private[*].id}output "vpc_cidr_block" {  description = "VPCのCIDRブロック"  value       = aws_vpc.main.cidr_block}

ベストプラクティス

  1. モジュールにセマンティックバージョニングを使用
  2. 説明付きですべての変数を文書化
  3. examples/ディレクトリに例を提供
  4. 入力検証に検証ブロックを使用
  5. モジュール構成のために重要な属性を出力
  6. versions.tfでプロバイダーバージョンをピン
  7. 計算値にlocalsを使用
  8. count/for_eachで条件付きリソースを実装
  9. Terratestでモジュールをテスト
  10. すべてのリソースに一貫してタグ付け

モジュール構成

module "vpc" {  source = "../../modules/aws/vpc"  name               = "production"  cidr_block         = "10.0.0.0/16"  availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]  private_subnet_cidrs = [    "10.0.1.0/24",    "10.0.2.0/24",    "10.0.3.0/24"  ]  tags = {    Environment = "production"    ManagedBy   = "terraform"  }}module "rds" {  source = "../../modules/aws/rds"  identifier     = "production-db"  engine         = "postgres"  engine_version = "15.3"  instance_class = "db.t3.large"  vpc_id     = module.vpc.vpc_id  subnet_ids = module.vpc.private_subnet_ids  tags = {    Environment = "production"  }}

参照ファイル

  • assets/vpc-module/ - 完全なVPCモジュール例
  • assets/rds-module/ - RDSモジュール例
  • references/aws-modules.md - AWSモジュールパターン
  • references/azure-modules.md - Azureモジュールパターン
  • references/gcp-modules.md - GCPモジュールパターン

テスト

// tests/vpc_test.gopackage testimport (    "testing"    "github.com/gruntwork-io/terratest/modules/terraform"    "github.com/stretchr/testify/assert")func TestVPCModule(t *testing.T) {    terraformOptions := &terraform.Options{        TerraformDir: "../examples/complete",    }    defer terraform.Destroy(t, terraformOptions)    terraform.InitAndApply(t, terraformOptions)    vpcID := terraform.Output(t, terraformOptions, "vpc_id")    assert.NotEmpty(t, vpcID)}

関連スキル

  • multi-cloud-architecture - アーキテクチャ決定用
  • cost-optimization - コスト効率的な設計用

모든 파일

1개 파일

terraform-module-library 설치

스킬 파일을 다운로드하여 .claude/skills/ 디렉터리에 압축을 풀어주세요.

ZIP 다운로드

저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.

git clone https://github.com/amurata/cc-tools/blob/main/i18n/ja/plugins/cloud-infrastructure/skills/terraform-module-library/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

복사 복사
빠른 설정: skill 폴더를 .claude/skills/로 복사하면 Claude가 해당 스킬을 자동으로 감지하여 사용합니다.
저장소 amurata/cc-tools

관련 스킬

Cloudflare Manager
업데이트 된 시간 2026년 6월 29일
netlify-forms
업데이트 된 시간 2026년 8월 23일
pinecone
업데이트 된 시간 2026년 6월 29일
azure-setup-guide
업데이트 된 시간 2026년 6월 29일
OR