AWS
VPC
EC2
Basics

Primeros pasos - AWS Cloud



Este artículo tiene la intención de introducir al desarrollador a algunos de los principales conceptos a considerar cuando decidimos aprender sobre computación en la nube, una área de la tecnología que está ganando cada vez más relevancia en el mundo actual. Desde el manejo de grandes cantidades de datos hasta el alojamiento de sitios web y aplicaciones, la nube es una herramienta esencial para cualquier desarrollador.

👋🏻 Tomalo como una introducción y no como una guía definitiva, yo tambien estoy aprendiendo!

¿Cuál es el primer paso para crear recursos en la nube?

El primer paso crucial al crear recursos en la nube es seleccionar una región desde la cual el proveedor de la nube (AWS) va a servir nuestros recursos. Esta decisión depende de varios factores, como la ubicación geográfica de los usuarios, las leyes y regulaciones locales, y los costos asociados con cada región.

Las regiones en AWS están diseñadas para ofrecer alta disponibilidad y redundancia. Cada región se compone de múltiples Zonas de Disponibilidad (AZ), lo que permite distribuir tus recursos.

Las necesitamos para distribuir nuestros recursos. ¿Para qué? Si una zona falla, la otra te respalda y sirve tus recursos. Esta distribución garantiza la resiliencia de tus aplicaciones: si una zona se viera afectada por alguna falla, las otras zonas pueden respaldar y continuar sirviendo tus recursos. Esta es la esencia del concepto de alta disponibilidad (High Availability).

Cada AZ tiene uno o mas data centers con servidores.

Cuantas más AZ tenga una región, mejor será la disponibilidad y la capacidad de recuperación de tus aplicaciones.

 

Una vez que seleccionaste una región, podés crear tu propio Virtual Private Cloud (VPC). Un VPC te proporciona un entorno de red virtual en la nube completamente aislado y personalizable.

Tu propio datacenter virtual

Ejemplo de VPC distrubuído en 3 AZs

 

Dentro de tu VPC, podés definir subnets (subredes) que se extienden a través de diferentes zonas de disponibilidad, lo que te permite distribuir tus recursos de manera eficiente y garantizar la disponibilidad y el rendimiento de tus aplicaciones. Estas subredes son como salas de un edificio, donde cada sala puede tener un propósito específico y contener recursos específicos.

Pero las VPC están aisladas de forma predeterminada, NO TIENEN ACCESO A INTERNET, lo que puede ser un problema si tus recursos necesitan comunicarse con el mundo exterior.

 

❓ ¿Cómo hacemos que otras personas accedan a nuestros recursos (nuestra web)?

Para permitir que tus recursos dentro de la VPC, como tu sitio web, sean accesibles desde Internet, necesitas configurar un Internet Gateway. Esto te permite asociar tu VPC a Internet y ubicar los recursos que querés hacer públicos en una Public Subnet. Este es un proceso crucial para hacer que tus aplicaciones y servicios sean accesibles para tus usuarios.

En esta subred, podés desplegar instancias EC2, que son máquinas virtuales (Virtual machines - VM) escalables y personalizables que pueden servir páginas web, actuar como servidores SSH y mucho más. Las instancias EC2 son uno de los recursos más utilizados en AWS, gracias a su flexibilidad y a la gran variedad de tipos de instancias disponibles.

Ahora ya podríamos tener nuestra primera web accesible, pública para todo el mundo. Este es un gran paso para cualquier desarrollador, demuestra que uno es capaz de configurar correctamente un entorno de nube y desplegar una aplicación en él.

 

⚠️ Pero... esto no escala

Cuando tu web empiece a tener mucho tráfico, una sola instancia EC2 puede no ser suficiente para manejar la carga. Necesitamos algo que escale mejor, algo elástico..

  • Elastic Load Balancers (ELB) : Ahora podemos repartir la carga de todo el tráfico que recibimos, entre varias instancias EC2 en diferentes Zonas de Disponibilidad. Los ELB son una herramienta poderosa para manejar el tráfico entrante, ya que pueden distribuir la carga entre varias instancias, lo que ayuda a prevenir la sobrecarga de una sola instancia y mejora la disponibilidad y el rendimiento de tu aplicación.

Un ELB también nos da seguridad, ahora podríamos poner nuestras VMs en PRIVATE SUBNETS y el ELB en una pública. Entonces, el tráfico llega ahí y nuestras VMs no son accesibles desde afuera. Este es un enfoque común para mejorar la seguridad de una aplicación en la nube, ya que limita el acceso directo a las instancias y solo permite el tráfico a través del balanceador de carga.

 

❓ ¿Y qué pasa si nuestras VMs que tenemos en private subnets necesitan acceder a internet?

  • Podés configurar un NAT Gateway en tus subredes públicas. Esto permite que las instancias en subredes privadas se conecten a servicios fuera de la VPC de manera segura, mientras que los servicios externos no pueden iniciar una conexión con estas instancias**, lo que fortalece la seguridad de tu entorno.** El NAT Gateway actúa como un intermediario entre las instancias en la VPC y el internet, lo que permite a las instancias acceder a los recursos de internet sin exponerlas directamente.

¿Y para nuestras VMs que querrían acceso a internet?

Bueno, al desplegar una aplicación web en AWS, es fundamental tener en cuenta la conectividad a Internet para garantizar el acceso a recursos externos, como integraciones de API, servicios de autenticación, actualizaciones de software y más. Configurar adecuadamente los recursos de red, como las subredes públicas y privadas, los gateways de Internet y los balanceadores de carga, te va a permitir construir aplicaciones altamente disponibles, escalables y seguras en la nube. Este es un aspecto crucial de la arquitectura de la nube y es esencial para el éxito de cualquier aplicación en la nube.

 

 

La fuente: Morsa Programando

Más recursos:

AWS Public vs Private Services

AWS VPC Basics