Passage au CLI S3 officiel pour mieux exporter les fichiers
Depuis nos débuts en 2009, Amazon S3 est notre principal moyen d’exporter des fichiers. À l’époque, le meilleur outil CLI pour Amazon que nous avions trouvé était l’utilitaire aws de Tim Kay. C’était une boîte à outils complète et peu dépendante, qui assurait une grande partie du gros travail sur AWS.
Son outil nous a bien servi pendant 5 ans, et nous avons exporté près d’un pétaoctet de fichiers avec. Mais Amazon évolue, et les exigences changent. Par exemple, les centres de données d’Amazon à Francfort et en Chine ne prennent pas en charge la version 2 de la signature. Tim Kay a fait un excellent travail pour suivre ce type de changements, mais nous ne pouvons pas attendre de lui qu’il publie des mises à jour dès qu’Amazon fait une annonce, puisqu’il mène ce projet gratuitement sur son temps libre. De plus, comme Amazon propose désormais un outil CLI officiel, nous avons décidé de faire la transition la semaine dernière.
Nous disposons de nombreux tests pour éviter les changements incompatibles lors de ce genre d’opérations à cœur ouvert. Malheureusement, certains cas d’usage n’étaient pas couverts, et le changement de notre moteur S3 a quelque peu secoué les choses.
Par exemple, si vous aviez des buckets hors des États-Unis sans avoir explicitement indiqué de région,
nous devions exécuter une requête GetBucketLocation sur le bucket et relancer nous-mêmes l’exportation (ou
l’importation). Jusque-là, tout allait bien. En revanche, si vous aviez configuré un utilisateur IAM
dédié à Transloadit qui ne peut effectuer que des Puts et des Lists (comme nous le recommandons),
nous ne disposions ni de cette autorisation ni des redirections régionales, si bien que l’exportation
entière échouait.
Nous avons mis en production une solution de contournement peu efficace pour éviter ces échecs, et
nous avons aussi mis à jour notre documentation (English) pour indiquer que nous avons besoin de
l’autorisation GetBucketLocation. Nous vous recommandons d’accorder cette autorisation à votre utilisateur
IAM Transloadit.
Nos clients ont également signalé quelques autres problèmes, dus à des changements subtils entre les outils sous-jacents et – selon nous – à un bug utf-8 dans le nouvel outil.
Mise à jour du 7 février 2015 Le bug a été confirmé. Pour le contourner, nous échappons
désormais les caractères non ASCII en séquences d’échappement Unicode, de sorte que Renan Gonçalves
s’affichera ainsi : Renan Gon\u00E7alves. Vous voudrez probablement les déséchapper de votre côté.
Même si plus de 99 % de nos exportations ont continué à fonctionner pendant cette période, nous sommes sincèrement désolés d’avoir négligé d’écrire davantage de tests couvrant plus de cas particuliers.
Pour la suite
Nous avons désormais en production des correctifs et des solutions de contournement pour tous ces problèmes. Nous avons aussi écrit les tests système couvrant les redirections régionales et d’autres cas particuliers, afin d’éviter toute régression lors des futures mises à niveau ou modifications de notre stack.
Par ailleurs, nous avons suspendu la limite de 24 h de notre stockage temporaire, afin que les Assemblies concernées puissent encore être relancées au-delà de ce délai. Pour laisser aux clients concernés le temps de s’en occuper, nous réactiverons la suppression automatique dans 7 jours.
Les clients fortement touchés ont bénéficié d’une remise conséquente sur la facture de ce mois-ci. Nous devrions déjà avoir pris contact avec vous, mais n’hésitez pas à nous le signaler si ce n’est pas le cas.
Nous nous excusons pour la gêne occasionnée, mais nous sommes impatients d’utiliser les outils S3 officiels en production. Nous espérons ainsi disposer d’une voie de mise à niveau sûre vers les nouvelles fonctionnalités et les nouveaux centres de données S3 à l’avenir.
