View a markdown version of this page

Introducción - Prácticas recomendadas para patrones de diseño: optimización del rendimiento de Amazon S3

Introducción

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 conseguir al menos 3500 solicitudes PUT/COPY/POST/DELETE y 5500 GET/HEAD por segundo y prefijo en un bucket. No existe ningún límite en cuanto al número de prefijos dentro de un bucket. Puede aumentar el rendimiento de lectura o escritura ejecutando 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.

Por ejemplo, algunas aplicaciones de lago de datos de Amazon S3 analizan muchos 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 de 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 otras 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 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 Key Management Service (SSE-KMS), consulte Límites de AWS KMS en la Guía para desarrolladores de AWS Key Management Service para obtener más información acerca de las velocidades 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.

Estas instrucciones sustituyen a cualquier instrucción anterior acerca de la optimización del rendimiento de Amazon S3. Por ejemplo, anteriormente, en las instrucciones de rendimiento de Amazon S3, se recomendaba utilizar nombres de prefijos aleatorios con caracteres de almohadilla para optimizar el rendimiento de las recuperaciones de datos frecuentes. Ya no tiene que utilizar nombres de prefijo aleatorios para obtener un buen rendimiento; puede usar nombres secuenciales basados en fecha para los prefijos. Consulte las directrices de rendimiento y los patrones de diseño de rendimiento para acceder a la información más actualizada sobre la optimización del rendimiento para Amazon S3.