se salen del editor con ctrl+z
Introducción al cómputo en la nube
¿Qué es el cómputo en la nube?
¿Cómo puedo empezar a usar AWS?
Introducción a la oferta de servicios de AWS y sus aplicaciones
Introducción a la oferta de AWS y sus interacciones
Ejemplo de arquitectura con Elastic Beanstalk
¿Qué es Amazon EC2?
Creando una instancia de EC2
Conectándonos a nuestra instancia desde Windows
Conectándonos a nuestra instancia desde Linux
Conectándonos a nuestra instancia desde OSX
Subiendo un proyecto: Clonando un repositorio de GitHub a nuestra Instancia de EC2
Subiendo un proyecto a nuestra instancia de EC2: Ejecutar nuestro proyecto
¿Qué es Lambda y Serverless?
Creando una función Lambda
Elastic Beanstalk
Conociendo Elastic Beanstalk
Creando un ambiente en Elastic Beanstalk
Almacenamiento - S3
Almacenamiento con S3: Contenido Estatico
Almacenamiento con Glacier: Contenido duradero
Bases de Datos
Bases de Datos - RDS Aurora PG
Conociendo RDS PG
Creando una base de datos Platzi DB
Haciendo una migración a RDS PG
Conociendo Aurora PG (Postgres)
Haciendo una migración a Aurora DB
Mejores prácticas de Bases de Datos y RDS
Redes
Redes - Route53
Herramientas de administración
Herramientas de administración - IAM
Utilizando IAM
CloudWatch
CloudTrail
Seguridad
Certificate manager
GuardDuty
Bonus
AWS Rekognition
Creando nuestro servicio de Postgres
Accediendo a nuestra base de datos Postgres
Cierre del curso
Conclusiones del curso de Fundamentos de AWS Cloud
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Mauro Parra Miranda
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 112
Preguntas 46
se salen del editor con ctrl+z
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
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
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)
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
sudo apt update
sudo apt install python3-pip
pip3 --version
pip3 install flask
python3 app.py
Para instalar pip en:
sudo yum install python-pip
Para instalar flask:
pip install flask
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.
Si les da el error “code 400, message Bad request syntax”, cambien la URL de https a http.
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)
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.
Si te aparecer error al tratar de instalar FLASK
sudo su
yum install python-pip
pip install flask
Mucho éxito!
Ni abriendo todos los puertos se conecta.
¿Alguien con el mismo problema y que lo haya podido resolver?
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.
Si no reconoce el comando:
python app.py
pueden usar el comando:
python3 app.py
deacuerdo a la vercion de python que tenagamos
No es necesario instalar el pip solo pongan de esta manera
pip3 install flask
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!!!
Yo uso el editor nano, me parece mas sencillo
No pude correrlo cambiando a mi IP
Me sale un error 400 al ejecutarlo 😦
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 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
¿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] ubuntu@[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
root@ip-172-31-23-67 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
como aporte: los comandos de este tipo de linux que es centos el comando:
iniciar paquetes es: yum
para usuario root: sudo su
para instar algo es: yum install <lo que necesite>
para instalar librerías de python es con pip: pip install <librería que necesiten>
que genial, practica de los últimos 3, enserio aprendí mucho
Tambien pueden usar:
pip3 install flask
Ya no hay pip, ahora es pip3
Por fin no me gustó Digital Ocean , me parecen muy engorrosos
Me emociona porfin desplegar mis proyectos en Django
Ctrl-D para salir de root
Con Ctrl-D salen del modo ROOT
Solo como aporte en un proyecto python para produccion no es buena practica desplegar un servidor como flask ya que este solo es para desarrollo, para produccion se podria usar un servidor como gunicorn
no me conectaba cuando solo ponia la ip despues de configurar security groups
*habia olvidado poner el puerto
54.207.229.88: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>
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!
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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?