AWS con Windows 10
A continuación describiré mi experiencia tratando de seguir un ejemplo de Serverless con AWS y Python, pero como usuario de Windows 10.
WSL2
Aquí tendré que documentar posteriormente como habilitar WSL2 en Windows...
DISTRO
Será necesario instalar una distribución GNU/Linux (coloquialmente llamada distro) que es una distribución de software basada en el núcleo
Linux en Windows 10.
-
Abre Microsoft Store
-
Busca por una distribución GNU/Linux, para este ensayo usaremos Ubuntu
-
Cuando termine la instalación abre Ubuntu, la primera vez puede que tarde un poco...
Al terminar la instalación la distro te solicitara ingresar un usuario y contraseña.
Ten cuidado al ingresar la contraseña porque puede que al teclear no veas lo que estas ingresando y se quede en el mismo lugar sin avanzar (ya que no se muestra una máscara).
Actualizar distro
Como algo usual y saludable actualizaremos la distro, es un proceso tardado...
Nota: Anteponiendo sudo el sistema solicitará que se ingrese una contraseña del usuario con permisos para ello o bien usar el comando sudo -i para cambiar a modo
root.
Python y Git
Será requerido tener Python, para ello podemos correr el comando
python3 --version
y saber si tenemos la versión 3 de Python instalada o en su defecto instalar.
Comando para instalar Python 3
Para comprobar si tenemos Git instalado ejecutamos el comando
git --version o en su defecto instalar.
Comando para instalar Git
AWS CLI
En este paso se requiere usar
curl para verificar si se tiene curl instalado
use el comando curl --version y en su defecto instalar.
Comando para instalar curl
También será necesario usar
unzip para verificar si se tiene unzip instalado
use el comando unzip --version y en su defecto instalar.
Comando para instalar unzip
Para este ejercicio usaremos AWS CLI
Usar el comando
aws --version para verificar si está instalado o en su caso instalar.
Comando para instalar
aws (CLI)
Al finalizar la instalación es saludable verificar que se instaló correctamente:
Patrones de arquitectura de Software
- Monolítica aplicación software en la que la capa de interfaz de usuario y la capa de acceso a datos están combinadas en un mismo programa y sobre una misma plataforma.
- Microservicio
¿Qué son y para qué sirven los microservicios?
El enfoque tradicional para el diseño de aplicaciones se centraba en la arquitectura monolítica, en que todos los elementos que pueden implementarse estaban contenidos en una sola aplicación. Este enfoque tiene sus desventajas: cuanto más grande es la aplicación, más difícil es solucionar los problemas que se presentan y agregar funciones nuevas rápidamente. En cambio, si las aplicaciones se diseñan con microservicios, se resuelven dichos problemas y se impulsa el desarrollo y la capacidad de respuesta.
¿Qué son los microservicios?
Los microservicios son tanto un estilo de arquitectura como un modo de programar software. Con los microservicios, las aplicaciones se dividen en sus elementos más pequeños e independientes entre sí. A diferencia del enfoque tradicional y monolítico de las aplicaciones, en el que todo se compila en una sola pieza, los microservicios son elementos independientes que funcionan en conjunto para llevar a cabo las mismas tareas. Cada uno de esos elementos o procesos es un microservicio. Este enfoque de desarrollo de software valora el nivel de detalle, la sencillez y la capacidad para compartir un proceso similar en varias aplicaciones. Es un elemento fundamental de la optimización del desarrollo de aplicaciones hacia un modelo nativo de la nube.
¿Pero cuáles son las ventajas de utilizar una infraestructura de microservicios?
En pocas palabras, el objetivo es distribuir sistemas de software de calidad con mayor rapidez, lo cual es posible gracias a los microservicios, pero también se deben considerar otros aspectos. Dividir las aplicaciones en microservicios no es suficiente; es necesario administrarlos, coordinarlos y gestionar los datos que crean y modifican.
Configuración de un entorno virtual con Python
A continuación se debe crear entorno-virtual con Python ejecutando el siguiente comando:
Si al ejecutar el comando anterior indica que es necesario instalar
Entonces debemos ejecutar el comando indicado y aceptar la instalación
Activar entorno virtual
Para activar el entorno virtual ejecute el siguiente comando:
Si se activó satisfactoriamente el sistema cambiara el prompt anteponiendo (.venv):
Instalar chalice en el entorno virtual Python
Para instalar Chalice (micro-framework) en el entorno virtual de Python ejecute:
Verificar si se instaló correctamente Chalice
Crear proyecto Chalice
Para crear un proyecto Chalice ejecute el comando:
Este comando creará el sistema de archivos necesario, con un directorio con el nombre del nuevo proyecto.
Ejecutar el comando para cambiarnos al nuevo directorio creado por Chalice:
Podemos ejecutar un comando ls -la para que muestre lo que contiene este directorio:
Podemos observar la creación de un archivo llamado app.py en el cual colocaremos el código de nuestro microservicio.
Veamos el contenido de la plantilla de este archivo:
Este archivo importa chalice
Crea una aplicación
Crea una ruta
Define una función de prueba (la cual regresa el mensaje indicado al consultar la URL)
Ejecutar proyecto Chalice Local
La aplicación ya es funcional, para probarla podemos ejecutar el comando chalice local el cual crea un servidor local
Cuando el servidor local esté disponible indicará una URL.
Copiar la dirección del servidor local creado y colocarla como URL en el navegador.
Al acceder a la URL se ejecutara el archivo
app.py.
Cuenta de Capa gratuita de AWS
Para poder desplegar el ejemplo en AWS, es necesario tener o crear una Cuenta de Capa gratuita de AWS
Información acerca de Capa gratuita de AWS
Para crear una cuenta accede al sitio de AWS:
Crear una cuenta de AWS
Las cuentas de AWS incluyen
12 meses de acceso a capa gratuita
Incluye uso de Amazon EC2, Amazon S3 y Amazon DynamoDB
Visite aws.amazon.com/free para consultar las condiciones completas de la oferta
Crea tu cuenta de tipo Personal si no la requieres de manera profesional.
Recuerda elegir el Plan Básico el cual es gratuito por un período.
Es importante que completes tu registro, para ello será necesario que ingreses una Tarjeta de Crédito válida.
En este paso se confirmará tu identidad mediante un código que llegará a tu teléfono móvil registrado.
En caso de no completar el registro, la cuenta se creará, sin embargo no podrás usarla completamente.
Si hay algún problema con la información de tu pago, el sistema notifica con el siguiente mensaje:
Credenciales de seguridad
Será necesario crear en la consola de la cuenta las Credenciales de seguridad
Solo tú debes tener acceso a ellas, no las compartas, ni publiques
aws configure
Para configurar api key y secret key, en el root del usuario crear directorio:
Verificar la creación del directorio:
Chalice siempre buscará el directorio.
Al ejecutar el comando
aws configure solicitara la siguiente información que
debe ser proporcionada:
Verificar que el comando a creado en el directorio ~/.aws los archivos:
configcredentials
Desplegar la app
Una vez que los archivos config y credentials han sido configurados correctamente es posible ejecutar el comando chalice deploy <proyecto> desde el entorno virtual de Python
Lo que hace es crear un paquete en un archivo .zip y al finalizar indicará que creo una REST FULL API.
Copia la URL y consúltala con un navegador, si todo es correcto se mostrará
{"hello":"world"}