Prácticas recomendadas para patrones de diseño: optimizar el rendimiento de Amazon S3
Sus aplicaciones pueden lograr fácilmente miles de transacciones por segundo en el rendimiento de la solicitud al cargar y recuperar almacenamiento desde Amazon S3. Amazon S3 se escala automáticamente a velocidades de solicitudes altas. Por ejemplo, la aplicación puede realizar al menos 3500 solicitudes PUT/COPY/POST/DELETE o 5500 solicitudes GET/HEAD por segundo y prefijo de Amazon S3 dividido. No existe ningún límite en cuanto al número de prefijos dentro de un bucket. Para aumentar el rendimiento de lectura o escritura, ejecute en paralelo las operaciones de lectura. Por ejemplo, si crea 10 prefijos en un bucket de Amazon S3 para ejecutar en paralelo las operaciones de lectura, podría escalar el rendimiento de lectura a 55 000 solicitudes de lectura por segundo. Del mismo modo, puede escalar las operaciones de escritura escribiendo en varios prefijos. La escalación, en el caso de las operaciones de lectura y escritura, se produce gradualmente y no es instantánea. A medida que Amazon S3 escala según la nueva tasa de solicitudes más elevada, es posible que aparezcan algunos errores 503 (ralentización). Estos errores desaparecerán cuando se complete la escalación. Para obtener más información acerca de cómo crear y utilizar prefijos, consulte Organizar objetos con prefijos.
Por ejemplo, algunas aplicaciones de lago de datos de Amazon S3 analizan millones o miles de millones de objetos para consultas que ejecutan petabytes de datos. Estas aplicaciones de lagos de datos logran velocidades de transferencia de una sola instancia que maximizan el uso de la interfaz de red para su instancia Amazon EC2, que puede alcanzar hasta 100 GB/s en una sola instancia. A continuación, estas aplicaciones agregan rendimiento en varias instancias para obtener varios terabits por segundo.
Otras aplicaciones son sensibles a la latencia, como las aplicaciones de mensajería de las redes sociales. Estas aplicaciones pueden lograr latencias para objetos pequeños coherentes (y latencias de “first-byte-out” para objetos más grandes) de unos 100-200 milisegundos aproximadamente.
Otros servicios de AWS también pueden ayudar a acelerar el rendimiento para diferentes arquitecturas de aplicaciones. Por ejemplo, si desea velocidades de transferencia mayores a través de una conexión HTTP única o latencias de milisegundos de un solo dígito, use Amazon CloudFront o Amazon ElastiCache para el almacenamiento en caché con Amazon S3.
De forma adicional, si desea transportar rápidamente los datos a largas distancias entre un cliente y un bucket de S3, use Configuración de transferencias de archivos rápidas y seguras con Amazon S3 Transfer Acceleration. Transfer Acceleration usa las ubicaciones de borde distribuidas globalmente en CloudFront para acelerar el transporte de los datos a través de grandes distancias geográficas. Si la carga de trabajo de Amazon S3 utiliza el cifrado del lado del servidor con AWS KMS, consulte Límites de AWS KMS en la Guía para desarrolladores de AWS Key Management Service para obtener información acerca de las tasas de solicitud admitidas para su caso de uso.
En los siguientes temas se describen las directrices y patrones de diseño recomendados a fin de optimizar el rendimiento para las aplicaciones que usan Amazon S3. Consulte Directrices de rendimiento para Amazon S3 y Patrones de diseño de rendimiento para Amazon S3 para obtener la información más reciente sobre la optimización del rendimiento de Amazon S3.
nota
Para obtener más información sobre el uso de la clase de almacenamiento Amazon S3 Express One Zone con buckets de directorio, consulte Buckets de directorio y S3 Express One Zone y Descripción general de los buckets de directorio.