Pengimbangan Beban dengan AWS ELB

Hai semua! Kursus bermula hari ini "AWS untuk Pembangun", yang berkaitan dengannya kami mengadakan webinar tematik yang sepadan khusus untuk semakan ELB. Kami melihat jenis pengimbang dan mencipta beberapa kejadian EC2 dengan pengimbang. Kami juga mengkaji contoh penggunaan lain.

Pengimbangan Beban dengan AWS ELB

Selepas mendengar webinar, Anda akan:

  • memahami apa itu AWS Load Balancing;
  • mengetahui jenis Pengimbang Beban Elastik dan komponennya;
  • gunakan AWS ELB dalam amalan anda.

Mengapa anda perlu mengetahui perkara ini sama sekali?

  • berguna jika anda merancang untuk mengambil peperiksaan pensijilan AWS;
  • ini adalah cara mudah untuk mengagihkan beban antara pelayan;
  • Ini ialah cara mudah untuk menambahkan Lambda pada perkhidmatan anda (ALB).

Mengadakan pengajaran terbuka Rishat Teregulov, jurutera sistem di syarikat pemasaran untuk pembangunan dan sokongan laman web.

Pengenalan

Apa itu Pengimbang Beban Elastik boleh dilihat dalam rajah di bawah, yang menunjukkan contoh mudah:

Pengimbangan Beban dengan AWS ELB

Pengimbang Beban menerima permintaan dan mengedarkannya ke seluruh keadaan. Kami mempunyai satu contoh berasingan, terdapat fungsi Lambda dan terdapat kumpulan AutoScaling (sekumpulan pelayan).

Jenis AWS ELB

1. Mari kita lihat jenis utama:

Pengimbang Beban Klasik. Pengimbang beban pertama daripada AWS, berfungsi pada kedua-dua OSI Layer 4 dan Layer 7, menyokong HTTP, HTTPS, TCP dan SSL. Ia menyediakan pengimbangan beban asas merentas berbilang contoh Amazon EC2 dan berfungsi pada kedua-dua peringkat permintaan dan sambungan. Mari kita buka (diserlahkan dalam warna kelabu):

Pengimbangan Beban dengan AWS ELB

Pengimbang ini dianggap ketinggalan zaman, jadi ia disyorkan untuk digunakan hanya dalam kes tertentu. Contohnya, untuk aplikasi yang dibina pada rangkaian EC2‑Classic. Pada dasarnya, tiada siapa yang menghalang kami daripada menciptanya:

Pengimbangan Beban dengan AWS ELB

2. Pengimbang Beban Rangkaian. Sesuai untuk beban kerja yang berat, beroperasi di OSI Layer 4 (boleh digunakan dalam EKS dan ECS), TCP, UDP dan TLS disokong.

Pengimbang Beban Rangkaian mengarahkan trafik ke sasaran dalam VPC Amazon dan mampu memproses berjuta-juta permintaan sesaat dengan kependaman sangat rendah. Selain itu, ia dioptimumkan untuk mengendalikan corak trafik dengan beban yang mendadak dan berubah.

3. Pengimbang Beban Aplikasi. Berfungsi pada lapisan 7, mempunyai sokongan Lambda, menyokong peraturan tahap pengepala dan laluan, menyokong HTTP dan HTTPS.
Menyediakan penghalaan permintaan lanjutan yang tertumpu pada penyampaian aplikasi yang dibina pada seni bina moden, termasuk perkhidmatan mikro dan bekas. Menghalakan trafik ke sasaran dalam Amazon VPC berdasarkan kandungan permintaan.

Bagi kebanyakan pengguna, Pengimbang Beban Aplikasi ialah pilihan pertama untuk menggantikan Pengimbang Beban Klasik, kerana TCP tidak sebiasa HTTP.

Mari kita buatnya juga, akibatnya kita sudah mempunyai dua pengimbang beban:

Pengimbangan Beban dengan AWS ELB

Komponen Imbangan Beban

Komponen Imbangan Beban Biasa (biasa kepada semua pengimbang):

  • Dasar Pengelogan Akses

β€” log akses ELB anda. Untuk membuat tetapan, anda boleh pergi ke Penerangan dan pilih butang "Edit atribut":

Pengimbangan Beban dengan AWS ELB

Kemudian kami menentukan S3Bucket - penyimpanan objek Amazon:

Pengimbangan Beban dengan AWS ELB

  • Skim

β€” pengimbang dalaman atau luaran. Intinya ialah sama ada LoadBalancer anda mesti menerima alamat luaran agar boleh diakses dari luar, atau bolehkah ia menjadi pengimbang beban dalaman anda;

  • Kumpulan Keselamatan

β€” kawalan akses kepada pengimbang. Pada asasnya ini adalah tembok api peringkat tinggi.

Pengimbangan Beban dengan AWS ELB

Pengimbangan Beban dengan AWS ELB

  • Subnet

β€” subnet dalam VPC anda (dan, sewajarnya, zon ketersediaan). Subnet ditentukan semasa penciptaan. Jika VPC dihadkan mengikut rantau, maka Subnet dihadkan oleh zon ketersediaan. Apabila mencipta Pengimbang Beban, adalah lebih baik untuk menciptanya dalam sekurang-kurangnya dua subnet (membantu jika masalah timbul dengan satu Zon Ketersediaan);

  • Pendengar

β€” protokol pengimbang anda. Seperti yang dinyatakan sebelum ini, untuk Pengimbang Beban Klasik ia boleh menjadi HTTP, HTTPS, TCP dan SSL, untuk Pengimbang Beban Rangkaian - TCP, UDP dan TLS, untuk Pengimbang Beban Aplikasi - HTTP dan HTTPS.

Contoh untuk Pengimbang Beban Klasik:

Pengimbangan Beban dengan AWS ELB

Tetapi dalam Pengimbang Beban Aplikasi kita melihat antara muka yang sedikit berbeza dan logik umumnya berbeza:

Pengimbangan Beban dengan AWS ELB

Komponen v2 Pengimbang Beban (ALB dan NLB)

Sekarang mari kita lihat lebih dekat pada pengimbang versi 2 Pengimbang Beban Aplikasi dan Pengimbang Beban Rangkaian. Pengimbang ini mempunyai ciri komponen mereka sendiri. Contohnya, konsep seperti Kumpulan Sasaran muncul - contoh (dan fungsi). Terima kasih kepada komponen ini, kami mempunyai peluang untuk menentukan Kumpulan Sasaran yang mana kami ingin mengarahkan trafik.

Pengimbangan Beban dengan AWS ELB

Pengimbangan Beban dengan AWS ELB

Secara ringkas, dalam Kumpulan Sasaran kami menentukan keadaan di mana trafik akan datang. Jika dalam Pengimbang Beban Klasik yang sama anda hanya menyambungkan intensiti kepada pengimbang dengan segera, maka dalam Pengimbang Beban Aplikasi anda terlebih dahulu:

  • buat Pengimbang Beban;
  • buat kumpulan Sasaran;
  • terus melalui port yang diperlukan atau peraturan Pengimbang Beban kepada Kumpulan Sasaran yang diperlukan;
  • dalam Kumpulan sasaran yang anda tetapkan kejadian.

Logik operasi ini mungkin kelihatan lebih rumit, tetapi sebenarnya ia lebih mudah.

Komponen seterusnya ialah Peraturan pendengar (peraturan untuk penghalaan). Ini hanya terpakai kepada Pengimbang Beban Aplikasi. Jika dalam Pengimbang Beban Rangkaian anda hanya mencipta Pendengar, dan ia menghantar trafik ke kumpulan Sasaran tertentu, maka dalam Pengimbang Beban Aplikasi semuanya lebih seronok dan selesa.

Pengimbangan Beban dengan AWS ELB

Sekarang mari kita sebutkan beberapa perkataan tentang komponen seterusnya - IP elastik (alamat statik untuk NLB). Jika peraturan penghalaan peraturan Pendengar hanya mempengaruhi Pengimbang Beban Aplikasi, maka IP Elastik hanya mempengaruhi Pengimbang Beban Rangkaian.

Mari buat Pengimbang Beban Rangkaian:

Pengimbangan Beban dengan AWS ELB

Pengimbangan Beban dengan AWS ELB

Dan semasa proses penciptaan kita akan melihat bahawa kita diberi peluang untuk memilih IP Elastik:

Pengimbangan Beban dengan AWS ELB

