Menggunakan PaaS Elastic Beanstalk Untuk Deploy Reactjs dan Cara Kerja CloudFormation
Dalam dunia komputasi awan dikenal 3 istilah, yaitu infrastructure as a service (IaaS), platform as a service (PaaS), dan software as a service (SaaS). Contoh dari IaaS adalah EC2 instance yang cukup beberapa klik dapat dibuat virtual machine sehingga memungkinkan dikembangkannya aplikasi. Dengan EC2 instance tidak perlu lagi melakukan investasi awal atau capital expenditure dan menunggu server datang, cukup dengan hitungan menit server telah siap. Namun, pada kali ini akan dibahas mengenai platform as a service. Secara pengelolaan PaaS lebih maju dibandingkan IaaS, pada IaaS perlu dilakukan instalasi environment sedangkan di PaaS biasanya sudah tersedia. Salah satu platform as a service yang cukup terkenal adalah Elastic Beanstalk. Nah, dengan Elastic Beanstalk yang telah tersedia environment nodejs maka dimungkinkan melakukan deploy reactjs, perhatikan:
- Pastikan sudah memiliki akun AWS
- Login
- Pada console ketik Elastic Beanstalk dan klik
- Buat environment untuk nodejs
- Pilih environment yang sudah terbuat
- Upload and deploy, pastikan file reactjs dalam .zip
- Klik tombol deploy dan tunggu Elastic Beanstalk melakukan proses
- Untuk membuka hasil deploy klik URL dari environment tersebut
Selain Elastic Beanstalk yang dapat digunakan untuk mempersiapkan sumber daya secara otomatis, lebih maju lagi menggunakan CloudFormation yang merupakan IaC atau infrastructure as code. Langkah sederhana dari penggunaan CloudFormation yaitu pertama menentukan sumber daya yang dibutuhkan dalam sebuah template, kemudian upload template ke CloudFormation, ketiga jalankan untuk membuat sebuah stack, dan akhiri untuk mengendalikan sumber daya sepert update stack, detect drift, atau delete stack. Keunggulan lain dari CloudFormation adalah kemampuan untuk rollback dan change set. Rollback adalah kemampuan untuk menghapus secara keseluruhan sumber daya yang sudah diimplementasikan, sedangkan change set adalah kemampuan untuk meninjau perubahan sebelum diimplementasikan. Perhatikan cakupan dari template:
- Frontend services: tampilan web, akses mobile, papan analisis
- Backend services: pencarian, pembayaran, peninjauan, rekomendasi
- Shared services: database pengelolaaan relasi pelanggan, pemantauan, peringatan, subnet dan security group
- Network: VPC, internet gateway, VPN, dan NAT
- Security: IAM policies, IAM users, IAM groups, dan IAM roles
- Parameters: spesifikasi nilai apa yang bisa diatur pada runtime ketika membuat stack, misalnya region-spesific settings dan key pair
- Resources: menentukan apa kebutuhan yang akan dibuat, misalnya membuat seluruh komponen VPC di sebuah region dan buat EC2 instance
- Outputs: spesifikasi nilai kembalian setelah stack dibuat, misalnya menampilkan instance id atau alamat publik IP dari EC2 instance setelah proses
- Pada Management Console ketik CloudFormation dan pilih
- Klik tombol Create stack
- Pada halaman Create stack
- Step 1
- Prerequisite - Prepare template
- Template is ready: jika sudah memiliki template
- Specify template
- Amazon S3 URL: ditarik dari template yang ada di S3
- Upload a template file: file dengan format JSON atau YAML
- Use a sample template
- Simple
- LAMP Stack
- Ruby on Rails Stack
- WordPress blog
- Multi_AZ_Simple
- LAMP Stack
- Ruby on Rails Stack
- WordPress blog
- Windows
- Windows features and roles
- Windows Active Directory
- Create template in Designer
sumber: aws.amazon.com - Klik tombol Next
- Step 2
- Stack name: nama dari stack atau tumpukan yang akan dibuat
- Parameters: ini bergantung apakah template mengandung parameter
sumber: aws.amazon.com - Klik tombol Next
- Step 3
- Configure stack options
- Tags: ini untuk memudahkan policy dan filtering
- Permissions: untuk memberikan IAM role
- Stack failure options: apa yang dilakukan ketika stack gagal dilakukan
- Advanced options
- Stack policy: kebijakan untuk stack
- No stack policy: tanpa ada kebijakan
- Enter stack policy: ketik secara langsung
- Upload a file: unggah file yang berisi kebijakan
sumber: aws.amazon.com - Rollback configuration: konfigurasi untuk menarik kembali sumber daya
- Monitoring time: waktu setelah operasi selesai
- CloudWatch alarms: jika ingin diberikan peringatan dari CloudWatch
sumber: aws.amazon.com - Notification options: menggunakan SNS
- Stack creation options: opsi dalam membuat stack atau tumpukan
- Klik tombol Next
- Step 4
- Review: tinjau kembali stack yang akan dibuat, jika diperlukan bisa klik tombol Edit
- Klik tombol Submit
- Untuk memonitor stack yang berhasil dibuat maka pilih tab Resources
- Untuk memonitor stack yang sedang dibuat maka pilih tab Events
- Untuk melihat outputs atau nilai kembalian dari stack maka pilih tab Outputs
- Untuk meninjau kembali file stack upload maka pilih tab Template
- Lakukan hal yang sama untuk membuat stack application atau stack lainnya
- Untuk melakukan update
- Update dokumen dari stack yang berformat .yaml sebelumnya
- Pilih stack yang akan di-update
- Klik tombol Update
- Pada halaman Update stack
- Step 1
- Prepare template
- Replace current template
- Edit template in designer
- Klik tombol Next
sumber: aws.amazon.com - Step 2
- Parameters: bergantung pada template yang diupload
- Klik tombol Next
- Step 3
- Configure stack options
- Tags
- Permissions
- Stack failure options
- Advanced options
- Stack policy during update
- Rollback configuration
- Notification options
- Klik tombol Next
- Step 4
- Review: tinjau kembali apakah konfigurasi sudah tepat
- Klik tombol Submit
- Melihat stack secara visual
- Pada panel sebelah kiri pilih Designer
- Pada halaman Designer ada icon file di pojok kiri atas
- Pilih icon file, kemudian pilih open, dan pilih file yang akan ditampilkan secara visual
- Maka akan tampil bangunan secara visual
ref: