Nuestros mejores programadores agotaron sus provisiones de café, en su búsqueda noche y día por la solución, hasta que Ana halló la solución en Bitbucket así que hoy la compartimos aquí.
Solución:
Te falta el “/GB” parte de esa declaración. La línea de base es 3 IOPS por GB. Si su volumen de EBS es de 100 GB, entonces tendría una línea base de 300 IOPS. Para un volumen GP2 EBS, debe multiplicar el tamaño del volumen por 3 para obtener el IOPS.
Tenga en cuenta que cualquier volumen de GP2 por debajo de 1 TB también puede explotar hasta 3000 IOPS, por lo que cualquier aumento limitado en IO aún debería funcionar muy bien.
Además, agregaré que S3 suena mejor para su caso de uso. Si ve velocidades de carga lentas en S3, ese es un problema que se puede resolver. Puede usar CloudFront para proporcionar una ubicación de borde cercana a la que pueda cargar.
En mi experiencia, las cargas a S3 nunca son más lentas que las cargas a una instancia EC2 a la que se adjuntaría su volumen de EBS.
Actualizar:
Para responder a su pregunta adicional, el mínimo de IOPS necesario dependerá de muchas variables, como la cantidad de RAM disponible, el tipo de aplicación que está ejecutando, qué tan bien la aplicación almacena valores en la memoria, el tamaño promedio de sus operaciones de IO, etc. Es realmente difícil precisar un número exacto y afirmar que necesita exactamente X IOPS para una aplicación.
También debe recordar que cualquier volumen de menos de 1 TB puede alcanzar hasta 3000 IOPS durante varios segundos. Por lo tanto, incluso si su aplicación necesita un alto IOPS cuando está en uso, si no ve mucho uso, la función de ráfaga de IOPS podría ser todo lo que necesita.
En general, suelo empezar con algo así como un volumen de 100 GB con 300 IOPS y pruebo el rendimiento de mi aplicación con eso. Un servidor web que opera completamente dentro de la memoria RAM nunca necesitará más que eso. Para algo como una base de datos, probablemente comenzaría con la cantidad de espacio en disco que cree que necesitará y luego comenzaría con las pruebas de rendimiento. CloudWatch mostrará la cantidad de IOPS que usa su aplicación, y si ve que está llegando al límite de su volumen, sabrá que necesita aumentar las IOPS disponibles. Enjuague y repita hasta que ya no maximice las IOPS disponibles durante sus pruebas de rendimiento.
La respuesta de @Mark B probablemente sea correcta, ya que indica que sus IOP se basan en el tamaño de su volumen de EBS. Para lo que quieras, S3 es la mejor opción.
Pero dependiendo de su caso de uso y requisitos, es posible que necesite EBS. esto es especialmente true si desea ejecutar una base de datos. En ese caso, tienes un par de opciones.
Puede obtener IOPS aprovisionadas: si sabe que necesita 5000 IOPS, pero solo necesita 100 GB de almacenamiento (que con gp2 normalmente le proporcionaría alrededor de 300 IOPS), puede usar volúmenes io1. Esto tiene un costo adicional y querrá asegurarse de que esté conectado a una instancia optimizada de EBS, pero puede obtener hasta 20 000 IOPS si es necesario.
Si está haciendo muchas lecturas secuenciales (¿leyendo en un gran conjunto de datos?), entonces hay un nuevo tipo de EBS, st1. Esto es bueno para 500 MB/s y es menos de la mitad del costo de gp2.
Finalmente, hay otro escenario que podrías considerar (por ejemplo, eres un poco loco y quieres intentar hacer cosas extrañas). Si puede obtener un archivo de algún lugar y lo único que le importa es servirlo desde un sistema de archivos realmente rápido, puede colocarlo en una instancia que tenga almacenamiento de instancia. Este es un SSD conectado localmente, por lo que es muy rápido. El único inconveniente es que cuando su instancia se detiene, sus datos desaparecen.
Para abordar su actualización, “cuántas IOPS necesita para una base de datos”, la respuesta es “depende”. Cada motor de base de datos tiene requisitos diferentes y cada uso de la base de datos tiene patrones de uso diferentes. Echa un vistazo a esto si quieres más información. Pero básicamente, prueba y monitorea. Si está preocupado, aprovisione demasiado en el lanzamiento y reduzca la escala según sea necesario. O adivine y aumente si tiene problemas: ¿es más importante minimizar los costos o brindar un buen rendimiento a sus usuarios finales?
Si sostienes alguna desconfianza o disposición de medrar nuestro noticia eres capaz de dejar un exégesis y con mucho placer lo leeremos.