¿Qué tipos de instancia de AWS EC2 debo usar para alojar mis aplicaciones (NodeJS + AngularJS)?

Cuando dice que su sitio requiere mucho tiempo de carga, ¿quiere decir que el tiempo de respuesta de la API es alto o que la carga de activos estáticos (AngularJS / images, etc.) lleva mucho tiempo?

Si su tiempo de respuesta de API es alto, intente averiguar cuál es el cuello de botella: ¿es la RAM / CPU del servidor de la base de datos, las conexiones máximas al servidor de la base de datos o la RAM / CPU de su servidor NodeJS? Puede utilizar la herramienta de evaluación comparativa del servidor HTTP ab-Apache para simular la carga y resolver el problema. Si desea escalar a millones de usuarios, el almacenamiento en caché es obligatorio. Puede usar Redis para almacenar en caché sus respuestas API.

Si sus activos estáticos están tardando mucho en cargarse, sugeriría alojarlos en el depósito S3 y distribuirlos a través de Cloudfront. La siguiente guía lo ayudará a configurar lo mismo: Ejemplo: configurar un sitio web estático utilizando un dominio personalizado. Usar S3 Bucket es muy conveniente ya que no necesita encender un servidor web y crear una distribución de Cloudfront es muy sencillo. Servir contenido estático a través de CDN mejorará mucho el tiempo de carga.

NodeJS en sí mismo no necesita mucha RAM o energía de la CPU debido a su arquitectura basada en procesos en lugar de enhebrada, pero depende de sus requisitos, depende mucho de lo que esté haciendo su código, ¿qué tipo de procesamiento de datos? ¿Qué tamaño tienen sus archivos de datos ?, ¿cuántos usuarios / procesos concurrentes espera? etc.

Pero según mi experiencia pasada cuando migré a la familia C4 de AWS, he visto un buen rendimiento.

Hola,

Iré con la arquitectura sin servidor (Lambda / DynamoDB) si quiero un sitio web escalable y una aplicación móvil. La razón principal es la arquitectura escalable que obtiene sin servidor, no tiene que preocuparse por los servidores o el balanceador de carga elástico.

Aquí hay algunas ideas sobre la arquitectura sin servidor ¿Cómo crear un sitio web dinámico usando la arquitectura sin servidor de AWS?

Espero que esto ayude, feliz de ayudar si tienes más preguntas.

Aclamaciones,

Kapil

Así es como lo hice.

Encendí una instancia de EC2 y la bombardeé con sitio (página en joedog.org). Puedes usar (ab o jmeter para esto). Luego verifiqué lo que está causando el cuello de botella. Según el resultado, digamos que la CPU es un cuello de botella, elegí calcular la instancia C4 optimizada y repetí el mismo experimento para decidir el tamaño de la instancia C4.
Estos son algunos cuellos de botella comunes
1. Memoria
2. CPU
3. Disco iops
4. red
5. Base de datos (si está utilizando una base de datos externa, como RDS)
– Utilización de CPU de db
– Utilización de RAM de db
– Número de conexiones simultáneas a db

Tenga en cuenta que es mejor usar jmeter, ya que puede imitar el tráfico del mundo real. Hice “asedio” porque no tuve tiempo para configurar los casos de prueba de jmeter.

AngularJS
Puede usar CloudFront para servir contenido de AngularJS que ahorrará el uso de recursos EC2.

NodeJs
Su arquitectura impulsada por eventos le permite funcionar mejor. Estamos usando PHP, y creo que entiendes nuestra condición 🙁
Incluso si nodeJs consume menos CPU y menos RAM, su elección de instancia depende totalmente de su aplicación. Por ejemplo, si está procesando imágenes, obviamente, debe optar por la instancia de cálculo optimizado.

Depende del tráfico que esté esperando y del dinero que esté listo para pagar. AWS ofrece un uso de nivel gratuito de un t2.micro gratis durante un año y es bastante decente para admitir una aplicación que tiene una concurrencia máxima de ~ 100 usuarios.

Otra vez. Depende mucho de la aplicación que esté haciendo.

Si se trata solo de memoria, primero haga una evaluación comparativa de su aplicación en el caso de Java, habríamos utilizado visual vm o similar para comprender los requisitos de memoria de la aplicación, simulando usuarios.

More Interesting

¿Cuáles son algunas de las características más interesantes de Google Cloud Platform (junio de 2016)?

¿Cuál es el futuro de la informática personal? ¿La informática local desaparecerá y la informática en la nube se hará cargo?

¿Hay algún servicio en la nube en el que pueda tener un script Python simple ejecutable de forma programada de forma gratuita?

¿Cuál es el mejor instituto para los servicios web de Amazon en Pune?

Cómo alojar un sitio web en Amazon AWS

Infraestructura de TI: ¿Cuáles son las 50 principales herramientas, servicios o productos de TI que debe conocer un ingeniero de TI de una startup basada en la nube?

¿Qué es la virtualización a nivel del sistema operativo (virtualización basada en contenedores)?

¿Hay alguna diferencia entre el alojamiento web tradicional y el alojamiento en la nube?

¿Cuál es la necesidad de usar trampillas en la computación en la nube?

¿De quién capturó Amazon AWS el mercado? ¿Hubo un líder del mercado cuyo mercado fue robado por la solución en la nube proporcionada por AWS? Cualquier fuente de información también será útil.

¿Dónde puedo comprar Amazon AWS Credit?

¿Qué servicio en la nube es el mejor, Google Cloud, Amazon Web Services (AWS) o Microsoft Azure?

¿'The Cloud' desaparecerá alguna vez con todos los datos que contiene?

¿Cuál es el mejor instituto para Amazon Web Services (AWS) en Hyderabad y cuál será el precio total cobrado por la capacitación y la certificación?

¿Cuál es la ventaja de AWS sobre Microsoft Azure?