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 (Postgress)

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

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

11/36
Recursos

Ahora que clonamos nuestro repositorio, vamos a instalar las dependencias necesarias para que funcione. El proyecto que trabajamos en clase sólo necesita una dependencia:

# Permisos de super usuario
sudo su
# Instalación de flask
pip install flask

Con las dependencias instaladas podemos correr nuestro servidor, en el caso de nuestro proyecto es con el siguiente comando:

python app.py

Para acceder por internet a nuestro servidor tenemos que buscar nuestra instancia de EC2 y copiar la IP pública, pero no es suficiente. Debemos entrar a Security Groups, Inbound y añadir una regla Custom TCP Rule, escribe el puerto en el que corre tu servidor (que para nuestro proyecto es el 5000) y en la opción Source elije Anywhere.

Recuerda que para encontrar tu IP pública puedes entrar a whatismyip.com.

Aportes 107

Preguntas 29

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

se salen del editor con ctrl+z

Se puede instalar flask en un entorno debian o ubuntu de la siguiente manera:

# Instalar pip primeramente
sudo apt-get install python-pip
# Instalar flask
sudo pip install flask

Si les aparece lo siguiente al tratar de instalar flask:

bash: pip: command not found

Se puede instalar pip con el siguiente comando:

easy_install pip

Para correr en otro puerto, tan solo lo agregamos como parámetro.
Tengan en cuenta que el puerto no este en uso por otro servicio (por ejemplo, Apache)

app.run("0.0.0.0", port=8080, debug=False)

En mi caso no tenia el pip, por lo tanto lo instale con el comando
sudo easy_install pip o con sudo yum install python-pip también debería funcionar

Instalar LAMP (Linux, Apache, MySQL, PHP) en AWS

Yo lo instale siguiendo estos pasos ya la tengo lista http://13.58.65.91/info.php pronto lo usare para un proyecto … quizas les sirva de apoyo, este fue instalado en aws ubutu server 16.044

Paso 1. Instalar Apache
$ sudo apt-get update
$ sudo apt-get install apache2

Para verificar que se haya instalado apache escribimos en la url de nuestro navegador el dominio, IP o DNS de nuestra instancia.
En el navegador colocar la direccion ip publica: https://ip_publica
Deberia mostrar una pagina donde muestrara datos de UBUNTU APACHE

Importante: SI NO muestra nada puede que no tenga habilitado en el grupo de seguridad de AWS (instacias) el puerto 80 y 443, verificar que este habilitado.

Paso 2. Instalar MySQL
sudo apt-get install mysql-server

Paso 3. Instalar PHP
$ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
$ sudo systemctl restart apache2
Paso 4. Verificar que se allá instalado PHP
En nuestra terminal corremos el siguiente comando para crear y editar el archivo info.php
$ sudo nano /var/www/html/info.php
Dentro del archivo generamos el siguiente script
<?php
phpinfo();
?>
Por ultimo tecleamos en la URL de nuestro navegador la IP de nuestro servidor.
http://ip_publica/info.php

y nos debe de aparecer una pantalla mostrando los datos de php, cualquier aporte es util.
http://13.58.65.91/info.php

Aquí encontré un pequeña guía de los comandos de emacs

Cuando ejecutas Flask pierdes el promt de la consola de nuestra instancia. Para mandarla a segundo plano podemos hacer lo siguiente.
1.- Presionamos las teclas CTRL + Z
2.- Escribimos el comando bg %1
3.- Nos saldrá un mensaje parecido a este:

~/aws-platzi-python$ bg %1
[1]+ python app.py &

Ya tendremos ejecutando nuestro servidor web con Flask y ademas podremos seguir trabajando con la consola de nuestro servidor.

En el caso de que queramos pararlo. Podemos buscar el proceso con el comando:

ps -ef |grep -i python

Y nos saldrá algo como esto:

ubuntu   13673 11639  0 17:57 pts/0    00:00:00 python app.py

Lo que nos interesa a nosotros es el primer número que sale. Ya que es el PID (Identificador de nuestro proceso de Flask) de nuestro proceso llamado “python app.py”

Para “matarlo” (finalizar proceso) podemos ejecutar:

kill -9 13673

Ese segundo número debe ser el PID varia dependiendo de cada uno. En mi caso es 13673 pero vosotros deberéis copiar el PID que os haya dado resultado en el comando anterior.

Para instalar pip en:

sudo yum install python-pip

Para instalar flask:

pip install flask

TENGO UNA DUDA;

Despues de un dia, la pagina se cae o no hay conexion, a que se debe?

