Alojamiento de Aplicaciones Web en AWS EC2

Hay varias formas de alojar una aplicación web en el entorno AWS. Su aplicación web puede ser un sitio web tradicional o un proyecto API. Ambos tipos se denominarán "aplicación web" (web app) de aquí en adelante.
Introducción
Hay varias formas de alojar una aplicación web en el entorno AWS. Su aplicación web puede ser un sitio web tradicional o un proyecto API. Ambos tipos se denominarán "aplicación web" de aquí en adelante. Algunas formas que podemos aplicar para alojar una aplicación web en AWS se enumeran a continuación:
- Alojamiento de aplicación web en bucket S3
- Alojamiento de aplicación web en contenedores ECS, EKS o Fargate
- Alojamiento de aplicación web con Elastic Beanstalk
- Alojamiento de aplicación web directamente en EC2
[!NOTE] Aunque las opciones 1, 2 y 3 son enfoques modernos para alojar contenido en AWS, en este artículo nos dirigimos a personas que han trabajado mucho en sistemas antiguos pero desean migrar al entorno AWS con sus viejos hábitos!Nuestro objetivo es introducir rápidamente el flujo de Route53, Application Load Balancer, Security Groups, etc. junto con EC2.
En este artículo examinaremos la última opción. Hay muchos sistemas operativos que se pueden usar en EC2. Usaremos Linux con la configuración más baja disponible dentro del "Free Tier" (Capa Gratuita). Para más información sobre AWS Free Tier, haga clic aquí.
Amazon EC2 se puede usar directamente para alojar una aplicación web. En este artículo, se explican paso a paso todos los pasos necesarios para llevar a cabo tal tarea.
Antecedentes
- Amazon Security Group (Grupo de Seguridad)
- Amazon EC2
- Amazon Load Balancer (Balanceador de Carga)
- Amazon Route53
¿Qué Vamos a Hacer?
La arquitectura básica puede ser como se muestra a continuación:

Imagen-001: Vista principal del sistema
Supongamos que su objetivo es alojar su sitio web en una máquina AWS EC2. Por simplicidad de la aplicación, se publicará una página HTML estática en el servidor web Apache en AWS EC2. Haremos posible acceder a la carpeta
www predeterminada de Apache a través de FTP. Además de estos requisitos, un nombre de dominio será dirigido a esta aplicación web a través de AWS Route53.Para diseñar la arquitectura mostrada en la Imagen-001, crearemos los elementos de AWS en el orden de los números dentro de los círculos grises.
Supongamos que nuestro dominio es
WELR.com y queremos alojar sus elementos de trabajo en EC2.Todos los pasos para alojar el contenido de
WELR.com en un AWS EC2 pueden ser los siguientes.Paso 1: Creación de un Grupo de Seguridad en AWS
Este grupo de seguridad se usará para EC2. Un grupo de seguridad puede considerarse como el firewall del objeto al que está asociado.
Configure todos los puertos entrantes (inbound) como se muestra a continuación:
- 20-21 (FTP)
- 1024-1048 (FTP), opcional
- 22 (SSH)
- 80 (HTTP)
- 8080 (HTTP personalizado), opcional
- 443 (HTTPS)
El rectángulo rojo en la imagen a continuación es importante para mostrar el flujo de ALB a EC2 a través de los grupos de seguridad relacionados.

Imagen-002: Reglas inbound de SG-for-EC2-for-WELR
Paso 2: Creación de una Instancia EC2
Crear una instancia EC2 en AWS es una operación sencilla. El botón Connect (Conectar) en la esquina superior derecha de la imagen a continuación se usará para conectarse a EC2.

Imagen-003: EC2-for-WELR
Instale todos los requisitos en EC2-for-WELR.
Primero, debe conectarse a la línea de comandos de EC2. Hay varias formas de hacer este paso, pero la más simple es conectarse directamente a través de la consola web de AWS.

