Enseignements tirés de la récente panne d'AWS S3

Amazon S3 sous-tend de nombreux services AWS, notamment AWS Lambda, Elastic BeanStalk et le propre tableau de bord Service Health d'Amazon. Il sert également de magasin d'objets et de médias pour de nombreux autres services Internet qui en dépendent chaque jour.

Le 28 février 2017, AWS a connu une interruption de plusieurs heures du service Amazon S3 dans la région US-EAST-1. Cela a créé un effet en cascade des pannes sur une bonne partie d'Internet, y compris des services comme Dockerhub.

Une erreur humaine s'est avérée être la cause première:

À 9 h 37 PST, un membre autorisé de l'équipe S3 utilisant un playbook établi a exécuté une commande destinée à supprimer un petit nombre de serveurs pour l'un des sous-systèmes S3 utilisés par le processus de facturation S3. Malheureusement, l'une des entrées de la commande n'a pas été saisie correctement et un plus grand nombre de serveurs a été supprimé que prévu.

En fait, il existe une idée fausse commune sur la différence entre la durabilité et la disponibilité. La durabilité mesure la fiabilité du stockage et répond à la question «Vais-je perdre mes données?» La disponibilité, quant à elle, mesure le degré d’accessibilité des données, c’est-à-dire «Vais-je pouvoir récupérer mes données?»

AWS S3 offre une durabilité de 99,999999999% dans une seule région. Si nous examinons l'exemple d'Amazon, cela signifie que si vous stockez 10000 objets dans S3, en moyenne un seul objet peut être perdu une fois tous les 10 millions d'années. Amazon S3 accomplit cela en répliquant les données sur plusieurs installations au sein d'une région.

En revanche, la disponibilité des objets S3 standard est de 99,99% par an dans une région. Cela signifie que sur une période de 12 mois donnée, vous devez vous attendre à un total de 52 minutes et 33 secondes de ne pas pouvoir accéder à vos données.

AWS propose des services IaaS et PaaS. Au niveau IaaS, les clients AWS ont un contrôle total sur les serveurs et réseaux virtuels. Ils peuvent configurer tous les logiciels et services de leur choix et les gérer eux-mêmes. Toute panne est à la charge du client.

Au niveau PaaS, AWS propose des services de plateforme entièrement gérés tels que le stockage d'objets, les bases de données, les files d'attente, etc. Le client délègue la responsabilité de la disponibilité et de la durabilité de ces services au fournisseur de services gérés - AWS dans ce cas. Les services de la plateforme AWS qui sont utilisés via leur API propriétaire sont particulièrement vulnérables à une panne régionale en raison d'une erreur humaine chez AWS.

Une erreur humaine peut provoquer une panne n'importe où - sur site, dans le cloud, géré ou auto-hébergé. Considérez la récente panne informatique de Delta comme un exemple de panne de tout un système auto-hébergé. Déléguer la responsabilité de la gestion d'un service de plate-forme à un fournisseur de cloud ne change pas le fait que l'erreur humaine peut le réduire, mais cela amplifie l'impact. Alors que la panne de Delta n'a touché que Delta, une panne d'AWS S3 a affecté une bonne partie d'Internet.

Heureusement, AWS S3 propose de nombreux outils pour réduire l'impact d'une panne. Examinons juste quelques-uns.

Réplication interrégionale S3

Les données stockées dans une région S3 particulière sont répliquées dans toutes les zones de disponibilité et peuvent supporter une panne dans n'importe quelle zone. Il ne peut cependant pas survivre à une panne dans toute une région, comme celle du 28 février. La réplication d'objets S3 dans des régions géographiques permet de répondre aux exigences de redondance accrues.

Sauvegardes

La réplication interrégionale peut aider à augmenter la disponibilité. Les sauvegardes sur AWS Glacier peuvent contribuer à une durabilité accrue. De manière pratique, AWS propose un mécanisme automatique de sauvegarde des objets dans S3 vers Glacier.

Envisagez la distribution de contenu avec CloudFront

Si vos objets S3 sont fréquemment consultés, il peut être judicieux de configurer AWS CloudFront pour servir des objets depuis S3. CloudFront répliquera les données là où les utilisateurs en ont le plus besoin et peut aider à atténuer les effets d'une panne S3 dans certains cas d'utilisation.

Dernières pensées

Les services de plateforme gérée sont la pierre angulaire des services cloud. L'utilisation d'un logiciel tel que S3 peut réduire les coûts DevOps et aider à commercialiser plus rapidement les applications. Bien qu'AWS ait été extrêmement fiable au fil des ans, Amazon a connu des pannes auto-infligées dans le passé. La récente panne de S3 ne fait pas exception. Une combinaison de réplication interrégionale, de sauvegardes et de distribution de contenu devrait réduire l'impact de ces pannes.