AWS Elastic Beanstalk adalah layanan (AWS service) yang dirancang agar memudahkan anda untuk menggelar (deploy) dan menskalakan (scaling) suatu aplikasi web atau web service yang dibangun baik itu dengan Java, .NET, PHP, Node.js, Python, Ruby, Go, ataupun Docker yang dijalankan dengan menggunakan platform yang umum misalnya Apache HTTP server, Nginx, Passenger, atau IIS.
Saat anda akan menggelar suatu aplikasi web yang mungkin akan melayani jumlah pengguna yang sangat besar, anda akan menghadapi beberapa tantangan berikut:
- Aplikasi menjadi kompleks karena anda mengiginkan aplikasi yang memiliki skalabilitas tinggi, elastis yaitu dapat menyesuaikan penggunaaan sumber daya (resource) sesuai beban kerja secara otomatis, ketersediaan tinggi (high availability) atau keandalan (reliability), kemaanan tinggi.
- Kompleksitas dalam proses menyiapkan (provisioning), mengkonfigurasi dan manajemen infrastruktur karena komponen yang digunakan menjadi banyak misalnya Load Balancer, alat pemantauan (monitoring), database, alat untuk penskalaan otomatis, firewall. Selain itu mungkin anda perlu membagi jaringan menjadi beberapa subnet untuk keamanan.
- Komplesitas dalam proses penggelaran kode aplikasi setiap aplikasi mengalami perubahan.
Komponen atau layanan AWS yang diperlukan untuk aplikasi tersebut diantaranya adalah:
- Amazon Virtual Private Cloud (VPC) dengan public subnet dan private, routing, security group, NAT gateway, Internet gateway
- Amazon EC2 dan instalasi web server serta platform yang mendukung kode aplikasi misalnya Apache HTTP server dan modul php
- Amazon EC2 Auto Scaling dengan auto scaling group dan launch template atau a launch configuration
- Amazon Elastic Load Balancer yang dapat berupa salah satu dari ketiga jenis ini: Application Load Balancer, Network Load Balancer atau Classic Load Balancer
- Amazon CloudWatch untuk pemantauan aplikasi secara tersentral
- Amazon Relational Database Service (RDS)
- Amazon S3 untuk penyimpanan file (object storage)
berikut gambaran arsitektur yang perlu disiapkan:
Nah bayangkan bagaimana seorang pengembang (developer) atau seorang administrator yang belum pernah menggunakan layanan AWS harus mempelajari, menyiiapkan dan mengkonfigurasi sekian banyak layanan AWS hanya untuk membuat sebuah aplikasi berjalan dan bisa diakses oleh pengguna akhir lewat internet. Tentu saja akan membutuhkan waktu yang tidak sedikit.
Karena itu AWS membuat layanan Elastic Beanstalk yang akan memudahkan anda dalam menyiapkan dan mengelola infrastruktur dari aplikasi. Anda dapat menyiapkan Elastic Beanstalk dari konsol antarmuka web atau dengan command line interface (CLI).
Cara yang paling mudah untuk belajar menggunakan Elastic Beanstalk adalah dengan melihat vidio tutorial, dibawah saya tuliskan daftar beberapa tautan (links) yang bisa anda pelajari.
Untuk mulai mencoba, anda tentu perlu memiliki akun AWS, jika belum silakan registrasi dulu.
- Getting Started (short video) - https://youtu.be/GbkR9lFcFBY
- Setup & Deployment - https://youtu.be/rvxucBBDlPQ
- Tomcat - https://youtu.be/96DJ2Og90hU?t=1214
- PHP/Laravel - https://youtu.be/ISVaMijczKc?t=104
- Deep Dive (long video) - https://youtu.be/NhsELnv28NU