Menyebarkan wadah dengan menggunakan Elastic Beanstalk - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyebarkan wadah dengan menggunakan Elastic Beanstalk

Thomas Scott dan Jean-Baptiste Guillois, Amazon Web Services

Ringkasan

Di Amazon Web Services (AWS) Cloud, AWS Elastic Beanstalk mendukung Docker sebagai platform yang tersedia, sehingga container dapat berjalan dengan lingkungan yang dibuat. Pola ini menunjukkan cara menggunakan kontainer menggunakan layanan Elastic Beanstalk. Penyebaran pola ini akan menggunakan lingkungan server web berdasarkan platform Docker.

Untuk menggunakan Elastic Beanstalk untuk menyebarkan dan menskalakan aplikasi dan layanan web, Anda mengunggah kode dan penyebaran ditangani secara otomatis. Penyediaan kapasitas, penyeimbangan beban, penskalaan otomatis, dan pemantauan kesehatan aplikasi juga disertakan. Saat Anda menggunakan Elastic Beanstalk, Anda dapat mengambil kendali penuh atas sumber daya AWS yang dibuatnya atas nama Anda. Tidak ada biaya tambahan untuk Elastic Beanstalk. Anda hanya membayar untuk sumber daya AWS yang digunakan untuk menyimpan dan menjalankan aplikasi Anda.

Pola ini mencakup instruksi untuk penerapan menggunakan AWS Elastic Beanstalk Command Line Interface (EB CLI) dan AWS Management Console.

Kasus penggunaan

Kasus penggunaan untuk Elastic Beanstalk meliputi yang berikut: 

  • Menerapkan lingkungan prototipe untuk mendemonstrasikan aplikasi frontend. (Pola ini menggunakan Dockerfile sebagai contoh.)

  • Menerapkan API untuk menangani permintaan API untuk domain tertentu.

  • Terapkan solusi orkestrasi menggunakan Docker-Compose (tidak digunakan sebagai contoh praktis dalam pola docker-compose.yml ini).

Prasyarat dan batasan

Prasyarat

  • Akun AWS

  • AWS EB CLI diinstal secara lokal

  • Docker diinstal pada mesin lokal

Batasan

  • Ada batas tarik Docker 100 tarikan per 6 jam per alamat IP pada paket gratis.

Arsitektur

Tumpukan teknologi target

  • Instans Amazon Elastic Compute Cloud (Amazon EC2)

  • Grup keamanan

  • Penyeimbang Beban Aplikasi

  • Grup Auto Scaling

Arsitektur target

Arsitektur untuk menyebarkan wadah dengan Elastic Beanstalk.

Otomatisasi dan skala

AWS Elastic Beanstalk dapat secara otomatis menskalakan berdasarkan jumlah permintaan yang dibuat. Sumber daya AWS yang dibuat untuk lingkungan mencakup satu Application Load Balancer, grup Auto Scaling, dan satu atau beberapa instans Amazon. EC2  

Load balancer berada di depan EC2 instans Amazon, yang merupakan bagian dari grup Auto Scaling. EC2 Auto Scaling Amazon secara otomatis memulai EC2 instans Amazon tambahan untuk mengakomodasi peningkatan beban pada aplikasi Anda. Jika pemuatan pada aplikasi Anda berkurang, Amazon EC2 Auto Scaling menghentikan instance, tetapi setidaknya satu instance tetap berjalan.

Pemicu penskalaan otomatis

Grup Auto Scaling di lingkungan Elastic Beanstalk Anda menggunakan dua CloudWatch alarm Amazon untuk memulai operasi penskalaan. Pemicu default menskalakan ketika lalu lintas jaringan keluar rata-rata dari setiap instans lebih tinggi dari 6 MB atau lebih rendah dari 2 MB selama periode lima menit. Untuk menggunakan Amazon EC2 Auto Scaling secara efektif, konfigurasikan pemicu yang sesuai untuk aplikasi, jenis instans, dan persyaratan layanan Anda. Anda dapat menskalakan berdasar beberapa statistik termasuk latensi, I/O disk, utilisasi CPU, dan jumlah permintaan. Untuk informasi selengkapnya, lihat Pemicu Auto Scaling.

Alat

Layanan AWS

  • AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.

  • AWS EB Command Line Interface (EB CLI) adalah klien baris perintah yang dapat Anda gunakan untuk membuat, mengonfigurasi, dan mengelola lingkungan Elastic Beanstalk.

  • Elastic Load Balancing mendistribusikan lalu lintas aplikasi atau jaringan yang masuk ke beberapa target. Misalnya, Anda dapat mendistribusikan lalu lintas di seluruh instans, container, dan alamat IP Amazon Elastic Compute Cloud (Amazon EC2) di satu atau beberapa Availability Zone.

Layanan lainnya

  • Docker mengemas perangkat lunak ke dalam unit standar yang disebut kontainer yang mencakup pustaka, alat sistem, kode, dan runtime.

Kode

Kode untuk pola ini tersedia di repositori Aplikasi Sampel GitHub Cluster.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori jarak jauh.

  • Untuk mengkloning repositori, jalankan perintah. git clone https://github.com/aws-samples/cluster-sample-app.git < /p >

Pengembang aplikasi, administrator AWS, AWS DevOps

Inisialisasi proyek Elastic Beanstalk Docker.

  1. Buat file yang disebut aws.json di root.

  2. Dalam aws.json file, tambahkan kode berikut.

    {    "AWSEBDockerrunVersion":"1",    "Image":{       "Name":"cluster-sample-app"    },    "Ports":[       {          "ContainerPort":80,          "HostPort":8080       }    ] }
  3. Jalankan perintah eb init -p docker di root proyek.

Pengembang aplikasi, administrator AWS, AWS DevOps

Uji proyek secara lokal.

  1. Jalankan perintah eb local run di root proyek.

  2. Uji aplikasi dengan menavigasi ke. http://localhost

Pengembang aplikasi, administrator AWS, AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Jalankan perintah penerapan

  1. Jalankan perintah eb create docker-sample-cluster-app di root proyek.

Pengembang aplikasi, administrator AWS, AWS DevOps

Akses versi yang digunakan.

Setelah perintah penerapan selesai, akses proyek menggunakan eb open perintah.

Pengembang aplikasi, administrator AWS, AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan aplikasi dengan menggunakan browser.

  1. Buka konsol .

  2. Arahkan ke konsol Elastic Beanstalk.

  3. Pilih Buat Aplikasi.

  4. Untuk Nama Aplikasi, masukkan Cluster-Sample-App.

  5. Pilih Docker sebagai platform.

  6. Pilih Unggah kode Anda.

  7. Pilih file.zip lokal Anda (di root proyek kloning) atau URL Simple Storage Service Amazon (Amazon S3) publik.

Pengembang aplikasi, administrator AWS, AWS DevOps

Akses versi yang digunakan.

Setelah penyebaran, akses aplikasi yang digunakan, dan pilih URL yang disediakan.

Pengembang aplikasi, administrator AWS, AWS DevOps

Sumber daya terkait

Informasi tambahan

Keuntungan menggunakan Elastic Beanstalk

  • Penyediaan infrastruktur otomatis

  • Manajemen otomatis platform yang mendasarinya

  • Penambalan dan pembaruan otomatis untuk mendukung aplikasi

  • Penskalaan otomatis aplikasi

  • Kemampuan untuk menyesuaikan jumlah node

  • Kemampuan untuk mengakses komponen infrastruktur jika diperlukan

  • Kemudahan penyebaran di atas solusi penyebaran kontainer lainnya