Προγραμματισμός

Διδάγματα από την πρόσφατη διακοπή του AWS S3

Το Amazon S3 υποστηρίζει πολλές υπηρεσίες AWS, συμπεριλαμβανομένων των AWS Lambda, Elastic BeanStalk και του Health Health Dashboard της Amazon. Χρησιμεύει επίσης ως αντικείμενο και κατάστημα πολυμέσων για πολλές άλλες υπηρεσίες Διαδικτύου που βασίζονται σε αυτό καθημερινά.

Στις 28 Φεβρουαρίου 2017, η AWS αντιμετώπισε μία ώρα διακοπής της υπηρεσίας Amazon S3 στην περιοχή US-EAST – 1. Αυτό δημιούργησε ένα διαδοχικό αποτέλεσμα διακοπών σε ένα καλό κομμάτι του Διαδικτύου, συμπεριλαμβανομένων υπηρεσιών όπως το Dockerhub.

Ένα ανθρώπινο σφάλμα αποδείχθηκε η βασική αιτία:

Στις 9:37 π.μ. PST, ένα εξουσιοδοτημένο μέλος της ομάδας S3 που χρησιμοποιεί ένα καθιερωμένο βιβλίο αναπαραγωγής εκτέλεσε μια εντολή που είχε ως στόχο την κατάργηση ενός μικρού αριθμού διακομιστών για ένα από τα υποσυστήματα S3 που χρησιμοποιούνται από τη διαδικασία χρέωσης S3. Δυστυχώς, μία από τις εισόδους στην εντολή δεν καταχωρήθηκε σωστά και καταργήθηκε ένα μεγαλύτερο σύνολο διακομιστών από το προβλεπόμενο.

Όπως αποδεικνύεται, υπάρχει μια κοινή παρανόηση σχετικά με τη διαφορά μεταξύ ανθεκτικότητας και διαθεσιμότητας. Η ανθεκτικότητα μετρά πόσο αξιόπιστη είναι η αποθήκευση και απαντά στην ερώτηση "Θα χάσω τα δεδομένα μου;" Η διαθεσιμότητα, από την άλλη πλευρά, μετρά πόσο προσιτά είναι τα δεδομένα, δηλαδή "Θα μπορώ να ανακτήσω τα δεδομένα μου;"

Το AWS S3 προσφέρει 99,999999999% ανθεκτικότητα σε μία μόνο περιοχή. Εάν εξετάσουμε το παράδειγμα του Amazon, αυτό σημαίνει ότι εάν αποθηκεύσετε 10.000 αντικείμενα στο S3, κατά μέσο όρο ένα αντικείμενο μπορεί να χαθεί μία φορά κάθε 10 εκατομμύρια χρόνια. Το Amazon S3 το επιτυγχάνει αυτό με την αναπαραγωγή των δεδομένων σε πολλές εγκαταστάσεις σε μια περιοχή.

Η τυπική διαθεσιμότητα αντικειμένων S3, από την άλλη πλευρά, ανέρχεται σε 99,99% ετησίως σε μια περιοχή. Αυτό σημαίνει ότι σε οποιαδήποτε δεδομένη περίοδο 12 μηνών θα πρέπει να περιμένετε συνολικά 52 λεπτά και 33 δευτερόλεπτα για να μην έχετε πρόσβαση στα δεδομένα σας.

Η AWS προσφέρει υπηρεσίες IaaS και PaaS. Σε επίπεδο IaaS, οι πελάτες AWS έχουν πλήρη έλεγχο των εικονικών διακομιστών και δικτύων. Μπορούν να διαμορφώσουν οποιοδήποτε λογισμικό και υπηρεσία επιθυμούν και το διαχειρίζονται μόνοι τους. Οποιαδήποτε διακοπή είναι ευθύνη του πελάτη.

Σε επίπεδο PaaS, το AWS προσφέρει πλήρως διαχειριζόμενες υπηρεσίες πλατφόρμας όπως αποθήκευση αντικειμένων, βάσεις δεδομένων, ουρές και ούτω καθεξής. Ο πελάτης αναθέτει την ευθύνη για τη διαθεσιμότητα και τη διάρκεια αυτών των υπηρεσιών στον διαχειριζόμενο πάροχο υπηρεσιών - AWS σε αυτήν την περίπτωση. Οι υπηρεσίες πλατφόρμας AWS που χρησιμοποιούνται μέσω του ιδιόκτητου API τους είναι ιδιαίτερα ευάλωτες σε περιφερειακή διακοπή λόγω ανθρώπινου σφάλματος στο AWS.

