Penyeimbangan Beban dengan AWS ELB

Halo semua! Kursus dimulai hari ini "AWS untuk Pengembang", sehubungan dengan itu kami mengadakan webinar tematik terkait yang didedikasikan untuk tinjauan ELB. Kami melihat jenis penyeimbang dan membuat beberapa instans EC2 dengan penyeimbang. Kami juga mempelajari contoh penggunaan lainnya.

Penyeimbangan Beban dengan AWS ELB

Setelah mendengarkan webinar, Kamu akan:

  • memahami apa itu AWS Load Balancing;
  • mengetahui jenis-jenis Elastic Load Balancer dan komponen-komponennya;
  • gunakan AWS ELB dalam latihan Anda.

Mengapa Anda perlu mengetahui hal ini?

  • berguna jika Anda berencana mengikuti ujian sertifikasi AWS;
  • ini adalah cara sederhana untuk mendistribusikan beban antar server;
  • Ini adalah cara sederhana untuk menambahkan Lambda ke layanan Anda (ALB).

Melakukan pelajaran terbuka Rishat Teregulov, insinyur sistem di perusahaan pemasaran untuk pengembangan dan dukungan situs web.

pengenalan

Apa itu Elastic Load Balancer dapat dilihat pada diagram di bawah ini, yang menunjukkan contoh sederhana:

Penyeimbangan Beban dengan AWS ELB

Load Balancer menerima permintaan dan mendistribusikannya ke seluruh instance. Kami memiliki satu contoh terpisah, ada fungsi Lambda dan ada grup AutoScaling (sekelompok server).

Jenis AWS ELB

1. Mari kita lihat tipe utamanya:

Penyeimbang Beban Klasik. Penyeimbang beban pertama dari AWS, bekerja pada OSI Layer 4 dan Layer 7, mendukung HTTP, HTTPS, TCP dan SSL. Ini memberikan penyeimbangan beban dasar di beberapa instans Amazon EC2 dan bekerja pada tingkat permintaan dan koneksi. Mari kita buka (disorot dengan warna abu-abu):

Penyeimbangan Beban dengan AWS ELB

Penyeimbang ini dianggap ketinggalan jaman, sehingga disarankan untuk digunakan hanya pada kasus tertentu. Misalnya, untuk aplikasi yang dibangun di jaringan EC2‑Classic. Pada prinsipnya, tidak ada yang menghentikan kami untuk membuatnya:

Penyeimbangan Beban dengan AWS ELB

2. Penyeimbang Beban Jaringan. Cocok untuk beban kerja berat, beroperasi pada OSI Layer 4 (dapat digunakan di EKS dan ECS), didukung TCP, UDP dan TLS.

Network Load Balancer merutekan lalu lintas ke target di Amazon VPC dan mampu memproses jutaan permintaan per detik dengan latensi sangat rendah. Selain itu, dioptimalkan untuk menangani pola lalu lintas dengan beban yang tiba-tiba dan berubah-ubah.

3. Penyeimbang Beban Aplikasi. Bekerja pada lapisan 7, memiliki dukungan Lambda, mendukung aturan tingkat header dan jalur, mendukung HTTP dan HTTPS.
Menyediakan perutean permintaan tingkat lanjut yang berfokus pada penyampaian aplikasi yang dibangun pada arsitektur modern, termasuk layanan mikro dan container. Mengarahkan lalu lintas ke target di Amazon VPC berdasarkan konten permintaan.

Bagi banyak pengguna, Application Load Balancer adalah pilihan pertama untuk menggantikan Classic Load Balancer, karena TCP tidak umum seperti HTTP.

Mari kita buat juga, sehingga kita sudah memiliki dua penyeimbang beban:

Penyeimbangan Beban dengan AWS ELB

Komponen Keseimbangan Beban

Komponen Keseimbangan Beban Umum (umum untuk semua penyeimbang):

  • Akses Kebijakan Pencatatan

— log akses ELB Anda. Untuk membuat pengaturan, Anda dapat membuka Deskripsi dan memilih tombol “Edit atribut”:

Penyeimbangan Beban dengan AWS ELB

Kemudian kita tentukan S3Bucket - Penyimpanan objek Amazon:

Penyeimbangan Beban dengan AWS ELB

  • Skema

— penyeimbang internal atau eksternal. Intinya adalah apakah LoadBalancer Anda harus menerima alamat eksternal agar dapat diakses dari luar, atau dapatkah itu menjadi load balancer internal Anda;

  • Grup Keamanan

— kontrol akses ke penyeimbang. Pada dasarnya ini adalah firewall tingkat tinggi.

Penyeimbangan Beban dengan AWS ELB

Penyeimbangan Beban dengan AWS ELB

  • Subnet

— subnet di dalam VPC Anda (dan, karenanya, zona ketersediaan). Subnet ditentukan selama pembuatan. Jika VPC dibatasi berdasarkan wilayah, maka Subnet dibatasi berdasarkan zona ketersediaan. Saat membuat Load Balancer, lebih baik membuatnya di setidaknya dua subnet (membantu jika muncul masalah dengan satu Availability Zone);

  • Pendengar

— protokol penyeimbang Anda. Seperti disebutkan sebelumnya, untuk Classic Load Balancer dapat berupa HTTP, HTTPS, TCP dan SSL, untuk Network Load Balancer - TCP, UDP dan TLS, untuk Application Load Balancer - HTTP dan HTTPS.

Contoh untuk Load Balancer Klasik:

Penyeimbangan Beban dengan AWS ELB

Namun di Application Load Balancer kita melihat antarmuka yang sedikit berbeda dan logika umum yang berbeda:

Penyeimbangan Beban dengan AWS ELB

Komponen Load Balancer v2 (ALB dan NLB)

Sekarang mari kita lihat lebih dekat penyeimbang versi 2, Application Load Balancer dan Network Load Balancer. Penyeimbang ini memiliki fitur komponennya sendiri. Misalnya, konsep seperti Kelompok Sasaran muncul - contoh (dan fungsi). Berkat komponen ini, kami memiliki kesempatan untuk menentukan Grup Target mana yang ingin kami tuju lalu lintasnya.

Penyeimbangan Beban dengan AWS ELB

Penyeimbangan Beban dengan AWS ELB

Secara sederhana, di Grup Target kami menentukan kejadian di mana lalu lintas akan datang. Jika di Classic Load Balancer yang sama Anda cukup langsung menghubungkan intensitas ke penyeimbang, maka di Application Load Balancer Anda terlebih dahulu:

  • membuat Penyeimbang Beban;
  • membuat grup sasaran;
  • mengarahkan melalui port yang diperlukan atau aturan Load Balancer ke Grup Target yang diperlukan;
  • di Grup target Anda menetapkan instance.

Logika pengoperasian ini mungkin tampak lebih rumit, namun sebenarnya lebih nyaman.

Komponen selanjutnya adalah Aturan pendengar (aturan untuk perutean). Ini hanya berlaku untuk Application Load Balancer. Jika di Network Load Balancer Anda cukup membuat Listener, dan itu mengirimkan lalu lintas ke grup Target tertentu, maka di Application Load Balancer semuanya lebih menyenangkan dan nyaman.

Penyeimbangan Beban dengan AWS ELB

Sekarang katakanlah beberapa kata tentang komponen selanjutnya - IP elastis (alamat statis untuk NLB). Jika aturan perutean aturan Listener hanya memengaruhi Application Load Balancer, maka Elastic IP hanya memengaruhi Network Load Balancer.

Mari buat Penyeimbang Beban Jaringan:

Penyeimbangan Beban dengan AWS ELB

Penyeimbangan Beban dengan AWS ELB

Dan selama proses pembuatan kita akan melihat bahwa kita diberi kesempatan untuk memilih Elastic IP:

Penyeimbangan Beban dengan AWS ELB

