option
MaisonMaison Skill Infrastructure cloud terraform-module-library

terraform-module-library

amurata/cc-tools amurata/cc-tools

Conformément aux meilleures pratiques en matière d'« Infrastructure as Code », nous développons des modules Terraform réutilisables pour les infrastructures AWS, Azure et GCP. Ces modules sont utilisés pour la création de modules d'infrastructure, la standardisation de l'approvisionnement dans le cloud et la mise en œuvre de composants IaC réutilisables.

...Développer tout
50
Heure mise à jour 29 juin 2026

À propos terraform-module-library

La compétence « terraform-module-library » fournit un ensemble structuré de modules Terraform réutilisables, conçus pour déployer des infrastructures prêtes à la production sur AWS, Azure et GCP. Elle répond aux défis liés à la gestion cohérente des infrastructures cloud en proposant des modèles standardisés pour des composants courants tels que les VPC, les clusters Kubernetes, les bases de données et les services de stockage. En suivant les meilleures pratiques de l’« Infrastructure as Code », cette compétence simplifie la création, les tests et la maintenance des environnements cloud, réduisant ainsi le risque d’erreurs de configuration et garantissant des déploiements reproductibles chez plusieurs fournisseurs de cloud.

Parmi les principales fonctionnalités, on trouve des structures de modules bien organisées, avec des répertoires distincts pour chaque fournisseur de cloud et des sous-répertoires pour les ressources individuelles telles que les VPC, RDS, S3, AKS, GKE et Cloud SQL. Chaque module suit un modèle cohérent comprenant les principales ressources Terraform, les variables d’entrée, les sorties, des exemples, le verrouillage de version et des fichiers de test. Les modules intègrent la validation des entrées, la gestion sémantique des versions, l’intégration de Terratest et des normes de balisage afin de garantir la fiabilité et la traçabilité. De plus, des exemples de configurations illustrent des implémentations concrètes, facilitant ainsi l’adoption et l’intégration dans les pipelines d’infrastructure existants.

Cette compétence est idéale pour les ingénieurs DevOps, les architectes cloud et les équipes d’infrastructure qui souhaitent standardiser les processus de provisionnement et créer des modules Terraform réutilisables et faciles à maintenir. Elle prend en charge des scénarios tels que les déploiements multicloud, la mise en place de normes Terraform au sein de l’organisation, la création de composants d’infrastructure réutilisables et la garantie de la conformité aux meilleures pratiques. Les organisations cherchant à accélérer leur adoption du cloud tout en préservant la cohérence opérationnelle trouveront cette compétence particulièrement utile.

FAQ

Quels fournisseurs de cloud sont pris en charge par l’ terraform-module-library?

Cette compétence fournit des modules Terraform réutilisables pour AWS, Azure et GCP, couvrant les composants d’infrastructure courants pour chaque fournisseur.

Ces modules peuvent-ils être utilisés dans des environnements de production ?

Oui, les modules sont conçus pour être prêts à l’emploi en production et respectent les meilleures pratiques, notamment la validation des entrées, le balisage, le verrouillage de version et les tests avec Terratest.

Comment les modules sont-ils structurés et organisés ?

Les modules sont organisés par fournisseur de cloud et par type de ressource, selon un modèle standard comprenant les fichiers main.tf, variables.tf, outputs.tf, versions.tf, README.md, ainsi que des exemples et des tests.

Ces modules prennent-ils en charge les déploiements multicloud ?

Oui, cette compétence est destinée à la création de composants réutilisables pouvant être intégrés chez plusieurs fournisseurs de cloud.

Y a-t-il des prérequis pour utiliser ces modules ?

Les utilisateurs doivent disposer de connaissances pratiques de Terraform et des services des fournisseurs de cloud. Les modules supposent un accès aux comptes cloud concernés et des autorisations IAM appropriées.

Voir sur 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 - コスト効率的な設計用

Tous les fichiers

1 fichiers
SKILL.md 6.2k
Voir

Installer terraform-module-library

Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.

Télécharger le ZIP

Clonez le dépôt et copiez les fichiers de compétence dans votre projet.

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

Copier Copier
Configuration rapide: Copiez le dossier de la compétence dans .claude/skills/ ; Claude la détectera automatiquement et l'utilisera.

Compétences similaires

Cloudflare Manager
Heure mise à jour 29 juin 2026
netlify-forms
Heure mise à jour 23 août 2026
pinecone
Heure mise à jour 29 juin 2026
azure-setup-guide
Heure mise à jour 29 juin 2026
OR