Manfaat Auto Scaling untuk arsitektur aplikasi - EC2Auto Scaling Amazon

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

Manfaat Auto Scaling untuk arsitektur aplikasi

Menambahkan Amazon EC2 Auto Scaling ke arsitektur aplikasi Anda adalah salah satu cara untuk memaksimalkan manfaat Cloud. AWS Saat Anda menggunakan Amazon EC2 Auto Scaling, aplikasi Anda mendapatkan manfaat berikut:

  • Toleransi kesalahan yang lebih baik. Amazon EC2 Auto Scaling dapat mendeteksi saat instance tidak sehat, menghentikannya, dan meluncurkan instance untuk menggantikannya. Anda juga dapat mengonfigurasi Amazon EC2 Auto Scaling untuk menggunakan beberapa Availability Zone. Jika satu Availability Zone menjadi tidak tersedia, Amazon EC2 Auto Scaling dapat meluncurkan instans di zona lain untuk mengimbanginya.

  • Ketersediaan yang lebih baik. Amazon EC2 Auto Scaling membantu memastikan bahwa aplikasi Anda selalu memiliki jumlah kapasitas yang tepat untuk menangani permintaan lalu lintas saat ini.

  • Manajemen biaya yang lebih baik. Amazon EC2 Auto Scaling dapat secara dinamis meningkatkan dan mengurangi kapasitas sesuai kebutuhan. Karena Anda membayar untuk EC2 instance yang Anda gunakan, Anda menghemat uang dengan meluncurkan instance saat dibutuhkan dan menghentikannya saat tidak.

Contoh: Menutupi permintaan variabel

Untuk mendemonstrasikan beberapa manfaat Amazon EC2 Auto Scaling, pertimbangkan aplikasi web dasar yang berjalan. AWS Aplikasi ini memungkinkan karyawan mencari ruang konferensi yang mungkin ingin mereka gunakan untuk rapat. Selama awal dan akhir minggu, penggunaan aplikasi ini adalah minimal. Selama pertengahan minggu, lebih banyak karyawan yang menjadwalkan pertemuan, sehingga permintaan pada aplikasi meningkat secara signifikan.

Grafik berikut menunjukkan jumlah kapasitas aplikasi yang digunakan selama seminggu.

Contoh permintaan kapasitas pada sebuah aplikasi.

Secara tradisional, ada dua cara untuk merencanakan perubahan kapasitas ini. Opsi pertama adalah menambahkan cukup server agar aplikasi selalu memiliki kapasitas yang cukup untuk memenuhi permintaan. Namun, sisi negatif dari opsi ini adalah ada hari-hari ketika aplikasi tidak membutuhkan kapasitas yang besar. Kapasitas ekstra tetap tidak terpakai dan, pada dasarnya, meningkatkan biaya untuk menjaga aplikasi tetap berjalan.

Contoh yang menunjukkan bagaimana membeli kapasitas lebih banyak dari yang dibutuhkan bisa saja tidak efisien dari perspektif biaya.

Opsi kedua adalah memiliki kapasitas yang cukup untuk menangani permintaan rata-rata pada aplikasi. Opsi ini lebih murah, karena Anda tidak membeli peralatan yang hanya akan Anda gunakan sesekali. Namun, Anda berisiko menciptakan pengalaman pelanggan yang buruk ketika permintaan pada aplikasi melebihi kapasitasnya.

Contoh yang menunjukkan bahwa membeli kapasitas yang lebih sedikit dari yang dibutuhkan dapat menyebabkan pengalaman pelanggan yang buruk.

Dengan menambahkan Amazon EC2 Auto Scaling ke aplikasi ini, Anda memiliki opsi ketiga yang tersedia. Anda dapat menambahkan instance baru ke aplikasi hanya jika diperlukan, dan menghentikannya jika tidak lagi diperlukan. Karena Amazon EC2 Auto Scaling menggunakan EC2 instance, Anda hanya perlu membayar instans yang Anda gunakan, saat menggunakannya. Sekarang Anda memiliki arsitektur hemat biaya yang memberikan pengalaman pelanggan terbaik dengan tetap meminimalkan biaya.

