A S T A C O D E

Loading

Menulis Terraform Module yang Reusable untuk AWS Infrastructure
Tutorial

Menulis Terraform Module yang Reusable untuk AWS Infrastructure

Admin

Author

Aug 03, 2026

Published

38

Views

Menulis Terraform Module yang Reusable untuk AWS Infrastructure

Mengapa Menggunakan Terraform Module?

Mendefinisikan infrastruktur yang sama berulang kali dapat membuat konfigurasi semakin sulit dikelola. Terraform module membantu mengemas resource dan konfigurasi yang sering digunakan menjadi komponen reusable dengan interface yang lebih sederhana.

Dengan module, tim dapat menggunakan pola infrastruktur yang konsisten di berbagai project dan environment.

Struktur Terraform Module

Module umumnya memiliki struktur seperti:

  • main.tf — mendefinisikan resource

  • variables.tf — mendefinisikan input

  • outputs.tf — mendefinisikan output

  • versions.tf — menentukan versi Terraform dan provider

  • README.md — dokumentasi penggunaan module

Struktur yang konsisten membuat module lebih mudah dipahami dan digunakan oleh developer lain.

Membuat VPC Module

Contohnya, module VPC dapat menerima beberapa variable seperti:

  • vpc_cidr

  • environment

  • availability_zones

Module kemudian dapat membuat VPC beserta public subnet, private subnet, Internet Gateway, NAT Gateway, dan route table.

Output seperti vpc_id, public_subnet_ids, dan private_subnet_ids dapat digunakan oleh infrastructure lain yang membutuhkan informasi tersebut.

Menggunakan Module

Module dapat dipanggil dari konfigurasi utama Terraform:

module "vpc" {
  source      = "./modules/vpc"
  environment = "production"
  vpc_cidr    = "10.0.0.0/16"
}

Output module dapat digunakan kembali dengan referensi seperti:

module.vpc.vpc_id

Pendekatan ini membuat konfigurasi utama lebih sederhana karena detail implementasi VPC berada di dalam module.

Versioning dengan Git

Untuk module yang digunakan oleh banyak project, gunakan versioning agar perubahan tidak langsung memengaruhi seluruh environment.

Misalnya:

git tag v1.0.0

Project lain kemudian dapat menggunakan versi tertentu sehingga perubahan module dapat dikontrol dan diuji sebelum diadopsi.

Testing dengan Terratest

Terratest dapat digunakan untuk menguji Terraform module secara otomatis. Test dapat menjalankan Terraform, memverifikasi resource yang dibuat, kemudian melakukan cleanup setelah pengujian selesai.

Walaupun membutuhkan environment dan biaya cloud, integration testing seperti ini memberikan tingkat confidence yang lebih tinggi dibandingkan hanya melakukan validasi konfigurasi.

Best Practices

Beberapa praktik yang sebaiknya diterapkan:

  • Gunakan nama variable yang jelas

  • Hindari hardcoded value

  • Dokumentasikan input dan output

  • Pin versi provider dan module

  • Buat module cukup fleksibel tetapi tidak terlalu kompleks

  • Uji perubahan sebelum digunakan di production

Kesimpulan

Terraform module membantu software house membangun infrastructure AWS yang reusable, konsisten, dan lebih mudah dipelihara. Dengan struktur yang jelas, versioning, dokumentasi, dan testing, module dapat menjadi fondasi penting untuk mengelola infrastructure sebagai code.

Menulis Terraform Module yang Reusable untuk AWS Infrastructure

Looking for a professional partner?

Let's discuss how we can help your business grow with our technology solutions.

Chat with us