Apa itu AWS CloudFormation (Amazon Web Services CloudFormation)?

AWS CloudFormation adalah layanan gratis dari Amazon Web Services yang menyediakan alat bagi pengguna untuk membuat dan mengelola infrastruktur yang dibutuhkan sebuah aplikasi untuk berjalan di AWS. Walaupun layanan ini gratis, pengguna tetap akan dikenakan biaya atas resource AWS yang dibuat melalui template CloudFormation.

Apa fungsi AWS CloudFormation?

AWS CloudFormation membantu developer untuk membuat dan mengelola kumpulan resource AWS yang saling terkait. Dengan pendekatan ini, tim pengembang bisa melakukan provisioning resource secara terstruktur dan dapat diprediksi.

CloudFormation terdiri dari dua komponen utama:

  1. Stack
  2. Template

Apa itu template di AWS CloudFormation?

Template adalah file teks berformat JSON (JavaScript Object Notation) atau YAML (YAML Ain’t Markup Language). File ini bersifat deklaratif (bukan scripted), dan mendefinisikan resource AWS atau non-AWS apa saja yang dibutuhkan untuk menjalankan sebuah aplikasi. Contohnya, template bisa menyatakan bahwa aplikasi membutuhkan instance Amazon EC2 (EC2 instance) dan kebijakan IAM.

Setelah template dikirim ke layanan CloudFormation, sistem akan otomatis membuat resource yang dibutuhkan dalam akun pengguna dan menyusunnya menjadi sebuah instance aktif dari template tersebut — yang disebut dengan stack.

Apa itu stack di AWS CloudFormation?

Stack adalah kumpulan resource AWS yang saling berhubungan dan dikelola sebagai satu unit. Stack ini bisa dianggap sebagai blueprint dari sebuah infrastruktur cloud. Pengguna bisa membuat perubahan pada stack setelah deployment menggunakan tools CloudFormation, dengan cara kerja mirip seperti version control. Setiap perubahan — baik membuat, memperbarui, maupun menghapus stack — akan memengaruhi semua resource terkait secara otomatis dan konsisten.

Apa saja use case umum dari AWS CloudFormation?

AWS CloudFormation sering digunakan untuk provisioning, mengelola, dan mengotomatisasi infrastruktur AWS dengan efisien.

Empat use case utama CloudFormation adalah:

  1. Membuat dan mengelola stack. Stack mengelompokkan resource yang berkaitan agar bisa dikelola sebagai satu kesatuan. Pengguna bisa membuat, memperbarui, atau menghapus stack, sementara CloudFormation menangani seluruh resource di dalamnya.
  2. Menggunakan template. Template digunakan untuk mendefinisikan cara resource dibuat dan dikonfigurasi. Ini mempermudah pengelolaan dan menjaga konsistensi deployment antar lingkungan.
  3. Provisioning dan pengelolaan infrastruktur. CloudFormation bisa digunakan untuk mengatur berbagai resource AWS seperti EC2 instance, bucket S3 (S3 bucket), IAM role, dan lainnya. Cocok untuk aplikasi baru maupun yang sudah berjalan.
  4. Otomatisasi perubahan infrastruktur. Pengguna bisa mengotomatisasi perubahan seperti scaling aplikasi atau deploy versi baru. Ini mengurangi kesalahan manual dan memastikan konsistensi.

Apa tujuan utama AWS CloudFormation?

AWS CloudFormation bertujuan untuk menyederhanakan pengelolaan infrastruktur cloud di AWS. Layanan ini memungkinkan developer fokus pada pengembangan aplikasi tanpa harus repot dengan urusan infrastruktur.

Fitur yang ditawarkan mencakup:

Apa itu circular dependency di AWS CloudFormation?

Circular dependency terjadi saat dua resource saling tergantung satu sama lain untuk bisa dibuat — seperti membentuk loop yang mengganggu proses deployment. CloudFormation tidak bisa menentukan urutan pembuatan resource yang benar dalam kasus ini.

Contohnya, jika Resource A butuh Resource B untuk ada terlebih dahulu, dan Resource B juga butuh Resource A untuk dibuat, maka proses ini akan gagal. Solusinya adalah mendesain ulang template agar tidak saling tergantung, atau menggunakan resource custom berbasis AWS Lambda.

Apa itu change set di AWS CloudFormation?

Change set adalah fitur yang memungkinkan pengguna untuk melihat perubahan apa saja yang akan terjadi sebelum template benar-benar di-deploy. Ini semacam ‘preview’ agar perubahan infrastruktur tidak langsung berdampak negatif.

Manfaat utama change set:

  • Mendukung rollback dan version control
  • Meminimalisasi risiko
  • Deployment yang lebih aman
  • Mengelola banyak perubahan sekaligus
  • Mempermudah kolaborasi tim

Apa itu sub di AWS CloudFormation?

Fungsi Fn::Sub di CloudFormation berguna untuk mengganti variabel dengan nilai tertentu dalam sebuah template. Biasanya digunakan untuk menyusun string dinamis dari kombinasi teks tetap dan parameter seperti ID akun, region, atau output resource lain.

Jika menulis template dalam YAML, bisa juga pakai literal block scalar (`|`) untuk membuat string multiline yang lebih rapi — meski ini fitur YAML, bukan bagian dari Fn::Sub.

Apa itu metadata di AWS CloudFormation?

Metadata di CloudFormation memberikan informasi tambahan yang bisa dilampirkan pada template atau stack. Biasanya berupa tag atau anotasi untuk mempermudah dokumentasi dan manajemen resource.

Dua jenis metadata:

  1. Template metadata: Disimpan di bagian khusus dalam template dan berisi pasangan key-value seperti label, versi, atau kontak. Data ini bisa dibaca oleh script eksternal tapi tidak diproses oleh CloudFormation.
  2. Resource metadata: Ditempel langsung ke resource tertentu dan sering dipakai untuk konfigurasi otomatis via AWS CloudFormation Init di EC2.

Metadata tidak dienkripsi, jadi jangan pernah simpan data sensitif seperti password di sana. Metadata bisa diakses via CLI menggunakan perintah `describe-stack-resource`.

Bagaimana cara membuat template AWS CloudFormation?

Langkah-langkah membuat template CloudFormation:

  1. Pilih format: JSON atau YAML (biasanya YAML karena lebih mudah dibaca dan bisa pakai komentar).
  2. Tentukan versi format: Di awal file, cantumkan versi format template.
  3. Tambahkan metadata (opsional): Bisa berupa JSON/YAML bebas untuk informasi tambahan.
  4. Deklarasikan parameter (opsional): Agar bisa input nilai kustom saat membuat stack.
  5. Masukkan mapping (opsional): Cocok untuk nilai-nilai tetap seperti AMI berdasarkan region.
  6. Definisikan resource (wajib): Ini inti dari template, tempat resource AWS dideklarasikan.
  7. Spesifikasikan output (opsional): Output bisa dilihat di console atau diimpor ke stack lain.
  8. Tambahkan fungsi dan kondisi: Pakai intrinsic functions untuk nilai dinamis dan conditional resource.
  9. Validasi template: Pastikan tidak ada syntax error pakai AWS CLI atau Management Console.
  10. Deploy stack: Setelah valid, deploy via CLI, Console, atau SDK.

Apa itu AWS CLI di CloudFormation?

AWS CLI memungkinkan pengguna untuk mengelola stack dan resource CloudFormation langsung dari command line atau script. Ini bagian dari AWS CLI secara umum dan sangat cocok untuk otomatisasi dan integrasi ke CI/CD pipeline.

Beberapa fitur utama:

  • Manajemen stack
  • Operasi change set
  • Validasi template
  • Manajemen resource
  • Integrasi dengan otomatisasi dan pipeline CI/CD
  • Kueri info stack

AWS CLI sangat cocok buat sysadmin dan developer yang nyaman dengan CLI dan scripting, karena lebih efisien dibanding klik-klik di AWS Management Console.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *