Sigo estos pasos cuando hago optimización de costos con clientes:
1. Comprenda para qué se utilizará la aplicación: qué flujos comerciales tienen lugar en esta aplicación, patrones de uso (explosivos, cíclicos, constantes), quiénes son los usuarios y desde dónde acceden a la aplicación.
2. Traduzca el paso 1 a los requisitos del sistema (arquitectura y componentes de AWS) y al consumo de recursos (¿es alto en la utilización de la CPU, memoria, almacenamiento en disco, E / S de disco?). Si hay métricas disponibles, úselas. Elija los componentes de AWS en función de las métricas disponibles: tipos de instancia EC2, tipo de volumen EBS, tipos de instancia RDS DB, clases de almacenamiento S3, etc. Si no tiene métricas, tendrá que hacer suposiciones y elegir los componentes de AWS de todos modos (eso está bien en este punto).
- ¿Cómo puedo instalar Fedena como una aplicación en la nube?
- ¿Es seguro mantener toda mi información confidencial en la nube?
- ¿Cómo puedo acceder a mis datos locales desde todos mis dispositivos en la nube sin pagar por un servicio en la nube?
- ¿Cuáles son los problemas en la seguridad de la nube?
- ¿Cuál es el mejor en rendimiento, si tienen las mismas especificaciones de hardware, hosting dedicado o hosting en la nube?
3. Configure las aplicaciones en un entorno similar a la producción y ejecute pruebas de carga al volumen esperado en la vida real. Puede usar JMeter o Locust, ambas son excelentes herramientas de código abierto para pruebas de carga. También debe ejecutar pruebas que simulen picos en el tráfico (es decir, 3x, 5x, 10x), de esta manera conocerá los límites superiores de su aplicación.
4. Monitoree las métricas basadas en pruebas de carga y confirme / rechace las suposiciones que hizo en el paso 2. Por ejemplo, asegúrese de que la CPU no esté sobre / utilizada para el tipo de instancia EC2 que eligió, la E / S de disco no es un cuello de botella de rendimiento, el uso de la memoria está en niveles seguros, etc. Las métricas le indicarán dónde ajustar los componentes. Por ejemplo, use una instancia EC2 más pequeña (y más barata), cambie las clases de almacenamiento S3, etc. En función de las métricas recopiladas, calcule el costo utilizando herramientas como la calculadora de costos de AWS. Para el cálculo de costos, considere: tipos de instancia EC2, transferencia de datos (a Internet, interregional, entre AZ), datos ELB procesados, GB / mes de almacenamiento. La transferencia de datos es una dimensión importante que a menudo se pasa por alto y a menudo da como resultado un choque de adhesivos de AWS. Vea si puede usar CloudFront para reducir la carga en sus servidores web; esto puede mejorar el costo significativamente. Una vez que encuentre un tipo de instancia EC2 óptimo, si va a usarlos durante al menos 6 meses, considere comprar instancias reservadas.
5. Repita los pasos 3 y 4 hasta encontrar una configuración óptima.
Estos pasos llevan algo de tiempo, pero valen la pena. Sin pruebas, no hay forma de saber si ha elegido los componentes de AWS correctos y cuánto pagará por ellos.
Escribí este artículo que destaca los pasos con más detalle, en un ejemplo real de WordPress.
Cómo encontrar una configuración EC2 óptima en 5 pasos (con pruebas de rendimiento y resultados reales)