FAQ AWS Elastic Beanstalk

Umum

AWS Elastic Beanstalk mempermudah pengembang dalam menerapkan dan mengelola aplikasi dengan cepat di AWS Cloud. Pengembang cukup mengunggah aplikasi mereka dan Elastic Beanstalk secara otomatis akan menangani penerapan, detail penyediaan kapasitas, penyeimbangan beban, auto-scaling, dan pemantauan kesehatan aplikasi.

Siapa saja yang ingin menerapkan dan mengelola aplikasi mereka dalam hitungan menit di AWS Cloud. Anda tidak memerlukan pengalaman dengan komputasi cloud untuk mulai menggunakannya. AWS Elastic Beanstalk mendukung aplikasi web Java, .NET, PHP, Node.js, Python, Ruby, Go, dan Docker.

AWS Elastic Beanstalk mendukung bahasa dan stack pengembangan berikut:

Apache Tomcat untuk aplikasi Java

Apache HTTP Server untuk aplikasi PHP

Apache HTTP Server untuk aplikasi Python

Nginx atau Apache HTTP Server untuk aplikasi Node.js

Passenger atau Puma untuk aplikasi Ruby

Microsoft IIS 7.5, 8.0, dan 8.5 untuk aplikasi .NET

Java SE

Docker

Go

Lihat Platform yang Didukung untuk mengetahui daftar terbaru bahasa dan stack pengembangan lengkap yang didukung.

Ya. AWS Elastic Beanstalk dirancang agar dapat diperluas untuk mendukung beberapa stack pengembangan dan bahasa pemrograman di masa mendatang. AWS bekerja sama dengan penyedia solusi mengenai API dan kemampuan yang diperlukan untuk membuat penawaran Elastic Beanstalk tambahan.

AWS Elastic Beanstalk mengotomatiskan detail penyediaan kapasitas, penyeimbangan beban, auto scaling, dan penerapan aplikasi, membuat lingkungan yang menjalankan versi aplikasi Anda. Anda cukup mengunggah kode yang dapat diterapkan (misalnya file WAR), dan AWS Elastic Beanstalk akan melakukan sisanya. AWS Toolkit for Visual Studio dan AWS Toolkit for Eclipse memungkinkan Anda menerapkan aplikasi ke AWS Elastic Beanstalk dan mengelolanya tanpa perlu meninggalkan IDE Anda. Setelah aplikasi Anda berjalan, Elastic Beanstalk akan mengotomatiskan tugas pengelolaan–seperti pemantauan, penerapan versi aplikasi, pemeriksaan kesehatan dasar, serta memfasilitasi akses file log. Dengan menggunakan Elastic Beanstalk, pengembang dapat fokus mengembangkan aplikasi mereka dan terbebas dari tugas berorientasi penerapan, seperti penyediaan server, penyetelan penyeimbangan beban, atau pengelolaan penskalaan.

Sebagian besar kontainer aplikasi atau solusi platform sebagai layanan yang sudah ada secara signifikan mengurangi fleksibilitas dan kontrol pengembang, selagi mengurangi jumlah pemrograman yang diperlukan. Pengembang terkadang dipaksa untuk bekerja dengan semua keputusan yang ditentukan sebelumnya oleh vendor, bahkan dengan sedikit hingga tanpa kesempatan untuk mengambil alih kendali atas berbagai bagian infrastruktur aplikasi mereka. Meski demikian, dengan AWS Elastic Beanstalk, pengembang mendapatkan kontrol penuh atas sumber daya AWS yang menggerakkan aplikasi mereka. Jika pengembang memutuskan untuk mengelola sebagian (atau seluruh) elemen infrastruktur, mereka dapat melakukannya tanpa hambatan menggunakan kemampuan pengelolaan Elastic Beanstalk.

Dengan AWS Elastic Beanstalk, Anda dapat:

Memilih sistem operasi yang sesuai dengan persyaratan aplikasi Anda (misalnya, Amazon Linux atau Windows Server 2016)

Memilih dari beberapa instans Amazon EC2, termasuk Sesuai Permintaan, Instans terpesan, dan Instans spot 

Memilih dari beberapa opsi database dan penyimpanan yang tersedia

Mengaktifkan akses login ke instans Amazon EC2 untuk pemecahan masalah segera dan langsung

Dengan cepat meningkatkan keandalan aplikasi dengan menjalankannya di lebih dari satu Availability Zone

Meningkatkan keamanan aplikasi dengan mengaktifkan protokol HTTPS di penyeimbang muatan

Mengakses pemantauan Amazon CloudWatch bawaan serta mendapatkan pemberitahuan tentang kesehatan aplikasi dan kejadian penting lain

Menyesuaikan pengaturan server aplikasi (misalnya pengaturan JVM) dan memberikan variabel lingkungan

Menjalankan komponen aplikasi lain, seperti layanan cache memori, secara berdampingan di Amazon EC2

Mengakses file log tanpa login ke server aplikasi

AWS Elastic Beanstalk menggunakan fitur dan layanan AWS tepercaya, seperti Amazon EC2, Amazon RDS, Elastic Load Balancing, Auto Scaling, Amazon S3, dan Amazon SNS, untuk membuat lingkungan yang menjalankan aplikasi Anda. Versi AWS Elastic Beanstalk saat ini menggunakan AMI Amazon Linux atau Windows Server 2019.

AWS Elastic Beanstalk mendukung Java, .NET, PHP, Node.js, Python, Ruby, Go, dan Docker, serta sangat cocok untuk aplikasi web. Namun, karena arsitektur terbuka dari Elastic Beanstalk, aplikasi selain web juga dapat diterapkan menggunakan Elastic Beanstalk. Kami berharap untuk dapat mendukung jenis aplikasi dan bahasa pemrograman tambahan di masa mendatang. Lihat Platform yang Didukung untuk mempelajari selengkapnya.

AWS Elastic Beanstalk berjalan pada AMI Amazon Linux dan AMI Windows Server. Kedua AMI tersebut didukung dan dipelihara oleh Amazon Web Services serta dirancang untuk memberikan lingkungan eksekusi berkinerja tinggi yang aman dan stabil untuk komputasi Cloud Amazon EC2.

Memulai

Untuk mendaftar AWS Elastic Beanstalk, pilih tombol Daftar Sekarang di halaman detail Elastic Beanstalk. Anda harus memiliki akun Amazon Web Services untuk mengakses layanan ini; jika belum memiliki akun, Anda akan diarahkan untuk membuatnya pada saat Anda memulai proses Elastic Beanstalk. Setelah mendaftar, silakan lihat Panduan Memulai AWS Elastic Beanstalk.

Pendaftaran AWS Elastic Beanstalk mengharuskan Anda memiliki satu nomor telepon dan alamat email yang valid untuk disimpan di AWS jika kami perlu menghubungi Anda. Verifikasi nomor telepon hanya memerlukan waktu beberapa menit. Anda akan menerima panggilan otomatis pada saat proses pendaftaran dan Anda perlu memasukkan nomor PIN menggunakan papan tombol telepon.

Cara terbaik untuk memulai AWS Elastic Beanstalk adalah bekerja melalui Panduan Memulai AWS Elastic Beanstalk, yang merupakan bagian dari dokumentasi teknis kami. Dalam beberapa menit, Anda akan mampu menerapkan dan menggunakan aplikasi sampel atau mengunggah aplikasi Anda sendiri.

Ya. AWS Elastic Beanstalk mencakup aplikasi sampel yang dapat Anda gunakan untuk mencoba penawaran serta menjelajahi fungsionalitasnya.

Basis data dan penyimpanan