Imagen-004: Conectar a EC2-for-WELR
Después de presionar el botón Connect, se conectará a la línea de comandos de EC2 como
ec2-user.2.1- Instalación de Apache
TEXT
> sudo su
> yum update -y
> yum install -y httpd.x86_64
> systemctl start httpd.service
> systemctl enable httpd.service
Todos los archivos de la aplicación web estarán en la carpeta web predeterminada de Apache.
La carpeta web predeterminada para Apache es el directorio
/var/www/html.2.2 - Instalación de FTP
TEXT
> sudo su
> yum update -y
> yum install vsftpd
> sudo vi /etc/vsftpd/vsftpd.conf
Debe hacer algunos cambios en el archivo de configuración de FTP como se muestra a continuación.
Todas estas líneas deben estar presentes en el archivo de configuración como se muestra. Debe saber cómo usar el editor
vi. Si va a usar el editor vi por primera vez, consulte aquí.TEXT
# elimine los símbolos # de todas las líneas siguientes
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
write_enable=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=18.170.116.xxx
Para reiniciar el servicio
vsftpd, se puede usar uno de los siguientes:TEXT
> /etc/init.d/vsftpd restart
O:
TEXT
> systemctl restart vsftpd
Para agregar un usuario para FTP, haga lo siguiente en la línea de comandos de EC2:
TEXT
> adduser awsftpuser
> passwd awsftpuser
> usermod -a -G root awsftpuser
> usermod -d /var/www/html/ awsftpuser
> chown -R awsftpuser /var/www/html
> systemctl restart vsftpd
2.3 - Instalación del Cliente FTP
Por ejemplo, cliente Filezilla en Windows.
Después de crear todos los elementos en AWS, intente conectarse con un cliente FTP y subir un archivo. Debería poder subir el archivo
index.html a la carpeta web FTP en EC2.Paso 3: Creación de Grupo de Seguridad para ALB
Configure todos los puertos inbound como se muestra a continuación:
- 20-21 (FTP)
- 1024-1048 (FTP), opcional
- 22 (SSH)
- 80 (HTTP)
- 8080 (HTTP personalizado), opcional
- 443 (HTTPS)

Imagen-005: Reglas inbound de SG-for-ALB-for-WELR
Paso 4: Creación de Target Group

Imagen-006: Target Group TG-for-WELR
Paso 5: Creación de Application Load Balancer
Este ALB debe tener el target group
TG-for-WELR.Target group (Grupo objetivo) es un grupo de EC2. Sin embargo, por ahora solo contiene la instancia
EC2-for-WELR.Además, este ALB debe tener el grupo de seguridad
SG-for-ALB-for-WELR.Imagen-007: Application Load Balancer ALB-for-WELR

Paso 6: Permisos Entre Grupos de Seguridad
Agregue reglas inbound a
SG-for-EC2-for-WELR para aceptar todas las solicitudes TCP provenientes de SG-for-ALB-for-WELR.
Imagen-008: Permitir flujo de ALB a EC2 a través de grupos de seguridad
Paso 7: Creación de Route53 Hosted Zone
Debe tener cuatro registros como a continuación:
- NS y SOA se crean automáticamente
- Cree Record A. Como se ve en la imagen a continuación
- Cree Record CNAME - para
welr.com
Imagen-009 - Registros de Route53

Las direcciones NS pueden usarse en la interfaz de administración de dominio para dirigir el nombre de dominio a la aplicación web que está alojando en EC2 Apache.
Conclusión
Como se mencionó al principio de este artículo, hay muchas formas de alojar una aplicación web en cualquier entorno cloud. Hemos examinado algunos aspectos en AWS EC2. Como se puede ver, asumimos que desplegamos manualmente los elementos de trabajo de la aplicación web a Apache a través de FTP. Sin embargo, con cualquier herramienta CI/CD, esta operación puede automatizarse usando comandos FTP.
El objetivo principal de este artículo es mostrar cómo se aloja una aplicación web en el entorno AWS detrás de Route53 y Load Balancers en EC2.
Lo que Aprendimos:
- Creación y configuración de instancia EC2
- Instalación de servidor web Apache
- Configuración de FTP y agregar usuarios
- Configuración de Security Group
- Configuración de Application Load Balancer
- Redirección de dominio con Route53
☁️ Servicios de Computación en la Nube
Ofrecemos servicios de diseño de infraestructura, migración, gestión y optimización en plataformas AWS, Azure y Google Cloud.
Explorar Nuestro Servicio📞 Contáctenos
Póngase en contacto con nuestro equipo para obtener información detallada sobre nuestras soluciones de AWS y computación en la nube.
Contacto