Εξισορρόπηση φορτίου με AWS ELB

Γεια σε όλους! Το μάθημα ξεκινά σήμερα "AWS για προγραμματιστές", σε σχέση με το οποίο πραγματοποιήσαμε αντίστοιχο θεματικό διαδικτυακό σεμινάριο αφιερωμένο στην κριτική του ELB. Εξετάσαμε τους τύπους εξισορροπητών και δημιουργήσαμε πολλές περιπτώσεις EC2 με έναν εξισορροπητή. Μελετήσαμε και άλλα παραδείγματα χρήσης.

Εξισορρόπηση φορτίου με AWS ELB

Μετά την ακρόαση του διαδικτυακού σεμιναρίου, Εσύ θα:

  • Κατανοήστε τι είναι το AWS Load Balancing.
  • γνωρίζουν τους τύπους του Elastic Load Balancer και τα εξαρτήματά του.
  • χρησιμοποιήστε το AWS ELB στην πρακτική σας.

Γιατί πρέπει να το ξέρετε καθόλου;

  • χρήσιμο εάν σχεδιάζετε να λάβετε μέρος σε εξετάσεις πιστοποίησης AWS.
  • Αυτός είναι ένας απλός τρόπος κατανομής του φορτίου μεταξύ διακομιστών.
  • Αυτός είναι ένας απλός τρόπος για να προσθέσετε το Lambda στην υπηρεσία σας (ALB).

Διεξήγαγε ανοιχτό μάθημα Rishat Teregulov, μηχανικός συστημάτων σε εταιρεία μάρκετινγκ για ανάπτυξη και υποστήριξη ιστοσελίδων.

Εισαγωγή

Το τι είναι ένα Elastic Load Balancer φαίνεται στο παρακάτω διάγραμμα, το οποίο δείχνει ένα απλό παράδειγμα:

Εξισορρόπηση φορτίου με AWS ELB

Το Load Balancer δέχεται αιτήματα και τα διανέμει σε διάφορες περιπτώσεις. Έχουμε ένα ξεχωριστό παράδειγμα, υπάρχουν συναρτήσεις Lambda και υπάρχει μια ομάδα AutoScaling (μια ομάδα διακομιστών).

Τύποι AWS ELB

1. Ας δούμε τους κύριους τύπους:

Κλασικό Load Balancer. Το πρώτο πρόγραμμα εξισορρόπησης φορτίου από το AWS, λειτουργεί τόσο στο επίπεδο 4 όσο και στο επίπεδο 7 του OSI, υποστηρίζοντας HTTP, HTTPS, TCP και SSL. Παρέχει βασική εξισορρόπηση φορτίου σε πολλές περιπτώσεις Amazon EC2 και λειτουργεί τόσο σε επίπεδο αιτήματος όσο και σε επίπεδο σύνδεσης. Ας το ανοίξουμε (επισημαίνεται με γκρι):

Εξισορρόπηση φορτίου με AWS ELB

Αυτός ο εξισορροπητής θεωρείται ξεπερασμένος, επομένως συνιστάται η χρήση του μόνο σε ορισμένες περιπτώσεις. Για παράδειγμα, για εφαρμογές που δημιουργήθηκαν στο δίκτυο EC2‑Classic. Καταρχήν, κανείς δεν μας εμποδίζει να το δημιουργήσουμε:

Εξισορρόπηση φορτίου με AWS ELB

2. Network Load Balancer. Κατάλληλο για μεγάλο φόρτο εργασίας, λειτουργεί στο OSI Layer 4 (μπορεί να χρησιμοποιηθεί σε EKS και ECS), υποστηρίζονται TCP, UDP και TLS.

Το Network Load Balancer δρομολογεί την κυκλοφορία σε στόχους σε ένα Amazon VPC και είναι σε θέση να επεξεργαστεί εκατομμύρια αιτήματα ανά δευτερόλεπτο με εξαιρετικά χαμηλό λανθάνοντα χρόνο. Επιπλέον, είναι βελτιστοποιημένο για να χειρίζεται μοτίβα κυκλοφορίας με ξαφνικά και μεταβαλλόμενα φορτία.

