Amazon Web Services (AWS)

Implantación de Aplicaciones Web

Curso 2024/2025



1 Amazon Web Services (AWS)

Amazon Web Services (AWS) es una colección de servicios de computación en la nube pública que en conjunto forman una plataforma de computación en la nube, ofrecidas a través de Internet por Amazon.

1.1 ¿Qué es AWS Academy?

AWS Academy es un programa de AWS que ofrece gratuitamente a las instituciones de educación superior un plan de estudios de computación en la nube, que prepara a los estudiantes para obtener certificaciones reconocidas en la industria.

Referencias:

1.2 ¿Cómo accedo a AWS Academy?

La URL para acceder a ASW Academy es la siguiente:

1.3 ¿Qué es AWS Academy Learner Lab?

AWS Academy Learner Lab es un laboratorio que permite a los alumnos trabajar con algunos de los servicios de AWS durante un período de tiempo. Cada alumno cuenta con un crédito de 100 dólares que podrá utilizar en los servicios de la plataforma de AWS que están permitidos dentro del laboratorio.

1.4 ¿Cómo puedo utilizar AWS Academy Learner Lab?

En esta guía encontrará todos los pasos que necesita realizar para acceder y utilizar la plataforma AWS Academy Learner Lab.

1.5 Servicios de Amazon Web Services (AWS)

A continuación se muestran algunos de los servicios de AWS que vamos a utilizar a lo largo del curso.

1.6 ¿Cómo crear instancias EC2?

En esta guía encontrará todos los pasos que necesita realizar para crear instancias EC2 en AWS.

1.6.1 Paso 1. Iniciamos el laboratorio

Desde el curso de AWS Academy iniciamos el laboratorio pulsando en Start Lab y esperamos a que el icono que aparece junto al texto de AWS se ponga de color verde.

1.6.2 Paso 2. Accedemos a la consola de administración de AWS

Al pulsar sobre el texto de AWS se nos abrirá una nueva pestaña con la consola de administración de los servicios de AWS.

Desde la consola seleccionamos el servicio de EC2.

1.6.3 Paso 3. Buscamos el botón “Launch Instance” para crear una instancia EC2

La forma más rápida de crear una instancia EC2 es hacerlo a través del botón “Launch Instance” que nos aparece en el dashboard del servicio EC2.

1.6.4 Paso 4. Le asignamos un nombre a la instancia EC2 que vamos a crear

En este paso podemos asignarle un nombre a la instancia EC2 y añadirle etiquetas con metadatos, que estará formadas por pares clave-valor. Estas etiquetas nos van a permitir organizar o filtrar las instancias.

No es obligatorio asignarle un nombre, pero se recomienda hacerlo para poder identificar con facilidad a la instancia.

1.6.5 Paso 5. Seleccionamos la AMI y la arquitectura de la instancia EC2

En este paso tenemos que seleccionar la AMI (Amazon Machine Image) y la arquitectura (x86 o Arm), que vamos a utilizar en la instancia EC2.

En este ejemplo vamos a seleccionar la imagen Ubuntu Server 22.04 LTS (HVM), SSD Volume Type, y la arquitectura 64 bits (x86).

1.6.6 Paso 6. Seleccionamos el tipo de instancia EC2

Seleccionamos que vamos a crear una instancia de tipo t2.micro que cuenta con 1 vCPU y 1 GiB de RAM.

1.6.7 Paso 7. Seleccionamos la clave pública SSH que le vamos a inyectar a la instancia EC2

En este paso tenemos que seleccionar la clave pública SSH que le vamos a inyectar a la instancia EC2.

Aquí podemos generar un par de claves SSH o podemos utilizar las claves SSH que ya están creadas y asociadas a nuestra cuenta de usuario en la plataforma AWS Learner Lab.

En este ejemplo vamos a utilizar la clave pública vockey que está asociada a nuestra cuenta de usuario en la plataforma AWS Learner Lab. La clave privada la descargaremos más adelante desde la plataforma, para poder conectarnos por SSH con la instancia EC2.

1.6.8 Paso 8. Configuramos la red y los grupos de seguridad

En este paso podemos configurar la red VPC (Virtual Private Cloud) donde se va a crear la instancia, la subred, etc. En esta práctica no vamos a modificar ninguno de estos parámetros, vamos a utilizar los que aparecen por defecto.

En este paso tenemos que configurar las reglas del grupo de seguridad. Podemos crear un nuevo grupo de seguridad o utilizar uno existente.

En este ejemplo vamos a crear un nuevo grupo de seguridad y vamos a utilizar tres reglas para permitir tráfico SSH, HTTP y HTTPS.

1.6.9 Paso 9. Añadimos el almacenamiento que utilizará la instancia

En este paso configuramos cuál será el almacenamiento que utilizará la instancia EC2 que estamos creando.

En este ejemplo no vamos a modificar ninguno de los parámetros que aparecen por defecto y utilizaremos un disco SSD de 8 GB.

1.6.10 Paso 10. Detalles avanzados

En este paso podemos configurar algunos detalles avanzados de la instancia. Por ejemplo, en el campo User data podemos indicar comandos o un script que se ejecutará cuando se inicie la instancia. Esta opción nos permite preparar nuestra instancia para que se inicie automáticamente con el estado deseado.

1.6.11 Paso 11. Revisamos la configuración seleccionada

En este paso podemos revisar la configuración seleccionada y seleccionar el número de instancias que queremos crear.

Para crear la instancia pinche sobre el botón Launch Instance.

1.6.12 Paso 12. Estado de la instancia

En este paso nos aparece un mensaje indicando que la instancia se está creando. Vamos a pinchar sobre el identificador de la instancia que aparece en el cuadro de color verde.

1.6.13 Paso 13. Consultamos el estado de la instancia desde la consola de administración

Cuando pasen unos segundos le aparecerá en la consola la instancia que acaba de crear. Cuando la instancia muestre que está en estado Running es que está preparada para conectarnos a ella.

1.7 Cómo conectarnos a una instancia EC2 por SSH desde Linux

1.7.1 Paso 1. Seleccionamos la instancia y pinchamos sobre Connect

Cuando la instancia aparezca en estado Running marcaremos el checkbox que aparece al inicio de la línea y luego pincharemos sobre el texto Connect.

1.7.2 Paso 2. Obtener el comando para conectarnos desde un cliente SSH en Linux

En este paso nos aparece cómo podemos conectarnos a la instancia que acabamos de crear.

Vamos a seleccionar la opción SSH client, y vamos a leer los pasos que tenemos que realizar para conectarnos a la instancia.

El comando que tenemos que utilizar para conectarnos a la instancia lo podemos copiar en este paso. En el comando aparece el nombre del archivo .pem de la clave privada, el nombre del usuario y el nombre DNS público de la instancia.

Ejemplo:

$ ssh -i "vockey.pem" ubuntu@ec2-54-224-67-209.compute-1.amazonaws.com

1.7.3 Paso 3. Descargamos la clave privada .PEM desde el Learner Lab

Para descargar la clave tiene que pinchar sobre el texto AWS Details y le aparecerá en la parte derecha la posibilidad de descargar la clave como un archivo .PEM o .PPK.

En Linux utilizaremos la clave .PEM y en Windows, si utilizamos el cliente PuTTY utilizaremos la clave .PPK.

Cuando descargue la clave se descargará como labuser.pem o labuser.ppk.

1.7.4 Paso 4. Conectarnos por SSH desde Linux

Cuando descargue la clave privada labuser.pem guárdela en un directorio y desde allí realice los siguientes pasos.

$ mv labuser.pem vockey.pem
$ chmod 400 vockey.pem
$ ssh -i "vockey.pem" ubuntu@ec2-54-224-67-209.compute-1.amazonaws.com

1.8 Cómo conectarnos a una instancia EC2 por SSH desde Windows

Para poder conectar a una instancia EC2 por SSH desde la línea de comandos de Windows o desde PowerShell, necesitamos modificar la configuración de la clave privada.

1.8.1 Paso 1. Descargamos la clave privada .PEM desde el Learner Lab

Para descargar la clave tiene que pinchar sobre el texto AWS Details y le aparecerá en la parte derecha la posibilidad de descargar la clave como un archivo .PEM o .PPK.

En este caso vamos a utilizar la clave .PEM.

Cuando descargue la clave se descargará como labsuser.pem, pero te recomiendo que le cambies el nombre a vockey.pem.

1.8.2 Paso 2. Seleccionamos las propiedades del archivo .PEM

Nos situamos sobre el archivo vockey.pem, hacemos click con el botón derecho y seleccionamos la opción de Propiedades.

1.8.3 Paso 3. Seleccionamos la pestaña de Seguridad

Seleccionamos la pestaña de Seguridad y luego pulsamos sobre el botón Avanzado.

1.8.4 Paso 4. Seleccionamos la opción de Deshabilitar herencia

