Amazon Web Services (AWS)
Implantación de Aplicaciones Web
Curso 2023/2024
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.
Amazon EC2 (Elastic Compute Cloud). Es un servicio web que proporciona capacidad de cómputo escalable en la nube.
Amazon S3 (Simple Storage Service). Es un servicio de almacenamiento de objetos. Los objetos se almacenan en buckets y se identifican en forma de pares clave-valor.
Amazon EBS (Elastic Block Store). Es un servicio de almacenamiento de bloques. Los volúmenes de EBS se pueden usar como unidades de disco para las instancias EC2, o como almacenamiento independiente para otros propósitos.
Amazon EFS (Elastic File System). Es un servicio de almacenamiento de archivos en red, compatible con el protocolo NFS (Network File System).
Amazon RDS (Relational Database Service). Es un servicio de bases de datos administrado por AWS que permite configurar, utilizar y escalar una base de datos relacional en la nube. Proporciona seis motores de bases de datos conocidos: Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle y Microsoft SQL Server.
Amazon VPC (Virtual Private Cloud). Es un servicio que permite crear redes virtuales en AWS.
AWS IAM (Identity and Access Management). Es un servicio que permite administrar usuarios y grupos de usuarios, así como sus permisos de acceso a los recursos de AWS.
AWS KMS (Key Management Service). Es un servicio que permite crear y administrar claves de cifrado.
Amazon Lambda. Es un servicio de computación en la nube basado en eventos, que permite ejecutar código sin tener que administrar servidores o contenedores.
Amazon Elastic Beanstalk. Es un servicio que permite desplegar y escalar aplicaciones web sin tener que administrar servidores o contenedores.
Amazon ECS (Elastic Container Service). Es un servicio de orquestación de contenedores administrado por AWS que permite desplegar y escalar aplicaciones en contenedores de manera sencilla.
Amazon EKS (Elastic Kubernetes Service). Es un servicio que permite ejecutar Kubernetes en la nube de AWS.
AWS Fargate. Es un servicio que permite ejecutar contenedores sin tener que administrar servidores ni clústeres de instancias de Amazon EC2. Es compatible con ECS y EKS.
Amazon Lightsail. Es la manera más sencilla de comenzar con AWS para desarrolladores, pequeñas empresas, estudiantes y otros usuarios que necesitan una solución de servidor privado virtual (VPS) sencilla.
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.
- SSH. Protocolo:
TCP
. Puerto:22
. Origen:0.0.0.0/0
- HTTP. Protocolo:
TCP
. Puerto:80
. Origen:0.0.0.0/0
- HTTPS. Protocolo:
TCP
. Puerto:443
. Origen:0.0.0.0/0
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.
- Renombre el archivo labuser.pem como vockey.pem.
$ mv labuser.pem vockey.pem
- IMPORTANTE: Cambie los permisos el archivo para que solo el propietario tenga permisos de lectura.
$ chmod 400 vockey.pem
- Ejecute el comando que copió en el paso 2 para conectarse por SSH a la instancia EC2 desde un terminal de Linux. El comando será parecido al este, pero el nombre DNS de la instancia será diferente.
$ ssh -i "vockey.pem" ubuntu@ec2-54-224-67-209.compute-1.amazonaws.com
2 Referencias
- Amazon Web Services
- Amazon Web Services en Wikipedia
- ¿Qué es Amazon EC2?.
- Creación de instancias EC2 en AWS.
- Cómo crear una máquina virtual con Amazon EC2.
- SSH to an EC2 instance from VS Code.
- Remote Development using SSH with Visual Studio Code.
3 Licencia
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.