como salir del editor después de entrar en emacs -nw app.py?

se puede ejecutar el proyecto de desarrollo web? en el caso que se pueda con que puerto seria, gracias

Todo perfecto

Tengo un tutorial que hice hace un tiempo, quisiera que lo vieran y si me pudieran dar feedback seria genial. Recuerden que aprendemos más cuando enseñamos a otros lo que sabemos. Como instalar Apache, PHP y hacer depaloy con Git y Github con servidor en AWS y CentOS

Entiendo que el curso es orientado a AWS y segun parece se debe de tener algo de background en el mundo linux (lo cual debieron indicar al iniciar el curso), pero alguien me puede indicar cómo cerrar el editor emacs?

Estoy trabajando desde una terminal de MacOS.

Ni abriendo todos los puertos se conecta.
¿Alguien con el mismo problema y que lo haya podido resolver?

Si les da el error “code 400, message Bad request syntax”, cambien la URL de https a http.

Me sale un error 400 al ejecutarlo 😦

Si te aparecer error al tratar de instalar FLASK

sudo su
yum install python-pip
pip install flask

Mucho éxito!

En servidores de Node pueden obtener el puerto del evironment usando app.get("port"), de esa manera no tienen que modificar el código, y simplemente en Linux se hace un export PORT_NUMBER para establecer el puerto:D

excelente clase! logre tener mi mini server en flask arriba… ahora, como hago para que esto quede corriendo siempre.
Quiero hacer una API Rest y necesito que siempre este up

Clara y sencilla explicación de cómo ejecutar un proyecto usando los servidores que nos provee Amazon, muchas gracias por la compartir el método para realizarlo instructor Mauro.

cómo se configuraría el puerto “por defecto” (para que no sea necesario indicar el puerto simplemente el dominio.com) en una aplicación de node ? Gracias ! 😄

Se puede subir una aplicación de python que corren en escritorio al EC2 y poder acceder a el desde la ip?

Se ejecuto perfecto, sin problemas. Gracias!

Como se salio del editor?, me parece que uso una combinación de teclas pero no se, gracias.

¿ Quien esta sirviendo los archivos estáticos ? en este caso

Es muy importante ejecutar el comando “python app.py” y dejarlo ahí, no presionar el “Ctrl + C” porque entonces detienes el servicio, luego si haces lo de las reglas y luego abres el navegador como se menciona en el vídeo.

¿Cómo mantienen la persistencia del servidor una vez termine la sesión?

Luego de ejecutar los comandos recomiendo ctrl+l para limpiar la consola dentro del MobaXterm más rápido .

Genial! Me corrió sin ningún error

Con las dependencias instaladas podemos correr nuestro servidor, en el caso de nuestro proyecto es con el siguiente comando:

python app.py
Para acceder por internet a nuestro servidor tenemos que buscar nuestra instancia de EC2 y copiar la IP pública, pero no es suficiente. Debemos entrar a Security Groups, Inbound y añadir una regla Custom TCP Rule, escribe el puerto en el que corre tu servidor (que para nuestro proyecto es el 5000) y en la opción Source elije Anywhere.

Recuerda que para encontrar tu IP pública puedes entrar a whatismyip.com.

Ahora que clonamos nuestro repositorio, vamos a instalar las dependencias necesarias para que funcione. El proyecto que trabajamos en clase sólo necesita una dependencia:

<h1>Permisos de super usuario</h1>

sudo su

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

pip install flask

Python usa el puerto 5000 por emision

ctrl + z para salir del script de py del emacs

Bueno no se si sera tu caso pero aqui lo dejo por si alguien lo necesita.

Yo me instale una maquina free de Ubuntu.

Para poder entrar en los pasos anteriores a la maquina , tuve que conectarme de esta manera:

ssh -i [nombre del .pem] [email protected][Public DNS (IPv4)] , dependiendo la maquina es el usuario el que cambia.

https://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectingSSH , en este link aparece los user de las diferentes distribuciones.

Una vez adentro , no me funciono el comando de yum , asi que lo hice de la manera larga se podria decir.

No olvidar que con “sudo yu” , te vuelves super usuario para instalar.
Comandos en la terminal:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
git --version

Y con eso ya tienes acceso a tu maquina Ubuntu y tendras instalado Git.

En el caso de un proyecto Java , tendras que instalar el JDK del proyecto , y en caso de Spring , adicional el control de dependencias , en mi caso Maven para realizar el levantamiento del proyecto.

Me gustó mucho la explicación !!!

Entre las cosas que hacen falta es lo siguiente :

sudo yum -y install python-pip

Si tienen este error

