terraform-module-library
amurata/cc-tools
In Übereinstimmung mit den Best Practices für „Infrastructure as Code“ erstellen wir wiederverwendbare Terraform-Module für AWS-, Azure- und GCP-Infrastrukturen. Diese werden bei der Erstellung von Infrastrukturmodulen, der Standardisierung der Cloud-Bereitstellung und der Implementierung wiederverwendbarer IaC-Komponenten eingesetzt.
...Alle erweiternÜber terraform-module-library
Die „ terraform-module-library “-Kompetenz bietet eine strukturierte Sammlung wiederverwendbarer Terraform-Module, die für die Bereitstellung produktionsreifer Infrastrukturen auf AWS, Azure und GCP konzipiert sind. Sie bewältigt die Herausforderungen einer konsistenten Verwaltung von Cloud-Infrastrukturen, indem sie standardisierte Muster für gängige Komponenten wie VPCs, Kubernetes-Cluster, Datenbanken und Speicherdienste bereitstellt. Durch die Befolgung von Best Practices für „Infrastructure as Code“ vereinfacht dieses Skill die Erstellung, das Testen und die Wartung von Cloud-Umgebungen, verringert das Risiko von Fehlkonfigurationen und gewährleistet wiederholbare Bereitstellungen über mehrere Cloud-Anbieter hinweg.
Zu den wichtigsten Funktionen gehören gut organisierte Modulstrukturen mit separaten Verzeichnissen für jeden Cloud-Anbieter und Unterverzeichnissen für einzelne Ressourcen wie VPCs, RDS, S3, AKS, GKE und Cloud SQL. Jedes Modul folgt einem einheitlichen Muster mit den wichtigsten Terraform-Ressourcen, Eingabevariablen, Ausgabedaten, Beispielen, Versionsfestlegungen und Testdateien. Die Module umfassen Eingabevalidierung, semantische Versionierung, Terratest-Integration und Tagging-Standards, um Zuverlässigkeit und Rückverfolgbarkeit zu gewährleisten. Darüber hinaus veranschaulichen Beispielkonfigurationen praktische Implementierungen und erleichtern so die Einführung und Integration in bestehende Infrastruktur-Pipelines.
Diese Skill ist ideal für DevOps-Ingenieure, Cloud-Architekten und Infrastrukturteams, die darauf abzielen, Bereitstellungsprozesse zu standardisieren und wiederverwendbare, wartbare Terraform-Module zu erstellen. Sie unterstützt Szenarien wie Multi-Cloud-Bereitstellungen, die Etablierung unternehmensweiter Terraform-Standards, den Aufbau wiederverwendbarer Infrastrukturkomponenten und die Gewährleistung der Einhaltung von Best Practices. Unternehmen, die die Cloud-Einführung beschleunigen und gleichzeitig die operative Konsistenz wahren möchten, werden diese Kompetenz als besonders nützlich empfinden.
FAQ
Welche Cloud-Anbieter werden von der „ terraform-module-library “ unterstützt?
Die Skill bietet wiederverwendbare Terraform-Module für AWS, Azure und GCP, die gängige Infrastrukturkomponenten für jeden Anbieter abdecken.
Können diese Module in Produktionsumgebungen eingesetzt werden?
Ja, die Module sind produktionsreif konzipiert und folgen Best Practices wie Eingabevalidierung, Tagging, Versionsfixierung und Tests mit Terratest.
Wie sind die Module strukturiert und organisiert?
Die Module sind nach Cloud-Anbieter und Ressourcentyp organisiert und folgen einem Standardmuster, das die Dateien „main.tf“, „variables.tf“, „outputs.tf“, „versions.tf“, „README.md“, Beispiele und Tests umfasst.
Unterstützen die Module Multi-Cloud-Bereitstellungen?
Ja, die Funktion ist für die Erstellung wiederverwendbarer Komponenten gedacht, die über mehrere Cloud-Anbieter hinweg integriert werden können.
Gibt es Voraussetzungen für die Nutzung dieser Module?
Benutzer sollten über praktische Kenntnisse in Terraform und den Diensten der Cloud-Anbieter verfügen. Die Module setzen den Zugriff auf die entsprechenden Cloud-Konten sowie entsprechende IAM-Berechtigungen voraus.
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.goAWS 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}
ベストプラクティス
- モジュールにセマンティックバージョニングを使用
- 説明付きですべての変数を文書化
- examples/ディレクトリに例を提供
- 入力検証に検証ブロックを使用
- モジュール構成のために重要な属性を出力
- versions.tfでプロバイダーバージョンをピン
- 計算値にlocalsを使用
- count/for_eachで条件付きリソースを実装
- Terratestでモジュールをテスト
- すべてのリソースに一貫してタグ付け
モジュール構成
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- コスト効率的な設計用
terraform-module-library installieren
Laden Sie die Skill-Dateien herunter und entpacken Sie sie in Ihr Verzeichnis „.claude/skills/“.
ZIP herunterladenKlonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.
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
Kopieren





Heim
