Secara manual untuk membangun di cloud prosesnya terdiri dari, membuat penyimpanan, routing jaringan, membuat instance, dan membuat database. Penyimpanan dibuat untuk menyimpan file-file terkait aplikasi seperti logo dan script, sedangkan database biasanya dibuat untuk menyimpan data-data terkait lalu lintas jaringan hingga pelanggan. Routing jaringan digunakan untuk membuat jaringan dan menghubungkan antarjaringan. Di dalam jaringan akan ada instance yang berupa snapshot dari konten yang sebenarnya pada waktu tertentu.
Ada beberapa pertanyaan mitigasi risiko saat membangun lingkungan komputasi yang besar, yaitu:
- Implementasi otomatis atau manual?
- Risiko implementasi manual?
- Cara memperbarui server di lingkungan production?
- Cara meluncurkan deployment di beberapa region geografis?
- Cara melakukan roll-back atau restore saat terjadi kegagalan?
- Cara menerapkan debugging untuk menemukan kesalahan dan memperbaikinya?
- Cara mengelola dependensi pada berbagai sistem dan subsistem?
Kalau untuk mengatur user digunakan layanan AWS Organization sedangkan untuk mengatur sumber daya digunakan layanan AWS CloudFormation. Dengan layanan tersebut dapat disediakan sumber daya dengan cara yang aman dan dapat diulang tanpa tindakan secara manual. Secara default template di Amazon CloudfFormation ada dua tipe, yaitu YAML dan JSON. Ada 3 istilah penting dalam melakukan automasi di CloudFormation, yaitu template (file teks yang menjelaskan dan mendefinisikan resource yang akan di deploy di lingkungan), engine (AWS CloudFormation yang merupakan mesin untuk memperoses template), dan stack (kumpulan resource AWS yang di-deploy bersama sebagai satu grup).
Karena adanya template yang merupakan bentuk dasar maka dimungkinkan terjadinya penyimpangan. Nah, penyimpangan ini dapat dideteksi dengan fitur drift detection. CloudFormation menganut IaC atau infrastructure as code sehingga akan memudahkan dalam melakukan pengulangan atau penggunaan kembali. Kadang pada bagian stack akan ada perubahan, nah, untuk mencegah terjadinya benturan maka diperlukan fitur ChangeSets yang dapat mengendalikan perubahan. CloudFormation juga dapat digunakan untuk membuat arsitektur berlapis mulai dari Front-end (interface web CRM, interface admin, dashboard analitik), Back-end (pelanggan, promo, produk, pemasaran, analitik), Shared (CRM DB, pemantauan/alarm umum, subnets, security groups), Base network (VPC, internet gateway, VPN, NAT), hingga identity (IAM user, group, roles).
Praktik terbaik teknologi AWS dapat diterapkan dengan AWS Quick Starts dengan dasar keamanan dan ketersediaan yang tinggi. Dengannya ratusan prosedur manual akan diringkas hanya menjadi beberapa langkah saja. Sampai di sini akan muncul pertanyaan bagaimana cara memperbarui instance. Pada awalnya perusahaan akan menciptakan satu perangkat lunak, kemudian disusul dengan perangkat lunak lainnya sesuai kebutuhan pelanggan. Jika perangkat lunak tersebut sudah semakin banyak maka diperlukan pengaturan agar lebih mudah, oleh karena itu ada layanan AWS Systems Manager. Layanan tersebut bekerja dengan run command, patch management, session manager, maintenance windows, state manager, dan inventory.
CloudFormation dapat dikombinasikan dengan AWS OpsWorks Stacks yang merupakan layanan konfigurasi dan operasi aplikasi menggunakan puppet atau chef. AWS OpsWorks sendiri memiliki 3 varian, yaitu AWS OpsWorks for Chef Automate (tidak perlu konfigurasi sistem manajemen), AWS OpsWorks for Puppet Enterprise (menyimpan tugas konfigurasi ke setiap node), dan AWS OpsWorks Stacks (manajemen server). Sampai di sini sudah ada 3 kombinasi layanan untuk membuat sebuah automasi, yaitu CloudFormation, Systems Manager, dan OpsWorks. Namun, layanan tersebut masih terlalu kompleks sehingga diciptakan layanan AWS Beanstalk.
Dengan AWS Beanstalk maka tanggung jawab pengguna hanya pada code, sedangkan layanan tersebut akan mengurus HTTP server, application server, language interpreter, operating system, serta host. Perhatikan gambar automasi di bawah ini:
Langkah (tidak detail) membangun arsitektur automasi:
- CloudFormation Stack untuk VPC
- Siapkan file YAML yang telah di buat kodenya sesuai kebutuhan
- Buka AWS CloudFormation dan Create Stack
- Konfigurasi sehingga file YAML dapat di upload
- Masukan nama Stack
- Pada bagian Parameters biarkan default
- Buat tag baru, lalu next
- Periksa kembali stack, jika sudah sesuai klik tombol Create stack
- Tunggu status CREATE_IN_PROGRESS menjadi CREATE_COMPLETE
- Deploy aplikasi dan infrastruktur
- Siapkan file YAML yang telah dibuat kodenya sesuai kebutuhan
- Di AWS CloudFormation buat stack dengan With new resources (standard)
- Konfigurasi sehingga file YAML dapat di upload
- Manukan nama Stack
- Pada bagian Parameters biarkan default
- Isi konfigurasi dari Configure stack oprions
- Periksa kembali stack, jika sudah sesui klik tombol Create stack
- Tunggu hingga status berubah menjadi CREATE_COMPLETE
- Uji coba aplikasi web yang telah di deploy
- Di AWS CloudFormation pastikan semua stack telah berstatus CREATE_COMPLETE
- Buka tab Outputs dan buka halaman dari stack
- Menjelajahi template
- Di AWS CloudFormation buka tab Template
- Cari bagian InstanceType, bagian untuk memilih tipe instance
- Cari bagian Web1LaunchConfig, konfigurasi launch untuk auto scaling
- Cari bagian Resource, merupakan jantung dari template (fokus ke bagian DynamoDB)
- Logical ID, cara merujuk ke sumber daya DynamoDB table
- Type, tipe sumber daya mana yang akan dibuat
- Properties, definisi beberapa nilai yang digunakan untuk DynamoDB table
- Cari bagian Outputs, informasi setelah proses provisioning
- Cari bagian Metadata, mengatur template ditampilkan
- Menambahkan S3 bucket
- Gunakan kode berikut:
- MyS3Bucket:
- Type: AWS::S3::Bucket
- Buka file YAML, kemudian pastekan kode di atas pada bagian RecommendationServiceEnabled sebelum baris tanda pagar (Pastikan MyS3Bucket di awali dengan 2 spasi, sementara Type: AWS::S3::Bucket di awali 4 spasi)
- Simpan file tersebut
- Masuk ke AWS CloudFormation ke bagian Stacks, klik CloudFormationLab
- Klik tombol Update
- Pada bagian Prepare template, pilih Replace current template dan upload file YAML yang telah di edit
- Next terus hingga bagian akhir dan klik tombol Update stack
- Tunggu hingga status pada CloudFormationLab berubah setatus menjadi UPDATE_COMPLETE
- Buka tab resource, jika telah ada S3 bucket maka pembuatan telah berhasil!
- Menghapus stack
- Masuk ke AWS CloudFormation, pilih Stacks, kemudian CloudFormationLab
- Klik tombol delete
- Lakukan hal yang sama pada stack yang satunya
Langkah di atas tidak detail, hanya bersifat langkah yang masih kasar. Jika telah mengikuti langkah sebelumnya maka langkah yang kasar tersebut akan lebih mudah untuk terbaca maksudnya apa. Saat menggunakan AWS Beanstalk untuk membuat scaling trigger tidak ada pilihan memory utilization. Hal ini terjadi karena secara default di CloudWatch tidak ada, oleh karena itu perlu meng-install agent untuk push metric ke CloudWatch baru kemudian dipakai untuk scaling. Salah satu alur sederhananya adalah pertama install CloudWatch agent di server, kemudian stop server dan create image, lalu gunakan image yang telah ter-install di CloudWatch untuk membuat Launch Template.
ref:
Komentar