Chez Brightcove, nous utilisons Amazon S3 dans le cadre de nos solutions de diffusion, d'édition et de gestion des lecteurs vidéo, et ce à juste titre puisqu'il s'agit d'un leader dans ce domaine et qu'il offre d'excellentes performances. Cependant, de grandes performances ne sont pas synonymes d'infaillibilité. Nous avons consacré beaucoup de temps et d'efforts à renforcer nos services pour qu'ils puissent résister à une panne en prévision d'un tel événement, et nos efforts ont porté leurs fruits.
INCIDENT DE SERVICE AMAZON S3
Le jeudi 14 septembre 2017, pendant une brève période vers 13h37 EDT puis pendant environ une heure à partir de 14h40 EDT, le service Amazon S3 a commencé à étrangler de manière injustifiée les requêtes dans la région Est des États-Unis. En conséquence, il rejetait un grand nombre de demandes parfaitement valables d'obtention et d'envoi de fichiers.
De nombreux clients S3 ont été touchés, y compris certains des sites Web les plus visités sur Internet qui s'appuient sur cette infrastructure en nuage très fiable. Bien que Brightcove ait connu une augmentation des taux d'erreur pour certains contenus vidéo en cache froid, nous sommes heureux d'annoncer que les chargements de lecteurs, qu'ils soient en cache ou non, n'ont pas été affectés. Ce qui aurait pu être un événement beaucoup plus important a été très bien maîtrisé.
Voici quelques informations sur l'incident, telles que rapportées par The Register. Les informations partagées par Amazon au cours de l'incident étaient les suivantes (heures ajustées à l'heure d'été) :
- 2:58 PM EDT. Nous enquêtons sur l'augmentation des taux d'erreur pour les requêtes Amazon S3 dans la région US-EAST-1.
- 3:20 PM EDT. Nous pouvons confirmer que certains clients reçoivent des erreurs d'étranglement lors de l'accès à S3. Nous enquêtons actuellement sur la cause de ce problème.
- 3:38 PM EDT. Nous continuons à travailler à la résolution des erreurs d'étranglement accrues pour les requêtes Amazon S3 dans la région US-EAST-1. Nous avons identifié le sous-système responsable des erreurs, identifié la cause première et travaillons actuellement à la résolution du problème.
- 3:49 PM EDT. Nous constatons maintenant une reprise des taux d'erreurs d'étranglement lors de l'accès à Amazon S3. Nous avons identifié la cause première et avons pris des mesures pour éviter que le problème ne se reproduise.
- 4:05 PM EDT. Entre 14h40 et 15h56 EDT, nous avons rencontré des erreurs d'étranglement lors de l'accès à Amazon S3 dans la région US-EAST-1. Le problème est résolu et le service fonctionne normalement.
À 13 h 37, bien avant l'accusé de réception d'Amazon, les premières erreurs ont déclenché nos alertes. Plutôt que de nous dire qu'il y avait un problème avec nos services, les alertes nous ont indiqué que des mesures correctives avaient été automatiquement mises en place.
Pendant toute la durée de cet incident, qui s'est produit à des heures de pointe pour Brightcove, nous avons répondu à plus de 28 millions de demandes pour le lecteur Brightcove sans aucun problème. Ces demandes concernaient des lecteurs déjà actifs ainsi que 79 lecteurs publiés au cours de l'incident.
TACTIQUES DE BASCULEMENT DES JOUEURS
Voici un aperçu de notre configuration S3.
Bien que nous utilisions S3 dans la région Est des États-Unis (où l'incident s'est produit), nous avons mis en œuvre des options de réplication bidirectionnelle entre régions fournies par Amazon.
Nous avons également créé notre propre projet Node.js open source, appelé s3-s3, qui gère le basculement automatique vers différents buckets S3 en fonction des besoins. Cela signifie que dans des conditions de fonctionnement normales, chaque fichier que nous téléchargeons vers U.S. East est également envoyé vers notre région de basculement.
Chaque fois que les services de gestion et de publication des lecteurs interagissent avec S3, ils sont prêts à affronter le pire. En cas d'erreur, nous réessayons automatiquement et si les réessais échouent, nous basculons automatiquement vers une autre région.
Nous gérons le basculement au niveau de chaque demande. Les demandes commencent toujours par la région principale et retombent sur la région de basculement si nécessaire. Aucune intervention manuelle n'est nécessaire pour basculer d'un système à l'autre.
Grâce à notre réplication bidirectionnelle, tous les fichiers qui doivent être transférés vers la région de basculement seront automatiquement répliqués vers U.S. East lorsqu'elle sera à nouveau en bonne santé.
Le graphique ci-dessous montre notre basculement automatique en action. Les services ont continué à utiliser notre bucket S3 primaire aussi souvent que possible, mais ont fini par échouer assez souvent dans le processus. L'alternative : Toutes les requêtes à droite auraient échoué, ce qui aurait causé des problèmes à nos clients.

Si vous n'étiez pas du tout au courant des problèmes d'Amazon, c'est comme ça que nous l'aimons.