¿Cómo instalar un servidor web en la nube con Amazon EC2?
Instalar un servidor web en la nube es una habilidad esencial en el mundo actual. Este proceso, que parece complejo, se vuelve sencillo y eficaz cuando se descompone en pasos claros. A continuación, profundizaremos en cómo instalar un servidor web usando Amazon EC2, desde la conexión hasta el despliegue en un navegador web.
¿Cómo conectar al servidor EC2?
Conectarse a un servidor EC2 es el paso inicial para cualquier configuración. Aunque los pasos pueden variar ligeramente dependiendo del sistema operativo que estés utilizando, el proceso básico es similar.
Acceder a la consola de AWS: En la consola de administración de AWS, busca y selecciona EC2.
Seleccionar la instancia: Una vez en EC2, dirígete a las "instancias" donde encontrarán tu servidor. Clica sobre él para obtener más detalles.
Copiar la IP del servidor: Localiza y copia la dirección IP de la instancia, ya que la necesitarás para establecer una conexión.
Conectarse a través de SSH: Abre una terminal y usa el siguiente comando para conectarte al servidor. Asegúrate de utilizar la información correcta para tu instancia.
ssh -i mi-llave.pem ec2-user@<IP_del_servidor>
¿Cómo instalar un servidor web Apache?
Una vez conectado al servidor, necesitarás instalar un servidor web como Apache para poder servir contenido.
Instalación de Apache: Usa el siguiente comando para instalar Apache en tu instancia de EC2.
sudo yum install httpd -y
Verificar la instalación: Una vez completada la instalación, estructura el archivo HTML que verán los visitantes.
cd /var/www/html
sudovim index.html
Usa i para insertar texto en Vim, añade un mensaje como: "Hola a todos, soy el servidor web :)". Guarda y cierra usando Esc :wq.
¿Cómo reiniciar el servidor para aplicar cambios?
Con el contenido listo, es crucial reiniciar el servidor para que los visitantes puedan ver los cambios.
Reiniciar el servidor Apache: El siguiente comando reiniciará el servidor y aplicará todos los cambios realizados.
sudo systemctl restart httpd
¿Por qué no se muestra el contenido en el navegador?
Es importante entender el flujo de datos y cómo los componentes de red, como los grupos de seguridad (Security Groups), afectan tu servidor web.
Revisar los grupos de seguridad: Un error común es no tener el puerto 80 abierto. Dirígete a la sección de "Security" en la consola de AWS, selecciona el grupo de seguridad de tu servidor y verifica las reglas.
Abrir el puerto 80: Si está cerrado, añade una regla que permita acceso HTTP:
- Protocolo: HTTP
- Puerto: 80
- Fuente: Anywhere
¿Qué deberías recordar?
Al gestionar servidores y hosting en la nube, varios puntos son cruciales:
Instancias de troubleshooting: Siempre verifica el Security Group cuando haya problemas de tráfico.
Aplicación instantánea de reglas: Cambios en las reglas de seguridad son efectivos inmediatamente.
El proceso descrito es el comienzo de una exploración más detallada sobre EC2 y las capacidades del servidor. Estas habilidades no solo son claves para administrar servidores web, sino que abren un mundo de posibilidades para crear infraestructuras más complejas en la nube. ¡Te invitamos a seguir explorando y experimentando en el fascinante mundo de la computación en nube!
( Ya me llego el cobro despues de un par de dias de disfrutar ver mi hola mundo en cualquier dispositivo jajaj 🤦♂️
$3.20 USD )
En el Dashboard del menu izquierdo de <u>EC2</u>
Entren a Instances (running)
Seleccionen la instancia
Clic en Instance State
Clic en Stop instance
Listo
‼️‼️‼️
Me queda una duda, se entiende que el servidor EC2 creado de acuerdo a las indicaciones de las clases, se encuentra en la capa FREE TIER y sus costos son ínfimos.
Aún así, cuando te creas una cuenta AWS perteneciente a la capa FREE TIER, en teoría te asignan un monto representativo (como una bolsa para tus prácticas) que dura 6 meses; ya que algunos de los servicios consumen dinero.
Entiendo que bajo este contexto, si el servidor web está en la capa FREE TIER, en todo caso debería descontarte desde dicha bolsa. Aún así, es obvio que el saldo que te asigna AWS debería durarte para unos meses de práctica. Si es así, tiene sentido ahorrar todo lo que se pueda.
Gracias :)
A tener en cuenta:
Por buenas prácticas, poner descripciones las reglas del Security Group
Problemas de conexión muy probablemente están relacionados con las reglas del SG
Cuando abrimos el puerto 80, la regla se aplica de manera inmediata.
Los problemas de conexión no necesariamente tienen que ver con el security group. Hay que tomar en cuenta que despues del security group esta el ACL que tambien nos puede dar problemas, entre otros componentes de la red
le pedí a chatgpt que hiciera una página de bienvenida solo con html y css y este fue el resultado :)
Laboratorio: Creación del servidor web
Instalando servidor apache:
sudo yum install httpd -y
Creando archivo para ver en web:
cd /var/www/html
sudo vim index.html
Reiniciando servidor web:
sudo systemctl restart httpd
Una vez que tengas las reglas de entrada de HTTP y HTTPS, puedes acceder a la IPV4 pública de tu EC2 desde el navegador web
Para guardar los cambios en sudo vim index.html, debes seguir estos pasos:
Presiona Esc para asegurarte de estar en modo normal.
Escribe :w y presiona Enter para guardar los cambios. Si deseas guardar y salir, escribe :wq y presiona Enter.
Esto asegurará que los cambios realizados en el archivo se guarden correctamente.
Para subir contenido HTML desde un directorio compartido a tu servidor EC2 con Apache, sigue estos pasos:
Conéctate a tu servidor EC2 usando SSH:
ssh -i "tu_llave.pem" user@ip_del_servidor
Copia el contenido HTML desde tu directorio compartido al servidor. Puedes usar scp (Secure Copy Protocol):
Verifica que los archivos se hayan copiado correctamente en el directorio /var/www/html/.
Reinicia Apache para asegurarte de que los cambios se reflejen:
sudo systemctl restart httpd
Accede a tu contenido a través de un navegador utilizando la dirección IP de tu servidor.
No va a mostrar el archivo porque como eliminamos todas las reglas del SG pues no tenemos regla de inbound para el puerto 80
Install server Apache
sudo yum install httpd -y
Go to path
cd /var/www/html
create file
sudo vim index.html
Save de file press in your keyboard scape and :wq
Restart server
sudo systemctl restart httpd
Go into browser your public IP
Yo realice la conexión desde power shell de windows ubicado en la ruta donde tenia mi archivo .pem ejejcute esto para restringir los permisos sobre el archivo pem ejecute esto
El comando sudo yum se utiliza en sistemas operativos basados en Linux, como Amazon Linux, para instalar, actualizar y gestionar paquetes de software.
sudo permite ejecutar el comando con privilegios de superusuario.
yum es el gestor de paquetes que maneja la instalación y actualización de software en el sistema.
Este comando es esencial al configurar servidores en AWS, como se mencionó en la clase sobre la instalación de un servidor web Apache.
No lo va a mostrar porque en el security group no está habilitado el puerto 80 (http)...
Ayuda por favor, hice todo tal cual esta en el video pero nu logro ver la pagina con la frase "Hola mundo", que puedo hacer para que funcione?
Bro me paso tambien, es interesante si le das open address desde amazon no carga nunca (pasa porque AWS hace una peticion HTTPS la cual no la tenemos en el security group) pero si copias y pegas en la url del navegador si carga. Pruebalo.
no se si sea util pero para los que no esten familiarizados con ssh, pueden usar Moba solo necesitan hacer una vez la conexion y dejan guardadas todas las configuraciones, les ahorra un paso :)
No se podrá acceder, porque no tenemos un permiso asignado.
Me gustaría que explicaran también cómo se desaprobación el servicio para deje de generar costos. Al intentar detener la instancia me decía que me iban a seguir facturando por la IP y el EBS. Lo que yo hice fue:
Eliminar la IP pública. Ir a Elastic IPs, seleccionar la IP, en actions Disassociate Elastic IP address y actions Release Elastic IP addresses
Ir a las instancias, dar click en el ID de la instancia, en Instance state dar click en Stop instance
Eliminar el EBS. En la pestaña de Storage dar click al ID del volumen, Actions y Force detach volume, luego lo eliminé.
La instancia la dejé ahí pero detenida, no sé si eso es todo lo que hay que hacer para que no me cobren pero espero que igual les sirva. Si hay algo más por hacer, les agradezco el aporte.
Para lanzar un web server en AWS
1. Creamos un archivo index.html
2. Configuramos un security group para acceder mediante HTTP desde internet a la IP publica del servidor
3. Copiamos la IP Publica y la buscamos en nuestro navegador