[email protected] aws-platzi-python]# pip install flask
Traceback (most recent call last):
  File "/usr/bin/pip", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3049, in <module>
    @_call_aside
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3033, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3062, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 660, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 673, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 858, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==9.0.3' distribution was not found and is required by the application


Una de las soluciones es

[root@ip-172-31-23-67 aws-platzi-python]# sudo easy_install pip==9.0.3

no me conectaba cuando solo ponia la ip despues de configurar security groups

*habia olvidado poner el puerto
54.207.229.88:5000

Me paso que no lograba configurar el grupo de seguridad de la consola aws, por si les sirve es cuestión de agregar dos reglas de TCP Personalizadas, una con ipv4 y otra con ipv6 (ambas para el puerto 5000)

Si pude… buen profesor…

Yo recomiendo primero installar en la maquina virtual un ambiente virtual (virtualenv) de python para realizar la instalacion de flask y otros modulos que vayan a requerir para este u otros proyectos. de esta manera mantienes mejor el uso de memoria y disco ademas de mejor proceso de administracion entre modulos.

$ pip3 install virtualenv
$ virtualenv env
$ source env/bin/activate

y ahora podran instalar flask.
(env)$ pip install flask

Para solucionar problemas iniciales utilizando “pip” se puede usar “pip3” en su lugar de la siguiente manera

pip3 install flask

y de igual manera para ejecutar archivos

python3 app.py

Me parece que esto es por la versión de python y la forma en la que viene instalado para el SO, si no se quiere esto en otros comentarios hay alternativas para realizarlo como en el video, Saludos!

CTRL+D para salir de ser root

Para que no tengan que cambiar de usuario a usuario root para ejecutar los comando pueden hacer asi desde el usuario ec2-user

sudo -s command

eso lo que hace es ejecutar el command como root

Al momento de crear nuevas reglas Ingress en el firewall de AWS mediante grupos de seguridad, si estamos incorporándola en un grupo de seguridad existente, puede ser buena idea actualizar la información del grupo para visibilizar las nuevas aplicaciones/servicios agregados, de esta manera mantenemos la documentación al día para todos los administradores del sistema; alternativamente, podemos crear un nuevo grupo para servicios de contenido Web y en el adicionar los puertos que sean necesarios.

Me pasó que no me dejaba usar el manejador de dependencias de python, intenté instalar pip con apt-get pero al AWS un CentOS modificado, hay que usar yum. Por lo tanto, se pone de la siguiente manera:

sudo su 
yum install pyhton pip

Luego, ya deja instalar flask

pip install flask

Súper interesante la clase

recomiendo mejor aprender a usar vim en vez de emacs, vim ya viene por defecto en multiples plataformas deribadas de debian, asi que casi siempre (recordemos que ubuntu es el SO mas usado para redes) tendras vim para trabajar

Vaya toalla!! La serpiente es venenosa! jajajajajaja

No me reconocía PIP, así que se pudo instalar desde root con:

yum -y install python-pip

pip install flask nunca funcione, y no se por que yum no desinstala la version 2.7 para instalar una mas nueva

Si estas usando GIT para tu configuración y por algún motivo te sale en la consola lo siguiente al tratar de instalar flask:

bash: pip: command not found

Intenta instalar pip con el siguiente comando:

yum install python-pip

Espero te sirva.

Yo por mi parte estaba instanciando una MV ubuntu 20.04, para la instalacion de pip: utilice el comando:

sudo apt-get install python3-pip

Todo, funciono correctamente. Intentare levantar con otras instancias a ver que tal . Excelente

La AMI Amazon Linux y ano esta disponible, yo utilice la Amazon linux 2 y al momento de correr pip install flash me sale.
bas: pip: commmand not found. intente buscar en la documentación de aws, pero no logre instalarlo.

Intalar primero el pip

<$ sudo yum install python-pip>

¿Cual es el navegador?

Si seleccionan la opción My IP en Source Amazon automáticamente lo carga con la ip que tenemos asignada.

al volver a iniciar la sesión en la terminal me sale este error:

Session stopped
- Press <return> to exit tab
- Press R to restart session
- Press S to save terminal output to file

Network error: Connection timed out

super!

Estoy llevando este curso junto al de jenkins.

Resulta que para el EC2 que usamos aqui la configuracion es un poco distinta y es porque se trata de un CentOS modificado (Gracias a este curso logre saberlo) y entonces la forma adecuada fue: Jenkins on AWS