3. Εφαρμογή Load Balancer. Λειτουργεί στο επίπεδο 7, έχει υποστήριξη Lambda, υποστηρίζει κανόνες επιπέδου κεφαλίδας και διαδρομής, υποστηρίζει HTTP και HTTPS.
Παρέχει προηγμένη δρομολόγηση αιτημάτων που επικεντρώνεται στην παροχή εφαρμογών που βασίζονται σε σύγχρονες αρχιτεκτονικές, συμπεριλαμβανομένων μικροϋπηρεσιών και κοντέινερ. Κατευθύνει την επισκεψιμότητα σε στόχους στο Amazon VPC με βάση το περιεχόμενο του αιτήματος.

Για πολλούς χρήστες, το Application Load Balancer ήταν η πρώτη επιλογή για την αντικατάσταση του Classic Load Balancer, επειδή το TCP δεν είναι τόσο κοινό όσο το HTTP.

Ας το δημιουργήσουμε κι εμείς, με αποτέλεσμα να έχουμε ήδη δύο load balancers:

Εξισορρόπηση φορτίου με AWS ELB

Στοιχεία ισορροπίας φορτίου

Κοινά στοιχεία ισορροπίας φορτίου (κοινό για όλους τους εξισορροπητές):

  • Πολιτική καταγραφής πρόσβασης

— τα αρχεία καταγραφής πρόσβασης ELB. Για να κάνετε ρυθμίσεις, μπορείτε να μεταβείτε στην Περιγραφή και να επιλέξετε το κουμπί "Επεξεργασία χαρακτηριστικών":

Εξισορρόπηση φορτίου με AWS ELB

Στη συνέχεια καθορίζουμε S3Bucket - αποθήκευση αντικειμένων Amazon:

Εξισορρόπηση φορτίου με AWS ELB

  • Σχέδιο

— εσωτερικός ή εξωτερικός εξισορροπητής. Το θέμα είναι αν το LoadBalancer πρέπει να λαμβάνει εξωτερικές διευθύνσεις για να είναι προσβάσιμο από έξω ή μπορεί να είναι το εσωτερικό σας εξισορροπητή φορτίου.

  • Ομάδες ασφαλείας

— έλεγχος πρόσβασης στον εξισορροπητή. Ουσιαστικά πρόκειται για ένα τείχος προστασίας υψηλού επιπέδου.

Εξισορρόπηση φορτίου με AWS ELB

Εξισορρόπηση φορτίου με AWS ELB

  • Υποδίκτυα

— υποδίκτυα μέσα στο VPC σας (και, κατά συνέπεια, στη ζώνη διαθεσιμότητας). Τα υποδίκτυα καθορίζονται κατά τη δημιουργία. Εάν τα VPC περιορίζονται ανά περιοχή, τότε τα υποδίκτυα περιορίζονται από ζώνες διαθεσιμότητας. Όταν δημιουργείτε ένα Load Balancer, είναι καλύτερο να το δημιουργήσετε σε τουλάχιστον δύο υποδίκτυα (βοηθά αν προκύψουν προβλήματα με μία Ζώνη Διαθεσιμότητας).

  • Ακρόαση

— τα πρωτόκολλα εξισορροπητή σας. Όπως αναφέρθηκε προηγουμένως, για το Classic Load Balancer μπορεί να είναι HTTP, HTTPS, TCP και SSL, για Network Load Balancer - TCP, UDP και TLS, για Application Load Balancer - HTTP και HTTPS.

Παράδειγμα για το Classic Load Balancer:

Εξισορρόπηση φορτίου με AWS ELB

Αλλά στο Application Load Balancer βλέπουμε μια ελαφρώς διαφορετική διεπαφή και γενικά διαφορετική λογική:

Εξισορρόπηση φορτίου με AWS ELB

Στοιχεία Load Balancer v2 (ALB και NLB)

Τώρα ας ρίξουμε μια πιο προσεκτική ματιά στους εξισορροπητές έκδοσης 2 Application Load Balancer και Network Load Balancer. Αυτοί οι εξισορροπητές έχουν τα δικά τους χαρακτηριστικά εξαρτημάτων. Για παράδειγμα, εμφανίστηκε μια τέτοια έννοια όπως Ομάδες Στόχων - περιπτώσεις (και συναρτήσεις). Χάρη σε αυτό το στοιχείο, έχουμε την ευκαιρία να καθορίσουμε σε ποια από τις ομάδες-στόχους θέλουμε να κατευθύνουμε την επισκεψιμότητα.

Εξισορρόπηση φορτίου με AWS ELB

Εξισορρόπηση φορτίου με AWS ELB

Με απλά λόγια, στις Target Groups καθορίζουμε τις περιπτώσεις όπου θα έρθει η επισκεψιμότητα. Αν στο ίδιο Classic Load Balancer απλά συνδέσετε αμέσως την ένταση με τον εξισορροπητή, τότε στο Application Load Balancer πρώτα:

  • Δημιουργήστε ένα Load Balancer.
  • Δημιουργία ομάδας στόχου.
  • απευθείας μέσω των απαιτούμενων θυρών ή κανόνων Load Balancer στις απαιτούμενες ομάδες-στόχους.
  • στις ομάδες στόχου εκχωρείτε παρουσίες.

Αυτή η λογική λειτουργίας μπορεί να φαίνεται πιο περίπλοκη, αλλά στην πραγματικότητα είναι πιο βολική.

Το επόμενο συστατικό είναι Κανόνες ακροατών (κανόνες δρομολόγησης). Αυτό ισχύει μόνο για το Application Load Balancer. Εάν στο Network Load Balancer δημιουργείτε απλώς ένα Liner και στέλνει κίνηση σε μια συγκεκριμένη ομάδα Target, τότε στο Application Load Balancer τα πάντα πιο διασκεδαστικό και βολικό.

Εξισορρόπηση φορτίου με AWS ELB

Τώρα ας πούμε λίγα λόγια για το επόμενο στοιχείο - Ελαστική IP (στατικές διευθύνσεις για NLB). Εάν οι κανόνες δρομολόγησης κανόνων ακρόασης επηρέαζαν μόνο το Application Load Balancer, τότε το Elastic IP επηρέαζε μόνο το Network Load Balancer.

Ας δημιουργήσουμε ένα Network Load Balancer:

Εξισορρόπηση φορτίου με AWS ELB

Εξισορρόπηση φορτίου με AWS ELB

Και ακριβώς κατά τη διαδικασία δημιουργίας θα δούμε ότι μας δίνεται η ευκαιρία να επιλέξουμε Elastic IP:

Εξισορρόπηση φορτίου με AWS ELB

Το Elastic IP παρέχει μια ενιαία διεύθυνση IP που μπορεί να συσχετιστεί με διαφορετικές παρουσίες EC2 με την πάροδο του χρόνου. Εάν μια παρουσία EC2 έχει μια Elastic διεύθυνση IP και αυτή η παρουσία έχει τερματιστεί ή διακοπεί, μπορείτε να συσχετίσετε αμέσως μια νέα παρουσία EC2 με μια Elastic διεύθυνση IP. Ωστόσο, η τρέχουσα εφαρμογή σας δεν θα σταματήσει να λειτουργεί, καθώς οι εφαρμογές εξακολουθούν να βλέπουν την ίδια διεύθυνση IP, ακόμα κι αν έχει αλλάξει η πραγματική EC2.

Εδώ άλλη περίπτωση χρήσης σχετικά με το θέμα γιατί χρειάζεται Elastic IP. Κοιτάξτε, βλέπουμε 3 διευθύνσεις IP, αλλά δεν θα μείνουν εδώ για πάντα:

Εξισορρόπηση φορτίου με AWS ELB

Η Amazon τα αλλάζει με την πάροδο του χρόνου, ίσως κάθε 60 δευτερόλεπτα (αλλά στην πράξη, φυσικά, λιγότερο συχνά). Αυτό σημαίνει ότι οι διευθύνσεις IP μπορούν να αλλάξουν. Και στην περίπτωση του Network Load Balancer, μπορείτε απλώς να δεσμεύσετε μια διεύθυνση IP και να την υποδείξετε στους κανόνες, τις πολιτικές σας κ.λπ.

Εξισορρόπηση φορτίου με AWS ELB

Συγκεντρώστε συμπεράσματα

