Introducción al cómputo en la nube

1

¿Qué es el cómputo en la nube?

2

¿Cómo puedo empezar a usar AWS?

3

Introducción a la oferta de servicios de AWS y sus aplicaciones

Introducción a la oferta de AWS y sus interacciones

4

Ejemplo de arquitectura con Elastic Beanstalk

5

¿Qué es Amazon EC2?

6

Creando una instancia de EC2

7

Conectándonos a nuestra instancia desde Windows

8

Conectándonos a nuestra instancia desde Linux

9

Conectándonos a nuestra instancia desde OSX

10

Subiendo un proyecto: Clonando un repositorio de GitHub a nuestra Instancia de EC2

11

Subiendo un proyecto a nuestra instancia de EC2: Ejecutar nuestro proyecto

12

¿Qué es Lambda y Serverless?

13

Creando una función Lambda

Elastic Beanstalk

14

Conociendo Elastic Beanstalk

15

Creando un ambiente en Elastic Beanstalk

16

Almacenamiento - S3

17

Almacenamiento con S3: Contenido Estatico

18

Almacenamiento con Glacier: Contenido duradero

Bases de Datos

19

Bases de Datos - RDS Aurora PG

20

Conociendo RDS PG

21

Creando una base de datos Platzi DB

22

Haciendo una migración a RDS PG

23

Conociendo Aurora PG (Postgres)

24

Haciendo una migración a Aurora DB

25

Mejores prácticas de Bases de Datos y RDS

Redes

26

Redes - Route53

Herramientas de administración

27

Herramientas de administración - IAM

28

Utilizando IAM

29

CloudWatch

30

CloudTrail

Seguridad

31

Certificate manager

32

GuardDuty

Bonus

33

AWS Rekognition

34

Creando nuestro servicio de Postgres

35

Accediendo a nuestra base de datos Postgres

Cierre del curso

36

Conclusiones del curso de Fundamentos de AWS Cloud

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Práctico de AWS Cloud

Curso Práctico de AWS Cloud

Mauro Parra Miranda

Mauro Parra Miranda

Creando un ambiente en Elastic Beanstalk

15/36
Recursos

Aportes 97

Preguntas 50

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Les comparto el archivo funcionando

Mi solución fue la siguiente:

  • Descargar este repositorio https://github.com/mauropm/aws-platzi-python/tree/elastic-beanstalk
  • Descomprimir el contenido, acceder a la carpeta de la aplicación eliminar la carpeta .ebextension.
  • Crear un archivo con el nombre requirements.txt y escribir en él esta línea: Flask==1.0.2
  • Comprimir solo la carpeta templates y los archivos requirements.txt y application.py. Luego subir ese archivo comprimido tal cual como lo indica el video.
    Espero les sirva

Creo que es hora de acualizar este curso.

RT: @davidegc
Les comparto el archivo funcionando

Gracias a David por la ayuda! Descarguen ese archivo que si funciona.

Veo en los comentarios que se tiene que hacer una modificación adicional no indicada en el video, muy mal. Quién hace la edición de los cursos? Iba todo muy bien, esto es un aspecto muy en contra al calificar el curso

En mi caso, con Python 3.8 tuve usar Flask 2.0.3, para que funcionara, las versiones 1.X me causaron fallas.

Hola, voy a dejar por aca los pasos que seguí para que me funcione:

  • Borrar la carpeta .ebextensions
  • agregar un archivo requirements.txt con el siguiente contenido
    Flask==1.0.2
    Haciendo esos pasos pude desplegar de manera correcta el proyecto!

Les dejo aquí el zip que funciona.
Gracias a la solución de @NovoPles
(https://www.dropbox.com/s/0f5gnn3w1iy3737/aws-platzi-python.zip?dl=0)

La solución que a mi me funcionó fue la siguiente:

  • Eliminar la carpeta .ebextensions
  • Crear el archivo requirements.txt con el siguiente contenido: Flask==1.0.2
  • Crear un zip con estos dos archivos y la carpeta templates.
    Para tener en cuenta: No se debe comprimir(.zip) el folder del proyecto. Debes comprimir directamente los archivos del proyecto.
    Gracias @Cristian Franco por tu aporte.

les comparto el archivo que funciona actualizado para aws actualizado a la fecha eb-flask-v4.zip

Amazon EC2

EC2 son un conjunto de máquinas virtuales en línea que puedes utilizar para desarrollo, calidad o producción

chmod 400 <name-key> dar permisos a la key
ssh -i <name-key> ec2-user@<ip> conectarse a la máquina ec2
sudo su volverse root

example

https://github.com/mauropm/aws-platzi-python

<h4>Permisos de super usuario</h4>

sudo su

<h4>Instalación de flask</h4>

pip install flask

<h4>ejecutar programa</h4>

python app.py

AWS Lambda

es un servicio informático que permite ejecutar código sin aprovisionar ni administrar servidores.

Elastic Beanstalk

es una plataforma donde en pocos pasos, obtienes un balanceador de cargas y tantas instancias EC2 como tu quieras.

Amazon S3
Es un repositorio de archivos rápido y perfecto para uso de una aplicación a la hora de crear, manipular y almacenar datos.
Amazon Glacier
Es un servicio de almacenamiento en la nube para archivar datos y realizar copias de seguridad a largo plazo.

Amazon CloudWatch

Observación de sus recursos y aplicaciones de AWS tanto en AWS como locales
Amazon Cognito

Amazon Cognito proporciona autenticación, autorización y administración de usuarios para sus aplicaciones móviles y web. Los usuarios pueden iniciar sesión directamente con un nombre de usuario y una contraseña o a través de un tercero como Facebook, Amazon o Google.

Muy interesante esta información. Deberían arreglar el curso, ya que no es fácil de seguir los ejemplos que envió el profe, si no es por los compañeros que arreglaron el paquete.

Profesor, qué pasó?
Nos comimos la parte del contenido del archivo .zip, luego resulta que la carpeta y el archivo nuevo que se crearon no sirvieron para nada (.ebextensions y flask.config). Al final, la única forma de hacerlo funcionar fue creando un archivo requirements.txt tal como señaló @NovoPles

La verdad que estoy muy decepcionado con este curso, no puede ser que este tan desactualizado, mas de 3 horas llevo intentando hacer andar lo dado en esta clase y no hay caso, ya intente absolutamente todo lo que esta en los comentarios y sigue sin andar. Supongo que Platzi no es una forma “Rapida” y “Facil” para aprender como dicen…

Gracias a todos quienes dieron la solución para que esto funcionara, un corazon para todos ustedes y un coscorron para el profesor xD

Efectivamente falta un paso importante en el video el cual es crear el archivo requirements.txt
Este se puede crear ejecutando el comando pip freeze > requirements.txt y debe quedar sobre el mismo nivel del application.py

También se debe tener en cuenta que el comprimido debe ser .zip y que todos los archivos deben quedar en la raiz del mismo

Update Marzo 2021.

Descarga el repositorio, de application. py borra esto

if __name__ == "__main__":
    app.run("0.0.0.0",debug=False)
    #app.run("0.0.0.0",debug=True)

Crea el archivo requirements.txt para instalar las dependencias

flask

Selecciona estos tres items y haz un archivo zip

templates
applications .py
requirements.txt
Todo debe estar bien ahora.

Lamentablemente MUY mal que aun sabiendo gente del platzi team las fallas que tiene justo este punto, de tener que agregar un archivo al git, no lo hagan directamente sobre esa branch y sigamos teniendo que hacerlo a mano (aun si saber que poner y solo teniendo que poner copiar pegar), también en videos anteriores solo pude avanzar por ayuda de los aportes ya que el profesor daba cosas por sabidas cuando no se han explicado.

A la fecha de hoy (noviembre 2022) me daba una un error con la librería Jinja2 que es usada por Flask, por lo que tuve que poner explícitamente las versiones compatibles en el archivo requirements.txt:

# requirements.txt

Flask==2.2.2
Jinja2==3.1.1

Esto me funciono a mi:

  • Descargar el .zip desde GitHub.
  • Descomprimirlo.
  • Entrar en la carpeta generada al descomprimir seleccionar todos los archivos y comprimirlos en un .zip juntos.

Y listo.

El archivo tal cual esta en GitHub actualmente funciona correctamente pasa lo siguiente:
Al descargar el archivo desde GitHub se genera un archivo .zip que contiene la carpeta en la raíz del mismo por lo cual AWS no logra conseguir el proyecto, al descomprimirlo y seleccionar los archivos se crea un .zip que en la raíz tiene los archivos en la raíz y así AWS consigue el proyecto.

La version del profe no funciona actualmente.

El proyecto con los archivos necesarios
Código funcional
Si no les funciona es probable por la version de python de la instancia, en ese caso cambiar en requirements.txt la version de flask.

Flask==2.0.3

Buen día,
Quizá a alguien le puedan servir los siguientes comandos que seguí en Ubuntu:

  • git clone [email protected]:mauropm/aws-platzi-python.git (con ssl)
    ó

  • git clone https://github.com/mauropm/aws-platzi-python.git (con https)

  • cd aws-platzi-python/

  • git branch -a (ver todas las ramas del repositorio)

  • git checkout elastic-beanstalk (cambiar de rama)

  • python3 -m venv virt (crear entorno virtual de python)

  • source virt/bin/activate (activar el entorno virtual)

  • pip3 install flask==2.0.3 (gestionar la dependencia de flask)

  • pip3 freeze (listar las dependencias)

  • pip3 freeze > requirements.txt (crear el archivo requirements.txt con las dependencias)

  • cat requirements.txt (leer el archivo)

  • pip3 freeze (revisar dependencias)

  • export FLASK_APP=application (requerido especificarle el nombre application en la respectiva variable de ambiente)

  • export FLASK_ENV=development

  • flask run (para ejecutarlo en ubuntu)

  • CTRL + C

  • zip eb-flask-v4.zip * (dentro de la carpeta que contiene los archivos del proyecto)

Para hacer lo anterior es recomendable haber hecho cursos anteriores como el curso profesional de git y github, los cursos de python de platzi. En mi caso trabajé desde windows con la terminal de Ubuntu WSL

Espero aporte en algo a la comunidad.

Saludos.

Si estas viendo este curso en 2022 y aun no se actualizan las clases y al momento de cargar el Zip te da error, es posible que hayas seleccionado la version mas reciente de Python, debes seleccionar justo la misma version que el profesor utiliza la 3.6 (Aun diga que esta obsoleta).

El curso tiene que ser actualizado, la consola de AWS no es ni remotamente parecida de lo que se muestra en el curso

nada de los comentarios me sirvio para hacer desplegar al app lo mejor es ir a la documentación con eso me funciono la app del profe https://docs.aws.amazon.com/es_es/elasticbeanstalk/latest/dg/create-deploy-python-flask.html

Estoy tomando este curso, ya tome las medidas que estan poniendo en los comentarios de bajar el ZIP del repositorio, eliminar el .ebextension y subirlo como mencionan, pero me aparece este error 😦 .

No pude 😕 intente todo lo de los comentarios y siempre me da el mismo error

Solo se debe comprimir los archivos y subcarpetas necesarios, NO toda la carpeta que viene por defecto al descargarnos el proyecto desde GIT, además seguir las recomendaciones de Flask==1.0.2 que indican los otros aportes.

Al utilizar el beanstalk para generar ambientes con la nueva interfaz arroja warnings con los permisos de autoscalling y loadbalancer:

Entrar a IAM AWS Console.
Buscar aws-elasticbeanstalk-service-role
(under Access Management > Roles).
Attach the following policies:

  • AutoScalingFullAccess
  • ElasticLoadBalancingFullAccess

Hacemos luego el rebuilt del environment, no mas errores.

Alguien podría enviar el link para descargar eb-flask-v4.zip

Your WSGIPath refers to a file that does not exist.

me sale el siguiente error el cual no pude solucionar con ninguna de las ayudas que estuve leyendo en los comentarios, si alguien tiene algun codigo funcional para hacer el ejercicio se lo agradeceria, intente todos los ejemplos pero ninguno me funciono y no pude seguir por dicho motivo.

El branch elastic-beanstalk no esta disponible en GitHub 😦

saben como hace el .zip para el Elastic Beanstalk

No me funciono. Como que quizo explicar un posible error mas como no le sucedio siguio con otra cosa, mal mal ahi.

Pos ni comprimiendo la carpeta con los tres archivos me funciona (templates, application.py, requirements.txt), tambien hice los cambios de las lineas 23 y 24, pero no funcionó. Alguien que haya logrado hacerlo podria colocar la forma de hacerlo?

Sé que la interfaz de la consola de Administración de AWS es muy diferente, pero no difiere mucho el proceso para crear una aplicación y su ambiente, lo que tienes que hacer adicionalmente es pasarle un rol que tenga acceso a una instancia EC2 y que tenga los privilegios necesarios para la configuración y ejecución de los servicios que usa Elastic Beanstalk. Esto puede servirte:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications.html
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.environments.html

Seria bueno si actualizaran este curso ya lleva bastante tiempo…

Deben actualizar el curso, a la fecha (2023) la interfaz en AWS ha cambiado mucho.
Para crear una aplicacion en Elastic Beanstalk al prof en el video le pide solo llenar 1 campo, seleccionar un check y listo. Actualmente AWS solicita llenar y revisar al rededor de 5 paginas para crear una aplicacion en Elastic Beinstalk.
@PLATZI despierten con los cursos desactualizados

Perdida de tiempo, estaba emocionado al hacer este curso pero NO ESTÁ ACTUALIZADO y así no sue puede aprender aquí, me tuve que ir a YT. Solo le daré una estrella al contenido en cuanto lo termine.

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-all-platforms.html Aquí explican como utilizar frameworks diferentes a Flask, con elastik beanstalk

lo unico que me sirvio fue descargar el zip, descomprimir el archivo, agregar requirements.txt (actualizando version de flask), seleccionar todo los archivos y volver a comprimir.

Este curso ya está muy viejo. Han cambiado muchas cosas dentro de AWS, no me están funcionando los códigos.

Actulicen los contenidos

Funcionando para septiembre del 2022
Para poder desplegar tienen que comprimir el archivo application.py, la carpeta templates, .ebextensions y el archivo de requirements.txt
el archivo dentro de la carpeta ebextension cambia por un archivo llamado python.config que contiene:

option_settings:
  "aws:elasticbeanstalk:container:python":
    WSGIPath: application:application

No sé si cargué mal los archivos o qué, pero a mí no me funcionó. Me dice que está DEGRADADO.

Si lograron subir el aplicativo y conectarse por ssh. La ruta donde se almacena la app es en

/var/app/current

Por ssh podrán editarle para no hacerlo en local

tambien me dio el mismo error de @andrescarriondiaz

(el de su imagen) aasi que segui el siguiente link y puede completar esta seccion del curso sin error!

https://docs.aws.amazon.com/es_es/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html

Saludos!

Para quienes hayan tenido problema con el deploy desde macOS, posiblemente logs con errores de sintaxis por ejecución de ‘…/.filename.config’ o algo parecido ejecuten este comando en su terminal

zip -d filename.zip __MACOSX/\*

https://stackoverflow.com/questions/10924236/mac-zip-compress-without-macosx-folder

**Mi aporte ** En este link pueden encontrar todos los tipos de Desencadenadores de escalado que el profe no explicó al 100%.

Sería genial un curso de Docker con Elasticbeanstalk + Python + Django.

Excelente práctica

Por si alguien va realizar el proceso, dejo la documentacion oficial
https://docs.aws.amazon.com/es_es/elasticbeanstalk/latest/dg/create-deploy-python-flask.html

Vaya, si quisiera hacer el deploy de un API aquí también podría, simplemente apuntaría hacia esta IP, aunque me parecería interesante saber cómo hostear todo un sistema distribuido en AWS

No encontre donde el entro para el balanceador de carga 😕

¿La base de datos se crea por otro lugar?

Tengo el siguiente problema
Your WSGIPath refers to a file that does not exist.

Unsuccessful command execution on instance id(s) ‘i-04c0ee77fd1cf764b’. Aborting the operation. No puedo hacer deploy

Alguien soluciono el error de “Your WSGIPath refers to a file that does not exist.”

Este error me da igual a mi : WSGIPath refers to a file that does not exist.

despues del deploy y segun veo al clonar el enlace https://github.com/mauropm/aws-platzi-python.git no incluye el archivo .ebextensions me da la impresion que clona los archivos del branch
como se puede solucionar esto?

Si tengo mi instancia en EC2 funcionando y luego quiero agregarla a un load balancer, se puede?

Otra vez yo. Si quieren conectarse por shh a su instancia que se crea al momento de crear la aplicación en elastic beantalk. Una vez en su entorno, verán del lado izquierdo la opción de configuración y hay dos opciones una llamada “Instancias” donde pueden agregarle a su instancia el grupo de seguridad que crearon anteriormente y luego entran a la opción de seguridad y ahí asignan la llave que ya habían creado y listo, así si se pueden conectar a su instancia por ssh.

NOTA: Al momento de asignar el nuevo grupo de seguridad, es necesario desmarcar el grupo anterior y dejar solo el que van a añadir.

¿Como me puedo conectar a la consola de una instancia creada a través de EB?
¿hay manera de generar un .pem para poder acceder a esta instancia?

Gracias

Hola tengo una duda que diferencias hay entre elastic Beanstalk y Elastic Container Service ??
Saludos

Mientras dure el update existe caída del servicio? Cual es la experiencia al usuario?

Una pregunta, todos estos servicios que estamos creando se encuentran en la capa gratuita ? lo digo porque fue obligatorio en mi caso entregar los datos de la tarjeta de crédito para confirmar la cuenta y poder crear la instancia de EC2.

Muchas gracias

Al crear el elastic beantalk, se crea una instancia de EC2, yo quiero acceder por medio de ssh a esa instancia, así que voy a la instancia, modifico los permisos Inbound del grupo de seguridad que se creo para esa instancia, agrego los protocolos ssh y que se pueda conectar desde cualquier ip. pero cuando me voy a conectar a ella me aparece el siguiente error:

Instance is not associated with a key pair

This instance is not associated with a key pair. Without a key pair you will need to log into this instance using a valid username and password combination.

Que parece lógico porque no hay una llave .pem que me permita conectarme por ssh, así como se creó la instancia directamente usando el servicio de EC2 y termina diciendo el error que sin esa llave debo entonces usar un usuario y contraseña, en un vídeo anterior dijiste que para esas instancias de amazon el usuario era “user” pero cual es la contraseña o como la puedo averiguar ?

Pues no me salió, ya hice varios intentos generando varios zip, algunos con las recomendaciones de varios hilos pero nada, ¿y aquí como se le hace?, ¿quien puede ayudar?, no hay soporte?, es solo pagar por el curso y ráscate con tu uñas?, soy nuevo así que no tengo experiencia en esta plataforma, si alguien ayuda, gracias.

Me sale este error:
24-01-2019 23:20:16 UTC-0500 ERROR Your WSGIPath refers to a file that does not exist.
como lo soluciono?

Y para crear un LoadBalancer sin BeanStalk?

Hola, si alguien se topa con este error al crear la app en elastic beanstalk:

–> aws Creating security group failed Reason: No default VPC for this user

Como el mismo lo indica, es porque no encontro el VPC por defecto en la zona en la que se encuentran.

En mi caso, la habia borrado, asi que tuve que volverla a crear como indica la documentación aca:
https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-vpc.

Espero le ayude a alguien por aca!

Genial!

Elastic Beanstalk es free tambien el primer año?

Elastic Beanstalk es una plataforma donde en pocos pasos tendrás una buen ambiente de producción sin complicarte tanto.

En capitulo se comio varias cosas el profe… que mal!

Gracias!

Me encanto esta clase, aprendí bastante.

para utilizar mysql junto con elastic beanstalk, debo de tenerlo separado verdad,
porque la maquina ec2 no lo tendra instalado por default?

Hola, como estasn. Alguien pudo solucionar el error “Your WSGIPath refers to a file that does not exist.”?

Tengo el mismo problema en el deploy: Your WSGIPath refers to a file that does not exist.
Ya trate la solucion abajo propuesta por @NovoPles, de adicionarar el requirements.txt y eliminar la carpeta .ebextensions, pero no funciono.
Alguien sabe como resolver esto?

Pueden evaluar crear de nuevo esta clase??? Muchos errores durante la presentación, lo cual genera confusión al realizar el laboratorio.! Mal para el profe.! Bien para los que apoyaron y compartieron pasos para la resolución.!

Super 😃

Según veo el Elastic Beanstalk viene siendo como un kubernetes administrado por Amazon, para yo montar mi proyecto y que ellos lo balanceen y escalen automáticamente no?

Los requisitos que Amazon necesita para una aplicación Python son:
1.- Nombre de aplicación=application.py
2.- Dentro del application.py también necesita el nombre de la variable = application.
Para los demás lenguajes como node.js o java, tambien necesita los mismos requisitos o existen otros??

estoy aprendiendo un montón!

Todo correcto!

Porque no usar siempre Elastic Beanstalk y no EC2, si la configuración de Elastic BeanStalk permite definir el tipo de instancia?

Hola me funciono cambiando en los requirements.txt si usas una versión actual de Python 3.8

Flask==2.0.3

Que bueno esta clase!!

La documentación oficial nos dice que preferiblemente creemos un entorno virtual dentro de la carpeta del proyecto e instalemos flask. Y que de manera obligatorio debemos crear un archivo llamado requirements.txt

pip freeze > requirements.txt

que es el que indica las dependencias que se van a instalar durante el proceso de deploy. Por tanto en el archivo zip para esta clase solamente debe ir la carpeta tamplates, el archivo requirements.txt y el archivo application.py

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-flask.html

Me sale este error Your WSGIPath refers to a file that does not exist.

Dato interesante 2021: cuando creas tu Elastic Beanstalk automáticamente te la crea con Load Balanced 😃

Hola a todos.
FYI: A la fecha ya el entorno viene balanceado por defecto, no hace falta modificar la capacidad, pero igual es util saber modificarlo.

Al fin

![](