Ya. AWS Elastic Beanstalk menyimpan file aplikasi Anda dan, secara opsional, file log server Anda di Amazon S3. Jika Anda menggunakan AWS Management Console, AWS Toolkit for Visual Studio, atau AWS Toolkit for Eclipse, bucket Amazon S3 akan dibuat dalam akun Anda dan file yang Anda unggah akan disalin secara otomatis dari klien lokal ke Amazon S3. Secara opsional, Anda dapat mengonfigurasi Elastic Beanstalk untuk menyalin file log server Anda setiap jam ke Amazon S3. Anda dapat melakukan ini dengan mengedit pengaturan konfigurasi lingkungan.

Ya. Anda dapat mengunakan Amazon S3 untuk penyimpanan aplikasi. Cara termudah untuk melakukan ini adalah dengan menyertakan AWS SDK sebagai bagian dari file yang dapat diterapkan aplikasi Anda. Misalnya, Anda dapat menyertakan AWS SDK for Java sebagai bagian dari file WAR aplikasi Anda.

AWS Elastic Beanstalk tidak membatasi Anda menggunakan teknologi persistensi data khusus mana pun. Anda dapat memilih menggunakan Amazon Relational Database Service (Amazon RDS) atau Amazon DynamoDB, atau menggunakan Micro SQL Server, Oracle, atau database relasional lain yang berjalan di Amazon EC2.

Elastic Beanstalk dapat menyediakan instans DB Amazon RDS secara otomatis. Informasi mengenai konektivitas ke instans DB dikenakan pada aplikasi Anda oleh variabel lingkungan. Untuk mempelajari selengkapnya cara mengonfigurasi instans DB RDS untuk lingkungan Anda, lihat Panduan Pengembang Elastic Beanstalk.

Tidak dengan AWS Elastic Beanstalk. Dengan Elastic Beanstalk, Anda dapat menentukan informasi koneksi dalam konfigurasi lingkungan. Dengan mengekstrak string koneksi dari kode aplikasi, Anda dapat dengan mudah mengonfigurasi lingkungan Elastic Beanstalk berbeda untuk menggunakan database berbeda.

Keamanan

Secara default, aplikasi Anda tersedia secara publik di myapp.elasticbeanstalk.com untuk diakses semua orang. Anda dapat menggunakan Amazon VPC untuk menyediakan bagian privat yang terisolasi dari aplikasi Anda dalam jaringan vritual yang Anda tentukan. Jaringan virtual ini dapat dibuat privat melalui aturan grup keamanan tertentu, ACL jaringan, atau tabel rute kustom. Anda juga dapat dengan mudah mengontrol apa yang dikirimkan oleh lalu lintas yang masuk, seperti SSH, ke server aplikasi Anda dengan mengubah pengaturan grup keamanan EC2.

Ya, Anda dapat menjalankan aplikasi dalam VPC. Untuk detail selengkapnya, lihat Panduan Pengembang AWS Elastic Beanstalk.

Untuk informasi selengkapnya tentang keamanan AWS, silakan lihat dokumen Amazon Web Services: Gambaran Umum Proses Keamanan dan kunjungi Pusat Keamanan kami.

Ya. Penguna IAM dengan izin yang sesuai kini dapat berinteraksi dengan AWS Elastic Beanstalk.

IAM memungkinkan Anda mengelola pengguna dan grup dalam satu cara terpusat. Anda dapat mengontrol pengguna IAM agar memiliki akses ke AWS Elastic Beanstalk, serta membatasi izin ke akses baca saja ke Elastic Beanstalk untuk operator yang seharusnya tidak dapat melakukan tindakan apa pun terhadap sumber daya Elastic Beanstalk. Semua aktivitas pengguna dalam akun Anda akan dikumpulkan dalam satu tagihan AWS.

Anda dapat mengunakan konsol IAM, command line interface (CLI) IAM, atau API IAM untuk menyediakan pengguna IAM. Secara default, pengguna IAM tidak memiliki akses ke layanan AWS hingga izin diberikan.