Ανθρώπινο σφάλμα μπορεί να προκαλέσει διακοπή οπουδήποτε - εντός του χώρου, στο cloud, διαχειριζόμενο ή αυτο-φιλοξενούμενο. Εξετάστε την πρόσφατη διακοπή λειτουργίας του υπολογιστή της Delta ως παράδειγμα ενός ολόκληρου συστήματος αυτόματης φιλοξενίας. Η ανάθεση της ευθύνης για τη διαχείριση μιας υπηρεσίας πλατφόρμας σε έναν πάροχο cloud δεν αλλάζει το γεγονός ότι το ανθρώπινο σφάλμα μπορεί να το μειώσει - αλλά ενισχύει τον αντίκτυπο. Ενώ η διακοπή του Delta επηρέασε μόνο τη Delta, μια διακοπή AWS S3 επηρέασε ένα καλό κομμάτι του Διαδικτύου.

Ευτυχώς, το AWS S3 προσφέρει άφθονα εργαλεία για τη μείωση του αντίκτυπου μιας διακοπής λειτουργίας. Ας εξετάσουμε μόνο μερικά.

Αναπαραγωγή διατομής S3

Τα δεδομένα που αποθηκεύονται σε μια συγκεκριμένη περιοχή S3 αναπαράγονται σε όλες τις ζώνες διαθεσιμότητας και μπορούν να διατηρήσουν διακοπή λειτουργίας σε οποιαδήποτε ζώνη. Δεν μπορεί, ωστόσο, να επιβιώσει σε διακοπές σε ολόκληρη την περιοχή, όπως αυτή που συνέβη στις 28 Φεβρουαρίου. Η αναπαραγωγή αντικειμένων S3 σε γεωγραφικές περιοχές συμβάλλει στην ικανοποίηση των αυξημένων απαιτήσεων απόλυσης.

Δημιουργία αντιγράφων ασφαλείας

Η αναπαραγωγή μεταξύ περιοχών μπορεί να συμβάλει στην αύξηση της διαθεσιμότητας. Τα αντίγραφα ασφαλείας στο AWS Glacier μπορούν να συμβάλουν στην αύξηση της αντοχής. Βολικά, το AWS προσφέρει έναν αυτόματο μηχανισμό δημιουργίας αντιγράφων ασφαλείας αντικειμένων στο S3 στον Glacier.

Εξετάστε τη διανομή περιεχομένου με το CloudFront

Εάν τα αντικείμενα S3 είναι συχνά προσβάσιμα, μπορεί να έχει νόημα να ρυθμίσετε το AWS CloudFront ώστε να προβάλλει αντικείμενα από το S3. Το CloudFront θα αναπαράγει τα δεδομένα όπου τα χρειάζονται περισσότερο οι χρήστες και μπορεί να βοηθήσει στην ανακούφιση των επιπτώσεων μιας διακοπής λειτουργίας S3 σε ορισμένες περιπτώσεις χρήσης.

Τελικές σκέψεις

Οι υπηρεσίες διαχειριζόμενης πλατφόρμας αποτελούν τον ακρογωνιαίο λίθο των υπηρεσιών cloud. Η χρήση ενός όπως το S3 μπορεί να μειώσει το κόστος του DevOps και να συμβάλει στην ταχύτερη εφαρμογή των εφαρμογών στην αγορά. Ενώ το AWS ήταν εξαιρετικά αξιόπιστο με την πάροδο των ετών, η Amazon έχει βιώσει αυτοπροκαταβολές στο παρελθόν. Η πρόσφατη διακοπή λειτουργίας του S3 δεν αποτελεί εξαίρεση. Κάποιος συνδυασμός αντιγραφής, δημιουργίας αντιγράφων ασφαλείας και διανομής περιεχομένου μεταξύ περιοχών αναμένεται να μειώσει τον αντίκτυπο αυτών των διακοπών.