IP elastik menyediakan alamat IP tunggal yang boleh dikaitkan dengan kejadian EC2 yang berbeza dari semasa ke semasa. Jika tika EC2 mempunyai alamat IP Elastik dan tika itu ditamatkan atau dihentikan, anda boleh segera mengaitkan tika EC2 baharu dengan alamat IP Elastik. Walau bagaimanapun, aplikasi semasa anda tidak akan berhenti berfungsi, kerana aplikasi masih melihat alamat IP yang sama, walaupun EC2 sebenar telah berubah.

di sini ialah kes guna lain mengenai topik mengapa IP Elastik diperlukan. Lihat, kita melihat 3 alamat IP, tetapi ia tidak akan kekal di sini selama-lamanya:

Pengimbangan Beban dengan AWS ELB

Amazon mengubahnya dari masa ke masa, mungkin setiap 60 saat (tetapi dalam amalan, sudah tentu, kurang kerap). Ini bermakna alamat IP boleh berubah. Dan dalam kes Pengimbang Beban Rangkaian, anda hanya boleh mengikat alamat IP dan menyatakannya dalam peraturan, dasar anda, dsb.

Pengimbangan Beban dengan AWS ELB

Lukiskan kesimpulan

ELB menyediakan pengedaran automatik trafik masuk merentas berbilang sasaran (bekas, contoh Amazon EC2, alamat IP dan fungsi Lambda). ELB mampu mengagihkan trafik dengan beban yang berbeza-beza dalam satu Zon Ketersediaan dan merentas berbilang Zon Ketersediaan. Pengguna boleh memilih daripada tiga jenis pengimbang yang menyediakan ketersediaan tinggi, autoscaling dan perlindungan yang baik. Semua ini penting untuk memastikan toleransi kesalahan aplikasi anda.

Kelebihan utama:

  • ketersediaan yang tinggi. Perjanjian perkhidmatan menganggap ketersediaan 99,99% untuk pengimbang beban. Contohnya, berbilang Zon Ketersediaan memastikan trafik diproses hanya oleh objek yang sihat. Malah, anda boleh mengimbangi beban di seluruh rantau, mengubah hala trafik ke sasaran yang sihat dalam zon ketersediaan yang berbeza;
  • keselamatan. ELB berfungsi dengan Amazon VPC, menyediakan pelbagai keupayaan keselamatan - pengurusan sijil bersepadu, pengesahan pengguna dan penyahsulitan SSL/TLS. Kesemuanya menyediakan pengurusan berpusat dan fleksibel tetapan TLS;
  • keanjalan. ELB boleh mengendalikan perubahan mendadak dalam trafik rangkaian. Dan penyepaduan mendalam dengan Auto Scaling memberikan aplikasi sumber yang mencukupi jika beban berubah, tanpa memerlukan campur tangan manual;
  • fleksibiliti. Anda boleh menggunakan alamat IP untuk menghalakan permintaan ke sasaran aplikasi anda. Ini memberikan fleksibiliti apabila memayakan aplikasi sasaran, sekali gus memberikan keupayaan untuk mengehoskan berbilang aplikasi pada satu kejadian. Memandangkan aplikasi boleh menggunakan port rangkaian tunggal dan mempunyai kumpulan keselamatan yang berasingan, komunikasi antara aplikasi dipermudahkan apabila kita mempunyai, katakan, seni bina berasaskan perkhidmatan mikro;
  • pemantauan dan audit. Anda boleh memantau aplikasi dalam masa nyata menggunakan ciri Amazon CloudWatch. Kita bercakap tentang metrik, log, penjejakan permintaan. Secara ringkas, anda akan dapat mengenal pasti masalah dan menentukan kesesakan prestasi dengan agak tepat;
  • pengimbangan beban hibrid. Keupayaan untuk memuatkan keseimbangan antara sumber di premis dan AWS menggunakan pengimbang beban yang sama memudahkan untuk memindahkan atau mengembangkan aplikasi di premis ke awan. Pengendalian kegagalan juga dipermudahkan menggunakan awan.

Jika anda berminat dengan butiran, berikut adalah beberapa pautan yang lebih berguna dari laman web rasmi Amazon:

  1. Pengimbangan Beban Anjal.
  2. Keupayaan Pengimbangan Beban Anjal.

Sumber: www.habr.com

Tambah komen