Pinchamos sobre el botón Deshabilitar herencia.

1.8.5 Paso 5. Quitar todos los permisos hereados de este objeto

Nos aparece una nueva ventana donde tendremos que seleccionar Quitar todos los permisos hereados de este objeto.

1.8.6 Paso 6. Añadimos un nuevo usuario

Seleccionamos sobre el botón de Agregar.

1.8.7 Paso 7. Seleccionar una entidad de seguridad

Pinchamos sobre el botón de Seleccionar una entidad de seguridad.

1.8.8 Paso 8. Seleccionamos nuestro nombre de usuario

En el campo de texto Escriba el nombre de objetos para seleccionar escribimos nuestro nombre de usuario.

Nota: En mi caso el nombre de usuario es Administrator, ten en cuenta que tendrás que reemplazar este nombre por que tengas en tu sistema.

Una vez que escribamos el nombre pinchamos sobre el botón Comprobar nombres.

1.8.9 Paso 9. Seleccionamos los permimos

En esta ventana podemos seleccionar los permisos que queremos dar al usuario sobre el archivo vockey.pem.

En este caso podemos dejar los permisos que aparecen seleccionados por defecto, Lectura y ejecución y Lectura.

1.8.10 Paso 10. Aceptamos los cambios

Una vez realizados todos los pasos anteriores pinchamos sobre el botón Aceptar.

1.8.11 Paso 11. Abrimos un shell de línea de comandos o PowerShell

Para conectar por SSH podemos abrir un shell de línea comandos o PowerShell y ejecutar el siguiente comando.

ssh -i <RUTA_CLAVE_PRIVADA_SSH> <USUARIO_REMOTO>@<IP_PUBLICA_REMOTA>

Donde:

Ejemplo:

ssh -i "vockey.pem" ubuntu@ec2-54-224-67-209.compute-1.amazonaws.com

1.9 Cómo conectarnos a una instancia EC2 por SSH desde Windows con PuTTY

1.9.1 Paso 1. Descargamos la clave privada .PPK desde el Learner Lab

Para descargar la clave tiene que pinchar sobre el texto AWS Details y le aparecerá en la parte derecha la posibilidad de descargar la clave como un archivo .PEM o .PPK.

En nuestro caso vamos a utilizar la aplicación PuTTY para Windows, por lo tanto, necesitaremos descargar la clave .PPK.

Cuando descargue la clave se descargará como labuser.ppk.

1.9.2 Paso 2. Descarga e instalación de la aplicación PuTTY

En primer lugar, vamos a descargar e instalar la aplicación PuTTY, que es un cliente SSH para Windows. Puede descargar la aplicación desde la página web oficial:

1.9.3 Paso 3. Configuración de PuTTY para conectar con la instancia

En el panel Category de la izquierda, seleccionamos Session y rellenamos los siguientes campos.

1.9.4 Paso 4. (Opcional) Configuración del keepalive en PuTTY

Este paso es opcional, solo lo vamos a realizar si queremos configurar PuTTY para que permita tener una conexión activa con la instancia durante un largo periodo de inactividad.

Lo que haremos será configurar el cliente PuTTY para que envíe un paquete de keepalive a la instancia cada 30 segundos.

En el panel Category de la izquierda, seleccionamos Connection y en la opción Seconds between keepalives escribirmos el valor 30.

1.9.5 Paso 5. Configuración de la clave privada en PuTTY

En el panel Category de la izquierda, seleccionamos Connection y dentro de esta opción seleccionamos SSH -> Auth.

Seleccione Browse y busque la clave privada labuser.ppk que se ha descargado del Learner Lab de AWS.

1.9.6 Paso 6. (Opcional) Guardar la sesión de PuTTY

En el panel Category de la izquierda, seleccionamos Session y dentro de esta opción podemos guardar los datos que hemos configurado para la sesión en el campo de texto Saved Sessions.

En este caso hemos guardado la sesión con el nombre de AWS para que la próxima vez que queramos conectar con la instancia no tengamos que volver a introducir todos los parámetros.

1.10 Cómo copiar archivos de nuestra máquina a la instancia EC2 desde Linux y macOS con el comando scp

1.10.1 Paso 1. Copiamos el contenido de nuestra máquina con el comando scp

Una vez que nos hemos situado dentro del directorio, ejecutaremos el comando scp con los siguientes parámetros.

Sintaxis