Anda dapat memberikan akses kepada pengguna IAM ke layanan dengan menggunakan kebijakan. Untuk menyederhanakan proses pemberian akses ke AWS Elastic Beanstalk, Anda dapat menggunakan salah satu template kebijakan dalam konsol IAM untuk membantu Anda memulai. Elastic Beanstalk menawarkan dua template: template akses baca saja dan template akses penuh. Template baca saja memberikan akses baca ke sumber daya Elastic Beanstalk. Template akses penuh memberikan akses penuh ke semua operasi Elastic Beanstalk, begitu juga izin untuk mengelola sumber daya mandiri, seperti Elastic Load Balancing, Auto Scaling, dan Amazon S3. Anda juga dapat menggunakan Pembuat Kebijakan AWS untuk membuat kebijakan kustom. Untuk detail selengkapnya, lihat Panduan Pengembang AWS Elastic Beanstalk.

Ya. Anda dapat mengizinkan atau menolak izin ke sumber daya AWS Elastic Beanstalk tertentu, seperti aplikasi, versi aplikasi, dan lingkungan.

Semua sumber daya yang dibuat oleh pengguna IAM yang berada di bawah satu akun root dimiliki dan ditagihkan kepada akun root.

Akun root memiliki akses penuh ke semua lingkungan AWS Elastic Beanstalk yang diluncurkan oleh pengguna IAM di bawah akun tersebut. Jika Anda menggunakan template Elastic Beanstalk untuk memberikan akses baca saja ke pengguna IAM, pengguna tersebut akan dapat melihat semua aplikasi, versi aplikasi, lingkungan, dan sumber daya terkait apa pun dalam akun tersebut. Jika Anda menggunakan template Elastic Beanstalk untuk memberikan akses penuh ke pengguna IAM, pengguna tersebut akan dapat membuat, mengubah, dan menghapus sumber daya Elastic Beanstalk apa pun yang berada di bawah akun tersebut.

Ya. Pengguna IAM dapat mengakses konsol AWS Elastic Beanstalk menggunakan nama pengguna dan kata sandi mereka.

Ya. Pengguna IAM dapat menggunakan kunci akses dan kunci rahasia mereka untuk melakukan operasi menggunakan API Elastic Beanstalk.

Ya. Pengguna IAM dapat menggunakan kunci akses dan kunci rahasia mereka untuk melakukan operasi menggunakan command line interface (CLI) AWS Elastic Beanstalk.

Pembaruan platform terkelola

Anda dapat memilih untuk membuat lingkungan AWS Elastic Beanstalk diperbarui secara otomatis ke versi terbaru dari platform dasar yang menjalankan aplikasi Anda saat periode pemeliharaan yang ditentukan. Elastic Beanstalk secara berkala merilis versi baru dari platform yang didukung (Java, PHP, Ruby, Node.js, Python, .NET, Go, dan Docker) bersama dengan pembaruan sistem operasi, server web dan aplikasi, serta bahasa dan framework.

Untuk memungkinkan Elastic Beanstalk mengelola pembaruan platform Anda secara otomatis, Anda harus mengaktifkan pembaruan platform terkelola di tab Konfigurasi konsol Elastis Beanstalk atau menggunakan CLI atau API EB. Setelah fitur tersebut diaktifkan, Anda dapat mengonfigurasi tipe pembaruan apa yang diizinkan dan kapan pembaruan dilakukan.

AWS Elastic Beanstalk dapat melakukan pembaruan platform secara otomatis untuk patch dan versi platform minor yang baru. Elastic Beanstalk tidak akan melakukan pembaruan versi platform major (seperti Java 7 Tomcat 7 ke Java 8 Tomcat 8) secara otomatis karena pembaruan tersebut meliputi perubahan ke belakang yang tidak kompatibel dan memerlukan pengujian tambahan. Dalam kasus ini, Anda harus menjalankan pembaruan secara manual.

Platform AWS Elastic Beanstalk diberi versi menggunakan pola ini: MAJOR.MINOR.PATCH (contohnya, 2.0.0). Setiap porsi ditambah sebagai berikut:

Versi MAJOR saat ada perubahan yang tidak kompatibel.

Versi MINOR saat ada fungsionalitas tambahan yang ditambahkan dengan cara kompatibel ke belakang.

Versi PATCH saat ada perbaikan bug kompatibel ke belakang.

Anda dapat melakukan pembaruan versi major kapan pun menggunakan konsol pengelolaan, API, atau CLI AWS Elastic Beanstalk. Anda memiliki opsi berikut untuk melakukan pembaruan versi major:

Menerapkan pembaruan di tempat pada lingkungan yang sudah ada. Lihat Memperbarui Versi Platform Lingkungan Elastic Beanstalk Anda.

Membuat kloning lingkungan yang sudah ada dengan versi platform baru. Lihat Kloning Lingkungan untuk mempelajari selengkapnya.

Pembaruan diterapkan menggunakan mekanisme penerapan yang tidak dapat diubah yang memastikan tidak ada perubahan yang dilakukan pada lingkungan saat ini hingga armada paralel instans Amazon EC2, bersama pembaruan yang diinstal, siap untuk ditukar dengan instans saat ini, yang kemudian akan dihapus. Selain itu, jika sistem kesehatan Elastic Beanstalk mendeteksi adanya masalah selama pembaruan, lalu lintas akan dialihkan ke armada instans yang ada, meminimalkan pengaruh terhadap pengguna akhir aplikasi Anda.

Karena pembaruan platform terkelola menggunakan mekanisme penerapan yang tidak dapat diubah untuk melakukan pembaruan, aplikasi Anda akan tersedia saat periode pemeliharaan dan konsumen aplikasi Anda tidak akan terkena dampak pembaruan.

Tidak ada biaya tambahan untuk fitur pembaruan platform terkelola. Anda cukup membayar instans EC2 tambahan yang diperlukan untuk melakukan pembaruan selama periode pembaruan.

Periode pemeliharaan adalah slot waktu dua jam per minggu di mana AWS Elastic Beanstalk akan memulai pembaruan platform jika pembaruan platform terkelola diaktifkan dan versi baru platform tersedia. Misalnya, jika Anda memilih periode pemeliharaan yang dimulai setiap hari Minggu pukul 2 pagi, AWS Elastic Beanstalk akan memulai pembaruan platform antara pukul 2-4 pagi setiap hari Minggu. Penting untuk diperhatikan bahwa, bergantung pada konfigurasi aplikasi Anda, pembaruan mungkin selesai di luar periode pemeliharaan.

Periode pemeliharaan diatur pada basis per lingkungan, memberi Anda opsi untuk menyetel periode pemeliharaan yang berbeda untuk berbagai komponen aplikasi atau aplikasi Anda. Hal ini memungkinkan pembaruan lingkungan dilakukan secara bergiliran jika Anda tidak ingin beberapa aplikasi diperbarui dalam waktu bersamaan. Jika Anda mengaktifkan pembaruan platform terkelola tapi tidak menentukan periode pemeliharaan, periode 2 jam per minggu default akan ditetapkan untuk lingkungan Anda. Jika ingin mengubah ini saat pemeliharaan dilakukan untuk Anda, Anda dapat melakukannya dengan mengubah konfigurasi pembaruan terkelola di AWS Management Console atau dengan menggunakan API UpdateEnvironment.

Anda akan diberi tahu tentang ketersediaan versi platform baru melalui AWS Management Console, pengumuman forum, dan catatan rilis.

Detail mengenai perubahan antarversi platform dapat ditemukan di halaman Catatan Rilis AWS Elastic Beanstalk.

Tindakan yang tersedia untuk Anda saat pembaruan platform terkelola sedang berlangsung hanyalah ‘batalkan’. Tindakan ini memungkinkan Anda menghentikan pembaruan langsung dan kembali ke versi sebelumnya.

Lingkungan Anda akan selalui diperbarui dengan versi terakhir yang tersedia berdasarkan tingkat (minor ditambah patch atau hanya patch) yang telah Anda pilih.