Si usas una instancia con Ubuntu 18.04. puedes usar el comando “apt search flask” para buscar como se llama el paquete que instala flask. Con eso te das cuenta que el paquete se llama python-flask y lo instalas con la orden “sudo apt install python-flask”.

awesome!

Una consulta sobre los distintos servicios de Cloud, cual de todos los servicios que existen son los mejores en comparación costo valor?? Yo tengo una cuenta en AWS pero no se si es de los más económicos.

Buen dia, no me deja conectar a la pagina, configuro que el ec2 permita conexiones por tcp pero no se logra conectar, le hago un ping a la pagina y tampoco responde, la maquina ec2 tiene corriendo el aplicativo por el puerto 5000.
soy nuevo y no he podido adjuntar la imagen, agradezco su oportuna respuesta.

hola @mauro, desearia sabar porque haces correr el programa con el usuario ec2-user y no con usuario root, con cual usuario es bueno hacerlo correr la app…?,

  • realize el ejemplo que mostras ahi, y corre bien pero al no tener actividad la app cae, averigue un poco y mencioanan a supervisor, podrias indicarnos por favor como configurar a supervisor para flask y django

de ante mano gracias, esta bueno el curso

Por el momento va todo cool

Excelente

por si alguien esta usando Django
python3 manage.py runserver 0.0.0.0:5000

Que interesante y útil… y barato ademas…

super! todo ok

Done.!!! Works…

What’s the difference between 127.0.0.1 and 0.0.0.0?

  • 127.0.0.1 is the loopback address (also known as localhost).

  • 0.0.0.0 is a non-routable meta-address used to designate an invalid, unknown or non applicable target (a no particular address placeholder).

Source: https://superuser.com/questions/949428/whats-the-difference-between-127-0-0-1-and-0-0-0-0

Cual es el comando para ejecutar un proyecto web?

Genial funciona correctamente!

Hola, estoy intentando levantar un server EC2, quiero instalar un Angular con el npm i g @angular/cli pero no me lo permite me da varios errores sera que alguien ya lo intento y le funciono???

Muchas gracias

Exito Funciona bien.

Resulta que he intentado varias veces, siguiendo los pasos tal cual, y poniendo la IP de la instancia y la ruta. no ejecuta el proyecto de ejemplo del video.
He notado que solo aparece un error, y es al instalar el git (yum install git), en donde dice:
processing Dependency: perl(Error) for package: git-2.14.6-1.61.amzn1.x86_64.
agradecería una respuesta

Listo, funcionando.

Listo, funciono !!

Perfecto!! 😄

wooow que gran posiblidad

Perfecto!

Listo 😃 super.

Muy buen ejemplo y es funcional, en mi caso tuve que instalar el pip !!

Gracias

Respuesta a:
Subiendo un proyecto a nuestra instancia de EC2: Ejecutar nuestro proyecto
Si les aparece lo siguiente al tratar de instalar flask:

bash: pip: command not found

Se puede instalar pip con el siguiente comando:

easy_install pip

Jorge Andres
andarroyave

Gracias!

ok,

Está muy interesante, quisiera saber si hay otro curso parecido donde hablen bastante más sobre conceptos, acerca de IP publica/privada, DNS, puertos, http/https, etc. Me gustaría mucho profundizar en esos puntos. Gracias.

Excelente!

pip install flask ----> pip manejador de dependencias de python; flask dependencia que necesitamos

Me funciono correctamente, pero ahora como lo quito y para poner otro proyecto?

Excelente curso se aprende muchísimo

Extremadamente riesgoso instalar algo desde el usuario root, mucho mejor es, y de hecho es la practica más recomendada el instalar algo con sudo desde el usuario sudorers, p.ej.

ubuntu@ip-172-31-17-80:~$ sudo pip install flask

siendo ubuntu el sudoers

No pude correrlo cambiando a mi IP

Crear un bot de telegram y montarlo en una maquina virtual de amazon increible!

Si no les deja ejecutar

pip install flask

quizas sea por que no esta instalado python pip.
para instalar pip primero agregamos el repositorio EPEL (siempre ejecutando como sudo su)

yum install epel-release

Si te da error es por que es la imagen de amazon y quizas necesitas este comando

amazon-linux-extras install epel

Una vez instalado epel, instalamos pip

yum install python-pip

con ello ya podemos instalar flask

pip install flask

Espero les sirva!!!

me sale este mensaje y baja los módulos y en consecuencia no corre el ejemplo .

[[email protected]-172-31-17-168 aws-platzi-python]# python app.py
Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from flask import Flask, flash, redirect, render_template, request, session, abort
ImportError: No module named flask
[[email protected]-172-31-17-168 aws-platzi-python]#