- Instancias: Una instancia es una máquina virtual (VM) en la nube de AWS que ejecuta aplicaciones. Puedes elegir diferentes familias y tamaños de instancias según el uso de CPU, memoria, almacenamiento y redes que necesites.
- Imágenes AMI: Las Amazon Machine Images (AMI) son plantillas preconfiguradas para instancias que incluyen un sistema operativo y software adicional. Puedes utilizar AMIs proporcionadas por AWS, AMIs de la comunidad o crear tus propias AMIs.
Tipos de Instancias
- Optimizadas para cómputo: Por ejemplo, las familias C5 y C6g, que son ideales para cargas de trabajo de computación intensiva como procesamiento por lotes y servidores de medios.
- Optimizadas para memoria: Como las familias R5 y R6g, que se utilizan para bases de datos, caché en memoria y análisis de grandes volúmenes de datos.
- Optimizadas para almacenamiento: Ejemplos incluyen las familias I3 y D2, utilizadas para bases de datos NoSQL, data warehousing y sistemas de archivos.
- Balanceadas: Las familias M5 y M6g ofrecen un buen equilibrio entre recursos de computación, memoria y redes.
Características de Red
- VPC: Virtual Private Cloud permite lanzar instancias de AWS en una red virtual que tú defines. Esto es crucial para la gestión de la seguridad y la conectividad.
- Elastic IP: Direcciones IP estáticas diseñadas para la computación dinámica en la nube.
- Elastic Network Interfaces (ENI): Permite a una instancia conectarse con diferentes redes, lo que es esencial para configuraciones de red avanzadas y redundancia.
Seguridad
- Grupos de seguridad: Actúan como un firewall virtual para controlar el tráfico hacia y desde las instancias.
- IAM roles para EC2: Permite asignar permisos que controlan las acciones que las aplicaciones y sistemas dentro de la instancia pueden ejecutar en otros recursos de AWS.
Automatización y Gestión
- Auto Scaling: Ajusta automáticamente la cantidad de instancias disponibles durante picos de carga para mantener el rendimiento y minimizar costos.
- AWS Elastic Beanstalk: Un servicio para desplegar y escalar servicios y aplicaciones web desarrolladas con Java, .NET, PHP, Node.js, Python, Ruby, Go, y Docker en servidores como Apache, Nginx, Passenger, e IIS.