Το ELB παρέχει αυτόματη διανομή της εισερχόμενης κίνησης σε πολλούς στόχους (κοντέινερ, παρουσίες Amazon EC2, διευθύνσεις IP και λειτουργίες Lambda). Η ELB είναι σε θέση να διανέμει κίνηση με ποικίλα φορτία τόσο σε μία μόνο Ζώνη Διαθεσιμότητας όσο και σε πολλαπλές Ζώνες Διαθεσιμότητας. Ο χρήστης μπορεί να επιλέξει από τρεις τύπους εξισορροπητών που παρέχουν υψηλή διαθεσιμότητα, αυτόματη κλιμάκωση και καλή προστασία. Όλα αυτά είναι σημαντικά για τη διασφάλιση της ανοχής σφαλμάτων των εφαρμογών σας.

Κύρια πλεονεκτήματα:

  • μεγάλη διαθεσιμότητα. Η συμφωνία παροχής υπηρεσιών προϋποθέτει διαθεσιμότητα 99,99% για τον εξισορροπητή φορτίου. Για παράδειγμα, οι πολλαπλές ζώνες διαθεσιμότητας διασφαλίζουν ότι η κίνηση επεξεργάζεται μόνο από υγιή αντικείμενα. Στην πραγματικότητα, μπορείτε να εξισορροπήσετε το φορτίο σε ολόκληρη την περιοχή, ανακατευθύνοντας την κυκλοφορία σε υγιείς στόχους σε διαφορετικές ζώνες διαθεσιμότητας.
  • ασφάλεια. Το ELB συνεργάζεται με το Amazon VPC, παρέχοντας διάφορες δυνατότητες ασφαλείας - ενσωματωμένη διαχείριση πιστοποιητικών, έλεγχος ταυτότητας χρήστη και αποκρυπτογράφηση SSL/TLS. Όλα μαζί παρέχουν κεντρική και ευέλικτη διαχείριση των ρυθμίσεων TLS.
  • ελαστικότητα. Το ELB μπορεί να χειριστεί ξαφνικές αλλαγές στην κίνηση του δικτύου. Και η βαθιά ενοποίηση με την Αυτόματη Κλιμάκωση παρέχει στην εφαρμογή αρκετούς πόρους εάν αλλάξει το φορτίο, χωρίς να απαιτείται χειροκίνητη παρέμβαση.
  • ευελιξία. Μπορείτε να χρησιμοποιήσετε διευθύνσεις IP για να δρομολογήσετε αιτήματα στους στόχους των εφαρμογών σας. Αυτό παρέχει ευελιξία κατά την εικονικοποίηση εφαρμογών-στόχων, δίνοντας έτσι τη δυνατότητα φιλοξενίας πολλαπλών εφαρμογών σε μία μόνο παρουσία. Δεδομένου ότι οι εφαρμογές μπορούν να χρησιμοποιούν μια ενιαία θύρα δικτύου και έχουν ξεχωριστές ομάδες ασφαλείας, η επικοινωνία μεταξύ των εφαρμογών απλοποιείται όταν έχουμε, ας πούμε, μια αρχιτεκτονική που βασίζεται σε μικροϋπηρεσίες.
  • παρακολούθηση και έλεγχος. Μπορείτε να παρακολουθείτε εφαρμογές σε πραγματικό χρόνο χρησιμοποιώντας τις δυνατότητες του Amazon CloudWatch. Μιλάμε για μετρήσεις, αρχεία καταγραφής, παρακολούθηση αιτημάτων. Με απλά λόγια, θα είστε σε θέση να εντοπίσετε προβλήματα και να εντοπίσετε με ακρίβεια τα σημεία συμφόρησης στην απόδοση.
  • υβριδική εξισορρόπηση φορτίου. Η δυνατότητα φόρτωσης ισορροπίας μεταξύ πόρων εσωτερικής εγκατάστασης και AWS με χρήση του ίδιου εξισορροπητή φορτίου διευκολύνει τη μετεγκατάσταση ή την επέκταση εφαρμογών εσωτερικής εγκατάστασης στο cloud. Ο χειρισμός των αποτυχιών απλοποιείται επίσης χρησιμοποιώντας το cloud.

Εάν ενδιαφέρεστε για λεπτομέρειες, εδώ είναι μερικοί ακόμη χρήσιμοι σύνδεσμοι από τον επίσημο ιστότοπο της Amazon:

  1. Ελαστική εξισορρόπηση φορτίου.
  2. Δυνατότητες Elastic Load Balancing.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο