Hi!

Pada jurnal ini saya ingin sharing tentang salah satu layanan AWS, yaitu Elastic Beanstalk.

AWS Elastic Beanstalk adalah layanan yang memudahkan kita untuk melakukan deploy dan scale aplikasi yang menggunakan bahasaPython, Ruby, Java, Node.js, Go, atau PHP di environment seperti Apache, Nginx, Passenger, dan IIS, tanpa perlu khawatir lagi tentang infrastruktur yang menjalankan aplikasi tersebut .

Di jurnal ini, kita akan mempelajari bagaimana meng-upload kode dan men-deploy nya dengan monitoring, auto-scaling, dan load balancing yang merupakan fitur-fitur dari Elastic Beanstalk. Elastic Beanstalk gratis – kita hanya membayar resource AWS yang dibutuhkan oleh aplikasi untuk dijalankan.

Gambaran arsitekturnya kurang lebih seperti berikut:

Mari kita mulai.

Pertama, login ke AWS Management Console.

Pada kolom pencarian, ketik elastic atau beanstalk dan pilih layanan Elastic Beanstalk.

Kita akan diarahkan ke dashboard seperti berikut. Ketika baru pertama menggunakan layanan ini, akan terlihat kosong. Klik Create Application untuk membuat satu.

Isikan nama aplikasi, misal saya My App. Lalu gulir ke bawah.

Pada sesi platform, pilih PHP, Platform branch saya pilih PHP 7.4 dan versi saya pilih yang Recommended. Untuk cara singat, sebenarnya bisa langsung klik Create application.

Namun disini saya ingin mengkonfigurasi aplikasi lebih lanjut, makanya saya klik Configure more options.

Pada sesi Presets, pilih High Availability. Ini memungkinkan aplikasi kita akan memiliki load balancing.

Saat memilih HA, terlihat pada Capacity dan Load balancer akan terlihat spesifikasi instances dan load balancer nya.

Gulir ke bawah dan pada Rolling updates and deployments, klik Edit.

Ubah menjadi Rolling with additional batch dan Percentage menjadi 50%. Lalu klik Save.

Gulir ke bawah dan kita akan coba konfigurasi Network. Klik Edit.

Sesuaikan VPC.

Sesuaikan Load balancer subnets, disini saya hanya menggunakan 2 subnet.

Dan sesuikan Instance subnets. Jika sudah OK, bisa gulir ke bawah dan klik Save.

Selanjutnya kita klik Edit pada sesi Instances.

Kita pilih salah satu security group dan klik Save.

Bisa kita verifikasi tab Monitoring untuk kebutuhan monitoring aplikasi.

Saya biarkan konfigurasi lainnya sebagai default, gulir ke bawah dan klik Create app.

Tunggu kira-kira lima menit dan kita akan diarahkan ke dashboard aplikasi yang telah kita buat seperti di bawah ini.

Bisa klik URL yang disediakan, dan akan muncul tampilan seperti berikut.

Congratulations! kita telah berhasil membuat aplikasi PHP menggunakan Elastic Beanstalk.

Selanjutnya, kita akan coba monitor dan verifikasi tiap komponen di dashboard.

Petama, klik Events. Disini kita akan diberikan informasi mengenai peristiwa apa saja yang terjadi pada aplikasi kita.

Kedua, tab Configurations. Di sini kita bisa melihat keseluruhan konfigurasi aplikasi PHP yang telah kita buat dan kita bisa mengkonfigurasi lagi dengan mengeditnya.

Pada tab Logs akan diperlihatkan log dari aplikasi. Bisa klik Download dari salah satu file log

Dan kita akan diarahkan ke tab baru, akan muncul log dari aplikasi kurang lebih seperti berikut.

Selanjutnya tab Monitoring. Akan diperlihatkan utilisasi dari resource yang digunakan oleh aplikasi, mulai dari respon, request, CPU, network dan lainnya beserta detail waktu. Ini sangat membantu untuk kebutuhan analisa.

Lalu ada tab Health. Dan disana akan terlihat Health overview dari aplikasi kita.

Setelah melihat beberapa fitur dari AWS Elastic Beanstalk, kita akan coba mengubah versi dari aplikasi kita. Ibaratkan jika di production ada pembaruan fitur, perbaikan, ataupun perubahan kode aplikasi. Bagaimana caranya deploy?

Klik Application versions di bawah menu My App. Lalu klik Upload.

Berikan label, deskripsi (opsional), dan upload file berbentuk zip (saya disini hanya mengubah judul). Lalu klik Upload.

Setelah berhasil diupload, ceklis dari versi 2, klik Action > Deploy.

Klik Deploy.

Akan ada Info mengenai aplikasi. Bisa klik events page mengenai sampai manakah proses berjalan.

Dan tunggu sampai aplikasi benar-bernar berhasil di deploy seperti berikut.

Bisa kita refresh URL aplikasinya. Otomatis akan berubah sesuai versi dua yang telah diupload tadi.

Sekian!