Mengenal AWS PVC : Mengenal AWS CloudFormation
AWS CloudFormation adalah layanan dari Amazon Web Services (AWS) yang memungkinkan pengguna untuk memodelkan dan mengatur infrastruktur AWS mereka dengan cara yang mudah dan terkelola.
AWS CloudFormation
Jika hanya perlu menerapkan sejumlah kecil layanan atau aplikasi di AWS, segera akan ditemukan bahwa menyiapkan masing-masing secara manual itu membosankan dan memakan waktu.
Belum lagi, mengonfigurasi setiap sumber daya AWS secara manual menempatkan risiko yang jauh lebih tinggi untuk melakukan kesalahan atau menimbulkan ketidakkonsistenan.
Masuk ke AWS CloudFormation
CloudFormation adalah platform otomatisasi infrastruktur untuk AWS yang membuat penerapan sumber daya AWS pada skala yang jauh lebih cepat, lebih efisien, dan lebih aman.
Artikel ini memberikan gambaran umum tentang AWS CloudFormation, termasuk cara kerjanya, manfaatnya, serta cara membuat dan menerapkan template CloudFormation menggunakan konsol, CloudFormation Designer, dan baris perintah AWS.
Apa itu AWS CloudFormation
AWS CloudFormation adalah layanan AWS yang menggunakan file template untuk mengotomatiskan penyiapan sumber daya AWS.
Ini juga dapat digambarkan sebagai alat otomatisasi infrastruktur atau infrastructure-as-code (IaC) dan solusi otomatisasi cloud karena mengotomatiskan pengaturan dan penerapan berbagai penawaran infrastructure-as-a-service (IaaS) pada AWS CloudFormation Support. CloudFormation dapat digunakan untuk mengotomatiskan konfigurasi beban kerja yang berjalan pada layanan AWS paling populer, seperti Layanan Komputasi EC2, Layanan Penyimpanan S3, dan Layanan IAM untuk mengonfigurasi kontrol akses.
Template CloudFormation juga dapat diterapkan ke layanan AWS yang memenuhi kasus penggunaan tertentu, seperti stasiun bumi dan solusi manajemen satelit AWS.
Secara umum, jika sebuah layanan berjalan di AWS, sudah pasti CloudFormation dapat digunakan untuk mengotomatiskan konfigurasi dan penerapannya.
Perlu dicatat bahwa CloudFormation bukan satu-satunya cara untuk mengonfigurasi dan menerapkan layanan di AWS. Proses ini dapat ditangani secara manual menggunakan antarmuka baris perintah AWS, API, atau konsol Web.
Penyediaan manual adalah pendekatan yang biasanya dilakukan tim saat memulai dengan AWS dan mempelajari cara menerapkan layanan. Namun, ketika mereka meningkatkan ukuran lingkungan mereka, banyak tim dengan cepat menyadari bahwa mereka membutuhkan solusi seperti CloudFormation untuk membuat proses penerapan lebih cepat dan lebih konsisten.
Benefits of CloudFormation
CloudFormation dan alat IaC yang kompatibel dengan AWS lainnya menawarkan berbagai manfaat yang membuat penerapan dan pengelolaan layanan cloud lebih cepat dan efisien.
Deployment Speed
Ketika membuat templat CloudFormation untuk mengelola bagaimana sumber daya AWS dikonfigurasikan dan digunakan, beberapa contoh sumber daya yang sama dapat langsung digunakan hanya dengan menggunakan satu templat. Jika secara manual mengatur setiap penerapan dengan menjalankan perintah pada CLI atau dengan menekan tombol di konsol AWS, pendekatan ini menghasilkan penerapan yang jauh lebih cepat daripada yang bisa didapatkan.
Tentu saja, perlu meluangkan waktu untuk menyiapkan templat CloudFormation. Namun, jika mengulangi jenis penerapan yang sama beberapa kali, secara keseluruhan akan jauh lebih cepat untuk membuat templat CloudFormation yang dapat digunakan kembali untuk setiap penerapan, daripada harus mengonfigurasinya secara manual.
Scalling Up
Meskipun pada awalnya mungkin tidak berharap untuk menggunakan beberapa instance dari sumber daya AWS yang sama, templat CloudFormation berguna karena templat ini memastikan lingkungan dapat dengan cepat ditingkatkan ketika saatnya tiba. Dengan templat CloudFormation di tangan, menambahkan lebih banyak contoh mesin virtual atau ruang penyimpanan, misalnya, dapat dilakukan dengan cepat jika aplikasi mengalami peningkatan lalu lintas dan perlu meningkatkan lingkungan.
Sebagai alternatif bisa menonaktifkan beberapa penerapan saat permintaan menurun dan ingin mengurangi biaya, sembari mempertahankan kemampuan untuk menerapkannya kembali dengan cepat menggunakan CloudFormation saat permintaan meningkat.
Service integration
Satu templat CloudFormation dapat mengelola layanan atau sumber daya individual, dan penyebaran beberapa sumber daya. Pengelolaan ini berarti CloudFormation dapat digunakan untuk mengintegrasikan berbagai layanan cloud AWS. Misalnya, templat dapat ditulis yang menyiapkan mesin virtual EC2 dalam Virtual Private Cloud (VPC) AWS atau menerapkan bucket penyimpanan S3 dan mengonfigurasi kontrol akses menggunakan layanan IAM.
Mengelola beberapa layanan melalui satu template AWS mengintegrasikan layanan saat membangun lingkungan cloud yang lengkap.
Consistency
Ketika menggunakan templat CloudFormation untuk menentukan dan menerapkan sumber daya AWS, konfigurasi yang sama persis dapat diterapkan berulang kali. Dengan cara ini, CloudFormation memastikan bahwa aplikasi dan layanan akan konsisten dan seragam, tidak peduli berapa banyak instance yang dibuat.
Pendekatan alternatif, yaitu mengatur setiap sumber daya secara manual, menimbulkan risiko bahwa teknisi yang bekerja dapat menerapkan pengaturan yang berbeda untuk instance yang berbeda, yang mengakibatkan ketidakcocokan. Pada gilirannya, mengelola lingkungan akan menjadi lebih menantang karena beberapa sumber daya akan terlihat berbeda dari yang lain, meskipun mereka menjalankan fungsi utama yang sama. Bisa ada instance EC2 yang berbeda yang meng-hosting replika aplikasi yang sama, misalnya, atau kontrol akses IAM yang berbeda untuk layanan yang sama. Perbedaan ini akan menyulitkan pengelolaan sumber daya secara adil.
Security
Sejalan dengan itu, meskipun CloudFormation bukanlah alat keamanan itu sendiri, CloudFormation dapat meningkatkan keamanan lingkungan AWS secara keseluruhan, mengurangi risiko kelalaian atau kesalahan manusia yang dapat berubah menjadi pelanggaran. Selama templat CloudFormation didesain dengan aman, tidak perlu khawatir bahwa teknisi yang menggunakan sumber daya akan lupa mengaktifkan kontrol akses penting, misalnya, atau membiarkan data tidak dibatasi. Hal ini akan mengurangi risiko eksposur pada akses publik.
Easy Update
Selain menerapkan sumber daya baru, perubahan pada sumber daya yang sudah ada bisa diterapkan dengan templat CloudFormation.
Kemampuan ini menyederhanakan proses, misalnya, menambahkan lebih banyak penyimpanan ke armada instance EC2 atau mengubah aturan kontrol akses.
Auditing and Change Management
Ketika CloudFormation digunakan untuk mengelola infrastruktur, perubahan pada template yang telah diterapkan dan bagaimana perubahannya dari waktu ke waktu dapat dilacak. Pelacakan perubahan di CloudFormation berarti perubahan layanan dan sumber daya AWS dapat ditentukan tanpa harus membuat ulang garis waktu pembaruan dengan melihat log.
CloudFormation Alternatives
CloudFormation adalah solusi IaC milik Amazon sendiri, tetapi ini bukan satu-satunya otomatisasi cloud atau alat IaC yang dapat digunakan di cloud AWS untuk mendapatkan manfaat yang dijelaskan di atas. Tim juga bisa menggunakan platform IaC pihak ketiga yang kompatibel dengan AWS, seperti HashiCorp Terraform atau Ansible.
Keuntungan utama memilih CloudFormation adalah sebagian besar alat IaC pihak ketiga dapat mengonfigurasi sumber daya untuk dijalankan di berbagai cloud publik, tidak hanya AWS.
Jika menggunakan beberapa cloud sekaligus – dengan kata lain, menjalankan beberapa beban kerja di AWS dan yang lainnya di Microsoft Azure – platform alat IaC pihak ketiga akan lebih mudah digunakan karena memberi akses ke alat manajemen konfigurasi yang sama untuk semua pengguna.
Di sisi lain, sebagai platform IaC asli AWS, CloudFormation menyediakan integrasi yang mendalam dengan AWS Cloud, termasuk fitur-fitur seperti Designer, yang memungkinkan pembuatan dan modifikasi templat CloudFormation secara langsung di situs web AWS.
CloudFormation juga memberikan jaminan tingkat tinggi bahwa templat Anda akan selalu kompatibel dengan layanan AWS, bahkan ketika Amazon melakukan perubahan pada layanannya. Jika Amazon memperbarui salah satu layanannya, kemungkinan besar alat IAC pihak ketiga akan berhenti bekerja dengan baik dengannya, setidaknya sampai pengembang alat tersebut mengikuti perubahan tersebut.
Meskipun Amazon tidak sering melakukan perubahan signifikan pada layanannya, ini bukan masalah umum. Mungkin ada penundaan dalam penyediaan layanan baru di CloudFormation, tetapi pembaruan pihak ketiga mungkin membutuhkan waktu lebih lama. Namun, ini bukan faktor yang signifikan ketika mempertimbangkan penggunaan CloudFormation atau solusi otomatisasi infrastruktur alternatif dan otomatisasi cloud.
CloudFormation Template Terms and Concepts
Tentu! Berikut adalah penjelasan mengenai konsep dasar yang meliputi struktur sumber daya, variabel, dan fungsi dalam templat CloudFormation:
Template
Templat CloudFormation adalah file teks yang diformat secara khusus (JSON atau YAML) yang menentukan konfigurasi dan penggunaan sumber daya atau layanan AWS.
Stack
Istilah “stack” digunakan oleh AWS untuk merujuk pada kumpulan sumber daya AWS yang dikelola bersama menggunakan satu templat, seperti instance EC2, bucket S3, dan kebijakan IAM.
Parameters
Parameter memungkinkan Anda menentukan nilai unik untuk setiap penerapan yang dijalankan oleh CloudFormation pada saat runtime, memungkinkan pengaturan yang berbeda-beda.
Conditions
Kondisi memungkinkan Anda mengatur aturan bersyarat untuk mengontrol bagaimana penerapan harus berjalan, menambah fleksibilitas dalam templat CloudFormation.
Changeset
Untuk memperbarui penerapan menggunakan CloudFormation, Anda perlu memperbarui template yang digunakan untuk membuat penerapan. Setelah itu, Anda bisa membuat kumpulan perubahan yang merangkum modifikasi dari template yang telah diperbarui sebelum melakukan perubahan.
Tasks
Ada beberapa cara untuk memasukkan data ke dalam template CloudFormation, dengan parameter sebagai yang utama. Namun, terkadang parameter tersebut tidak diketahui pada saat penerapan. Fungsi CloudFormation memungkinkan perancang template untuk mengambil data dari sumber daya yang digunakan saat ini di CloudFormation atau dari sumber eksternal di akun AWS. Refs digunakan untuk merujuk ke sumber daya lain di dalam template, seperti yang ditunjukkan dalam contoh di bawah ini, yang menciptakan EIP yang telah dibuat sebelumnya di dalam template.
referensi : [1][2]