Elastic IP menyediakan satu alamat IP yang dapat dikaitkan dengan instans EC2 berbeda dari waktu ke waktu. Jika instans EC2 memiliki alamat IP elastis dan instans tersebut dihentikan atau dihentikan, Anda dapat segera mengaitkan instans EC2 baru dengan alamat IP elastis. Namun, aplikasi Anda saat ini tidak akan berhenti bekerja, karena aplikasi masih melihat alamat IP yang sama, meskipun EC2 sebenarnya telah berubah.

di sini adalah kasus penggunaan lain tentang topik mengapa Elastic IP diperlukan. Lihat, kita melihat 3 alamat IP, tetapi alamat tersebut tidak akan bertahan selamanya:

Penyeimbangan Beban dengan AWS ELB

Amazon mengubahnya seiring waktu, mungkin setiap 60 detik (tetapi dalam praktiknya, tentu saja, lebih jarang). Artinya alamat IP bisa berubah. Dan dalam kasus Network Load Balancer, Anda cukup mengikat alamat IP dan menunjukkannya dalam aturan, kebijakan, dll.

Penyeimbangan Beban dengan AWS ELB

Buat kesimpulan

ELB menyediakan distribusi otomatis lalu lintas masuk ke beberapa target (kontainer, instans Amazon EC2, alamat IP, dan fungsi Lambda). ELB mampu mendistribusikan lalu lintas dengan beban yang bervariasi baik dalam satu Availability Zone maupun di beberapa Availability Zone. Pengguna dapat memilih dari tiga jenis penyeimbang yang memberikan ketersediaan tinggi, penskalaan otomatis, dan perlindungan yang baik. Semua ini penting untuk memastikan toleransi kesalahan aplikasi Anda.

Keuntungan utama:

  • ketersediaan tinggi. Perjanjian layanan mengasumsikan ketersediaan 99,99% untuk penyeimbang beban. Misalnya, beberapa Availability Zone memastikan bahwa lalu lintas hanya diproses oleh objek yang sehat. Faktanya, Anda dapat menyeimbangkan beban di seluruh wilayah, mengarahkan lalu lintas ke target yang sehat di zona ketersediaan yang berbeda;
  • Keamanan. ELB bekerja dengan Amazon VPC, menyediakan berbagai kemampuan keamanan - manajemen sertifikat terintegrasi, otentikasi pengguna, dan dekripsi SSL/TLS. Semuanya menyediakan manajemen pengaturan TLS yang terpusat dan fleksibel;
  • elastisitas. ELB dapat menangani perubahan mendadak pada lalu lintas jaringan. Dan integrasi mendalam dengan Auto Scaling memberi aplikasi sumber daya yang cukup jika beban berubah, tanpa memerlukan intervensi manual;
  • keluwesan. Anda dapat menggunakan alamat IP untuk merutekan permintaan ke target aplikasi Anda. Hal ini memberikan fleksibilitas ketika memvirtualisasikan aplikasi target, sehingga memberikan kemampuan untuk menghosting beberapa aplikasi dalam satu instans. Karena aplikasi dapat menggunakan satu port jaringan dan memiliki grup keamanan terpisah, komunikasi antar aplikasi disederhanakan ketika kita memiliki, misalnya, arsitektur berbasis layanan mikro;
  • pemantauan dan audit. Anda dapat memantau aplikasi secara real time menggunakan fitur Amazon CloudWatch. Kita berbicara tentang metrik, log, pelacakan permintaan. Secara sederhana, Anda akan mampu mengidentifikasi masalah dan menentukan hambatan kinerja dengan cukup akurat;
  • penyeimbangan beban hibrida. Kemampuan untuk menyeimbangkan beban antara sumber daya lokal dan AWS menggunakan penyeimbang beban yang sama memudahkan migrasi atau memperluas aplikasi lokal ke cloud. Penanganan kegagalan juga disederhanakan menggunakan cloud.

Jika Anda tertarik dengan detailnya, berikut beberapa tautan bermanfaat lainnya dari situs web resmi Amazon:

  1. Penyeimbangan Beban Elastis.
  2. Kemampuan Penyeimbangan Beban Elastis.

Sumber: www.habr.com

Tambah komentar