Contoh yang menunjukkan bagaimana Amazon EC2 Auto Scaling dapat menyesuaikan kapasitas sesuai kebutuhan.

Contoh: Arsitektur aplikasi web

Dalam skenario aplikasi web yang umum, Anda menjalankan beberapa salinan aplikasi secara bersamaan untuk mencakup volume lalu lintas pelanggan Anda. Beberapa salinan aplikasi Anda di-host pada EC2 instance yang identik (server cloud), masing-masing menangani permintaan pelanggan.

Amazon EC2 Auto Scaling mengelola peluncuran dan penghentian EC2 instans ini atas nama Anda. Anda menentukan serangkaian kriteria (seperti CloudWatch alarm Amazon) yang menentukan kapan grup Auto Scaling meluncurkan atau menghentikan instance. EC2 Penambahan grup Auto Scaling ke arsitektur jaringan Anda membantu membuat aplikasi Anda lebih tersedia dan toleran kegagalan.

Arsitektur tiga tingkat dasar dengan grup Auto Scaling.

Anda dapat membuat grup Auto Scaling sebanyak yang Anda perlukan. Misalnya, Anda dapat membuat grup Auto Scaling untuk setiap tingkat.

Untuk mendistribusikan lalu lintas di antara berbagai grup Auto Scaling Anda, Anda dapat memperkenalkan load balancer ke arsitektur Anda. Untuk informasi selengkapnya, lihat Penyeimbang Beban Elastis.

Contoh: Mendistribusikan instance di seluruh Availability Zone

Availability Zones adalah lokasi terisolasi di tempat tertentu Wilayah AWS. Setiap Wilayah memiliki beberapa Availability Zone yang dirancang untuk menyediakan ketersediaan tinggi untuk Wilayah tersebut. Availability Zones bersifat independen, dan karena itu Anda meningkatkan ketersediaan aplikasi saat mendesain aplikasi untuk menggunakan beberapa zona. Untuk informasi selengkapnya, lihat Ketahanan dalam Auto Scaling Amazon EC2.

Availability Zone diidentifikasi oleh Wilayah AWS kode diikuti oleh pengidentifikasi huruf (misalnya,us-east-1a). Jika Anda membuat subnet VPC dan bukan menggunakan defaultVPC, Anda dapat menentukan satu atau lebih subnet di setiap Availability Zone. Setiap subnet harus berada sepenuhnya dalam satu Availability Zone dan tidak dapat memperluas zona. Untuk informasi selengkapnya, lihat Cara Amazon VPC bekerja di Panduan VPC Pengguna Amazon.

Saat Anda membuat grup Auto Scaling, Anda harus memilih VPC dan subnet tempat Anda akan menggunakan grup Auto Scaling. Amazon EC2 Auto Scaling membuat instans Anda di subnet pilihan Anda. Setiap instance dikaitkan dengan Availability Zone tertentu yang dipilih oleh Amazon EC2 Auto Scaling. Saat instans diluncurkan, Amazon EC2 Auto Scaling mencoba mendistribusikannya secara merata di antara zona untuk ketersediaan dan keandalan yang tinggi.

Gambar berikut menunjukkan ikhtisar arsitektur multi-tier yang diterapkan di tiga Availability Zone.

Grup Auto Scaling khas yang mencakup tiga Availability Zone.

Distribusi instance

EC2Auto Scaling Amazon secara otomatis mencoba mempertahankan jumlah instans yang setara di setiap Availability Zone yang diaktifkan. Amazon EC2 Auto Scaling melakukan ini dengan mencoba meluncurkan instance baru di Availability Zone dengan instans paling sedikit. Jika ada beberapa subnet yang dipilih untuk Availability Zone, Amazon EC2 Auto Scaling mencoba meluncurkan instans di subnet yang memiliki jumlah alamat IP tertinggi yang tersedia di Availability Zone. Namun, jika upaya gagal, Amazon EC2 Auto Scaling mencoba meluncurkan instans di Availability Zone lain hingga berhasil.

Dalam keadaan di mana Availability Zone menjadi tidak sehat atau tidak tersedia, distribusi instance mungkin menjadi tidak merata di seluruh Availability Zone. Saat Availability Zone pulih, Amazon EC2 Auto Scaling secara otomatis menyeimbangkan kembali grup Auto Scaling. Ini dilakukan dengan meluncurkan instance di Availability Zones yang diaktifkan dengan instans paling sedikit dan menghentikan instance di tempat lain.

Aktivitas rebalancing

Kegiatan penyeimbangan kembali terbagi dalam dua kategori: Penyeimbangan kembali Zona Ketersediaan dan penyeimbangan kembali kapasitas.

Penyeimbangan kembali Zona Ketersediaan

Setelah tindakan tertentu terjadi, grup Auto Scaling Anda dapat menjadi tidak seimbang antara Zona Ketersediaan. EC2Auto Scaling Amazon mengkompensasi dengan menyeimbangkan kembali Availability Zone. Tindakan berikut dapat menyebabkan aktivitas rebalancing:

  • Anda mengubah Availability Zone yang terkait dengan grup Auto Scaling Anda.

  • Anda secara eksplisit menghentikan atau melepaskan instance atau menempatkan instance dalam keadaan siaga, dan kemudian grup menjadi tidak seimbang.

  • Availability Zone yang sebelumnya memiliki kapasitas tidak mencukupi pulih dan sekarang memiliki kapasitas tambahan.

  • Zona Ketersediaan yang sebelumnya memiliki harga Spot di atas harga maksimum Anda sekarang memiliki harga Spot di bawah harga maksimum Anda.

Saat menyeimbangkan kembali, Amazon Auto EC2 Scaling meluncurkan instans baru sebelum menghentikan yang sebelumnya. Dengan cara ini, penyeimbangan kembali tidak mengganggu kinerja atau ketersediaan aplikasi Anda.

Karena Amazon EC2 Auto Scaling mencoba meluncurkan instans baru sebelum menghentikan instans sebelumnya, berada pada atau mendekati kapasitas maksimum yang ditentukan dapat menghambat atau sepenuhnya menghentikan aktivitas penyeimbangan kembali.

Untuk menghindari masalah ini, sistem sementara dapat melebihi kapasitas maksimum yang ditentukan dari suatu kelompok selama aktivitas penyeimbangan kembali. Secara default, ia dapat melakukannya dengan margin 10 persen atau satu contoh, mana yang lebih besar. Margin diperpanjang hanya jika kelompok berada pada atau mendekati kapasitas maksimum dan perlu penyeimbangan kembali. Perpanjangan hanya berlangsung selama diperlukan untuk menyeimbangkan kembali kelompok (biasanya beberapa menit).

Atau, Anda dapat menetapkan ambang batas untuk grup Auto Scaling dengan menggunakan kebijakan pemeliharaan instans, dan grup hanya dapat menambah atau mengurangi kapasitas dalam rentang ambang tersebut. Dengan cara ini, Anda dapat mengontrol seberapa cepat grup Anda menyeimbangkan kembali dirinya sendiri. Untuk informasi selengkapnya, lihat Kebijakan pemeliharaan instans.

Penyeimbangan Ulang Kapasitas

Anda dapat mengaktifkan Penyeimbangan Kembali Kapasitas untuk grup Auto Scaling saat menggunakan Instans Spot. Hal ini memungkinkan Amazon EC2 Auto Scaling mencoba meluncurkan Instans Spot setiap kali Amazon EC2 melaporkan bahwa Instans Spot berisiko tinggi mengalami gangguan. Setelah meluncurkan instance baru, itu kemudian mengakhiri instance sebelumnya. Untuk informasi selengkapnya, lihat Gunakan Rebalancing Kapasitas untuk menangani interupsi Spot Amazon EC2.