Cambio a la CLI oficial de S3 para exportar mejor los archivos
Desde que comenzamos en 2009, Amazon S3 ha sido nuestra principal forma de exportar archivos. En ese momento, la mejor herramienta de CLI de Amazon que pudimos encontrar era la utilidad aws de Tim Kay. Era un kit de herramientas con pocas dependencias y funcionalidad completa, capaz de encargarse de gran parte de nuestro trabajo pesado con AWS.
Su herramienta nos ha servido bien durante 5 años y con ella hemos exportado cerca de un petabyte de archivos. Pero a medida que Amazon evoluciona, los requisitos cambian. Por ejemplo, los centros de datos de Amazon en Fráncfort y China no admiten la versión 2 de la firma. Aunque Tim Kay ha hecho un gran trabajo para mantenerse al día con cambios como estos, no podemos esperar que publique actualizaciones en cuanto Amazon hace un anuncio, ya que es un proyecto que mantiene de forma gratuita en su tiempo libre. Además, como Amazon ahora ofrece una herramienta de CLI oficial, decidimos hacer el cambio la semana pasada.
Tenemos muchas pruebas para evitar cambios que rompan la compatibilidad cuando hacemos este tipo de cirugías a corazón abierto. Por desgracia, algunos casos de uso no estaban cubiertos y cambiar nuestro motor de S3 resultó en un camino algo accidentado.
Si, por ejemplo, tenías buckets fuera de EE. UU. y no especificabas explícitamente una región,
teníamos que ejecutar una solicitud GetBucketLocation sobre el bucket y reintentar la exportación (o
importación) por nuestra cuenta. Hasta ahí, todo bien. Sin embargo, si habías configurado un usuario
de IAM dedicado a Transloadit que solo puede hacer Puts y Lists (como recomendamos), no teníamos
ese permiso ni las redirecciones regionales, y por lo tanto fallaba la exportación completa.
Tenemos una solución alternativa poco eficiente en producción para evitar estos fallos, pero también
actualizamos nuestra documentación para reflejar que necesitamos el permiso GetBucketLocation.
Te recomendamos otorgar este permiso a tu usuario de IAM de Transloadit.
Nuestros clientes también reportaron algunos otros problemas derivados de cambios sutiles entre las herramientas subyacentes y de lo que creemos que es un error de utf-8 en la nueva herramienta.
Actualización del 7 de febrero de 2015 Se ha confirmado el error. Como solución alternativa,
ahora escapamos los caracteres no ASCII a secuencias de escape Unicode, de modo que Renan Gonçalves se leerá: Renan Gon\u00E7alves.
Probablemente querrás revertir ese escape en tu lado.
Aunque más del 99 % de nuestras exportaciones siguió funcionando durante todo esto, lamentamos mucho no haber escrito más pruebas que cubrieran más casos especiales.
De cara al futuro
Ya tenemos en producción correcciones y soluciones alternativas para todos estos problemas. También escribimos las pruebas de sistema que cubren las redirecciones regionales y otros casos especiales para evitar regresiones con futuras actualizaciones o cambios en nuestro stack.
Además, hemos pausado el límite de 24 h de nuestro almacenamiento temporal, para que las Assemblies afectadas todavía se puedan reejecutar más allá de ese plazo. Para dar a los clientes afectados algo de tiempo para resolver esto, volveremos a activar el borrado automático en 7 días.
A los clientes que se vieron muy afectados les hemos concedido un descuento importante en la factura de este mes. Ya deberíamos haberte contactado, pero si no lo hicimos, no dudes en decírnoslo.
Pedimos disculpas por las molestias causadas, pero tenemos muchas ganas de ejecutar las herramientas oficiales de S3 en producción. Esperamos contar con una ruta de actualización segura hacia las nuevas funciones y centros de datos de S3 de aquí en adelante.