Detail untuk setiap pembaruan platform terkelola tersedia pada halaman kejadian dan diberi tag dengan jenis kejadian “PEMELIHARAAN”.

Jumlah rilis versi pada suatu tahun akan bervariasi berdasarkan frekuensi dan konten rilis serta patch dari vendor atau tim inti bahasa/framework, dan hasil pemeriksaan menyeluruh dari rilis dan patch ini oleh tim teknik platform kami.

Dukungan AWS Graviton

Untuk men-deploy aplikasi Anda dengan prosesor berbasis arm64 di konsol Elastic Beanstalk, Anda bisa memilih arsitektur prosesor dan jenis instans dari tab kapasitas di pengaturan opsi Konfigurasi lainnya.

Untuk melakukan deployment aplikasi Anda menggunakan Elastic Beanstalk CLI, AWS CLI, CFN, atau AWS CDK, lihat Panduan Developer Elastic Beanstalk.

Jika beban kerja Anda menggunakan bahasa pemrograman yang ditafsirkan seperti Node.js, Python, Tomcat, PHP, atau Ruby, Anda tidak perlu mengompilasi ulang beban kerja Anda untuk menggunakan Graviton. Jika Anda menggunakan Go atau .Net Core untuk beban kerja, Anda perlu memperbarui perintah build untuk jenis instans arm64. Anda juga perlu mengompilasi ulang dependensi biner atau menggunakan rilis dependensi biner yang kompatibel dengan arm64. Jika Anda menggunakan Docker, citra Docker Anda harus bersifat multiarsitektur dan mendukung deploy ke x86 dan arm64.

Elastic Beanstalk mendukung Graviton pada 64bit Amazon Linux 2 untuk berbagai macam platform dan cabang. Lihat dokumentasi untuk daftar selengkapnya.

Anda bisa mentransisikan beban kerja dengan mudah ke Graviton dan memanfaatkan manfaat kinerja dan biaya dalam kasus penggunaan berikut: beban kerja berbasiskan Linux yang dibuat terutama pada teknologi sumber terbuka; aplikasi berbasis kontainer dan layanan mikro seperti Docker dan MC Docker; aplikasi yang ditulis dalam bahasa pemrograman portabel seperti Java, Python, .NET Core, node.js, dan PHP; Aplikasi C/C++, Rust, atau Go yang telah dikompilasi; beban kerja .NET Core (v3.1+) yang berjalan di Linux; beban kerja multiutasan; beban kerja yang bersifat sensitif terhadap akses memori yang tidak seragam (NUMA); serta pengembangan dan pengujian perangkat lunak asli arm64.

Penagihan

Tidak ada biaya tambahan untuk AWS Elastic Beanstalk–Anda hanya membayar sumber daya AWS yang benar-benar digunakan untuk menyimpan dan menjalankan aplikasi Anda.

Anda hanya membayar sesuai yang Anda gunakan tanpa ada biaya minimum untuk penggunaan sumber daya AWS apa pun. Untuk informasi harga Amazon EC2, silakan kunjungi bagian harga di halaman detail EC2. Untuk informasi harga Amazon S3, silakan kunjungi bagian harga di halaman detail S3. Anda dapat mengunakan kalkulator sederhana AWS untuk memperkirakan tagihan Anda pada ukuran aplikasi yang berbeda.

Anda dapat melihat biaya yang ditagihkan pada Anda untuk periode tagihan saat ini kapan pun di situs web Amazon Web Services, dengan login ke akun Amazon Web Services Anda, dan pilih Aktivitas Akun di bawah Akun Web Services Anda.

Dukungan

Ya. AWS Support mencakup masalah terkait penggunaan AWS Elastic Beanstalk Anda. Untuk detail selengkapnya dan harga, lihat halaman AWS Support.

Anda dapat mengetuk beragam pengetahuan komunitas AWS yang ada untuk membantu pengembangan melalui forum diskusi AWS Elastic Beanstalk.