Esto lo hicimos durante clases. Puede consutar más detalles en la documentación oficial
Se recomienda trabajar con instancia de Ubuntu. Su creación la puede realizar según lo hicimos en clases pero abriendo puertos adicionales para poder acceder a su aplicación Web.
Una vez creada su instancia EC2, dirijase a pestaña de Seguridad para poder acceder a su grupo de seguridad (referencia).
En la vista de su grupo de seguridad, dirijase al apartado de Reglas de entrada, y de click en Editar reglas de entrada.
Debe agregar reglas para los puertos 80 y 8080 como se muestra aquí.
Caution
Esta configuración es solo didáctica, no se recomienda dejar abiertos estos puertos para todas las IPs a menos que su app implemente mecanismos de seguridad robustos.
Antes de poder usar las funciones de S3, debe configurar AWS en la instancia EC2 donde desplegará su app según se especifica en la sección de configuración.
Para crear su clave de acceso, debe seguir las instrucciones de To create an access key especificada en la documentación oficial.
Esta app se ha escrito como una Prueba de Concepto solamente.
Al ser una aplicación en Flask, se ha usado el AWS SDK para Python, boto3, puede acceder a código de ejemplo que satisface los requerimientos de proyecto en la documentación oficial del SDK.
La aplicación provee una interfaz sin estilos ya que no es parte de los requerimientos para la elaboración de su proyecto. Esta versión solo muestra archivos en un bucket S3 y permite cargar nuevos, para su proyecto se debe agregar la opción de descarga.
Para ejecutar esta app, se debe especificar el puerto sobre el que se levantará el servidor en ambiente de desarrollo:
Se asume que tiene instalado Python3 y pip, los siguientes comandos deben ejecutarse en a carpeta de este proyecto.
# Instalar virtualenv
pip install virtualenv
# Crear ambiente virtual
virtualenv venv
# Inicializar virtualenv
source ./venv/bin/activate
# Instalar Flask y boto3
pip install Flask
pip install boto3
# Iniciar web server
flask run --host=0.0.0.0 --port=8080