$ scp -i <CLAVE_PRIVADA> -r <RUTA_ARCHIVOS_EN_ORIGEN> <USUARIO>@<IP_INSTANCIA_EC2>:<RUTA_ARCHIVOS_EN_DESTINO>

Vamos a explicar cada uno de los parámetros que tenemos que utilizar en el comando.

Nota: Tendrá que indicar la ruta completa donde se encuentra la clave privada. En este ejemplo vamos a ejecutar el comando dentro del mismo directorio donde se encuentra la clave privada.

Ejemplo

A continuación, se muestra un comando de ejemplo donde vamos a copiar todos los archivos del directorio /home/josejuan/lenguaje_de_marcas/ de nuestra máquina local, al directorio /home/ubuntu de la instancia EC2.

$ scp -i vockey.pem -r /home/josejuan/lenguaje_de_marcas ubuntu@ec2-54-224-67-209.compute-1.amazonaws.com:/home/ubuntu

Imporante: Tendrá que indicar la ruta completa donde se encuentra la clave privada. En este ejemplo vamos a ejecutar el comando dentro del mismo directorio donde se encuentra la clave privada.

1.10.2 Paso 2. Nos conectamos a la instancia por SSH

Ahora nos vamos a conectar a la instancia por SSH para mover los archivos que hemos copiado en el directorio /home/ubuntu, al directorio /var/www/html, que es el directorio que utiliza por defecto el servidor web Apache para servir el contenido web.

Ejemplo

$ ssh -i "vockey.pem" ubuntu@ec2-54-224-67-209.compute-1.amazonaws.com

Nota: Tendrá que reemplazar el nombre DNS público por el que tenga su instancia.

1.10.3 Paso 3. Copiamos los archivos de /home/ubuntu al directorio /var/www/html

Una vez que nos hemos conectado a la instancia EC2 vamos a copiar los archivos que hemos copiado al directorio /home/ubuntu al directorio /var/www/html.

$ sudo cp -R /home/ubuntu/lm/* /var/www/html

Importante: Tenemos que ejecutar el comando con sudo para tener privilegios de root.

1.10.4 Paso 4. Cambiamos los permisos de los archivos que acabamos de copiar

Vamos a cambiar el propietario y el grupo de los archivos que acabamos de copiar al directorio /var/www/html y le vamos a asignar el usuario www-data y el grupo www-data, que son los utiliza el servidor web Apache.

$ sudo chown www-data:www-data /var/www/html -R

1.11 Cómo conectarnos a una instancia EC2 por SSH desde Visual Studio Code

En la documentación oficial de Visual Studio Code puede encontrar un artículo titulado Remote Development using SSH, donde se describe con detalle cómo podemos utilizar Visual Studio Code para conectarnos por SSH a una máquina remota y trabajar en uno de sus directorios.

A continuación, se describe de una forma muy breve cómo podemos conectarnos a una instancia EC2 por SSH desde Visual Studio Code.

1.11.1 Paso 1. Instalación de la extensión Remote - SSH

Buscamos e instalamos la extensión Remote - SSH desarrollada por Microsoft para Visual Studio Code.

1.11.2 Paso 2. Abrimos la configuración de las conexiones SSH

Una vez que hemos instalado la extensión Remote - SSH, pinchamos sobre el icono de la extensión (1). Una vez hecho esto, pinchamos sobre el icono del engranaje que nos aparece junto al texto SSH (2).

1.11.3 Paso 3. Seleccionamos el archivo de configuración de las conexiones SSH

Nos aparecerá la lista de archivos de configuración donde podemos almacenar los datos de conexión con las máquinas remotas. Podemos seleccionar el que queramos.

1.11.4 Paso 4. Editamos el archivo de configuración de las conexiones SSH

Una vez que hemos seleccionado el archivo de configuración, tendremos que crear una nueva entrada con los datos de conexión con la instancia EC2. Los datos que tendremos que configurar son los siguientes:

Ejemplo:

Host Servidor-Web
    HostName 18.234.126.101
    User ubuntu
    IdentityFile /home/josejuan/Lab/vockey.pem

1.11.5 Paso 5. Conectamos a la instancia EC2 por SSH

Para conectarnos a la instancia por SSH, primero pinchamos sobre el icono de la extensión Remote - SSH y luego pinchamos sobre el nombre que le hemos asignado a la máquina remota.

2 Referencias

3 Licencia

Licencia de Creative Commons
Esta página forma parte del curso Implantación de Aplicaciones Web de José Juan Sánchez Hernández y su contenido se distribuye bajo una licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.