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 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

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Creando un ambiente en Elastic Beanstalk

15/36
Recursos

Aportes 80

Preguntas 46

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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

RT: @davidegc
Les comparto el archivo funcionando

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

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)

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

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.

Creo que es hora de acualizar este curso.

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> [email protected]<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

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.

La version del profe no funciona actualmente.

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).

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

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.

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.

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?

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…

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?

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

![](