Versión imprimible multipagina. Haga click aquí para imprimir.
Datos y aplicaciones
- 1: Pandas
- 2: AWS
- 2.1: AWS CLI
- 2.2: EC2
- 2.3: S3
- 2.4: Jupyter en EC2
- 3: Hugging Face
- 4: Proyecto 4
1 - Pandas
Documentación
Ejemplos para practicar
2 - AWS
2.1 - AWS CLI
Documentación
- hhttps://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html
Qué es
El AWS CLI es una herramienta unificada para administrar sus servicios de AWS. Con él, puede controlar múltiples servicios de AWS desde la línea de comandos y automatizarlos a través de scripts.
Instalación
Sigue las instrucciones de tu sistema operativo https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
También puedes instalarlo con pip
$ pip install awscli --upgrade --user
Configuración
Ejecuta el comando aws configure
y sigue las instrucciones o crea el archivo de configuración manualmente.
Copia las credenciales que te da el lab (AWS Deails > AWS CLI > Show
) en
- Linus y Max:
~/.aws/credentials
- Windows:
C:\Users\USERNAME\.aws\credentials
Ejemplos de Uso Comunes
EC2
Listar todas las instancias EC2 en una región
aws ec2 describe-instances
Iniciar una instancia EC2
aws ec2 start-instances --instance-ids i-1234567890abcdef0
Detener una instancia EC2
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
S3
Listar todos los buckets
aws s3 ls
Copiar un archivo al bucket
aws s3 cp myfile.txt s3://my-bucket/
Sincronizar un directorio local con un bucket S3
aws s3 sync my-folder/ s3://my-bucket/
Lambda
- Invocar una función Lambda
aws lambda invoke --function-name my-function --payload '{"key": "value"}' outputfile.txt
CloudFormation
- Crear una pila
aws cloudformation create-stack --stack-name my-new-stack --template-body file://my-cloudformation-template.yaml
2.2 - EC2
Qué es EC2
EC2 es un servicio de computación en la nube de Amazon Web Services. Permite crear instancias de máquinas virtuales en la nube. Las instancias se organizan en regiones.
Acceso a una instancia EC2
import boto3
ec2 = boto3.resource('ec2')
# Describe instances
instances = ec2.instances.filter(
Filters=[{'Name': 'instance-state-name', 'Values': ['running']}])
for instance in instances:
print(instance.id, instance.instance_type)
# stop instance
ec2.instances.filter(InstanceIds=['i-1234567890abcdef0']).stop()
# start instance
ec2.instances.filter(InstanceIds=['i-1234567890abcdef0']).start()
# terminate instance
ec2.instances.filter(InstanceIds=['i-1234567890abcdef0']).terminate()
2.3 - S3
Documentación
Qué es S3
S3 es un servicio de almacenamiento de objetos de Amazon Web Services. Los objetos son archivos y sus metadatos. Los objetos se organizan en buckets. Los buckets se organizan en regiones.
Creación de un bucket S3
Uso con Python
import boto3
# Retrieve the list of existing buckets
s3 = boto3.client('s3')
response = s3.list_buckets()
# Output the bucket names
print('Existing buckets:')
for bucket in response['Buckets']:
print(f' {bucket["Name"]}')
# upload file
# s3_client.upload_file(file_name, bucket, object_name)
s3.upload_file('test.txt', 'curso-py-iot', 'test.txt')
2.4 - Jupyter en EC2
Documentación
Pasos
- Crear una instancia EC2 con AWS AMI Linux
- Añadir regla de entrada en el grupo de seguridad para permitir el acceso al puerto 8888 desde cualquier IP
- Conectarse por SSH a la instancia
- Crear carpeta, preparar entorno e instalar jupyter
$ mkdir jupyter
$ cd jupyter
$ python3 -m venv env
$ source env/bin/activate
$ pip install jupyter
- Generar contraseña para jupyter
$ jupyter notebook password
- Lanzar jupyter
$ jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser
- Acceder a la instancia desde el navegador con la IP pública de la instancia y el puerto 8888
- Para parar jupyter, pulsar Ctrl+C
3 - Hugging Face
Documentación
Hugging Face For Education
4 - Proyecto 4
Descripción
Este será un proyecto personal para poner en práctica lo aprendido en las sesiones anteriores. Se trata de un proyecto libre a partir de un conjunto de datos que tienes que buscar y analizar.
El objetivo de este proyecto es desarrollar una aplicación web utilizando Streamlit que permita a los usuarios explorar, analizar y visualizar datos de un dataset de tu interés. Usarás Pandas para manipular y analizar el dataset, y Plotly para crear visualizaciones interactivas.
Requisitos:
Dataset: Elegir un conjunto de datos de tu interés. Podría ser, por ejemplo, un dataset sobre tasas de enfermedades, estadísticas de hospitales, etc. El conjunto de datos debe tener suficiente complejidad como para permitir análisis y visualizaciones interesantes.
Funcionalidades de la Aplicación Streamlit:
- Carga del dataset y visualización inicial.
- Opciones para filtrar los datos según diferentes variables (por ejemplo, por año, región, enfermedad, etc.).
- Utilizar Pandas para realizar los análisis estadístico en el dataset.
Visualización con Plotly:
- Crear diferentes tipos de gráficos interactivos con Plotly (por ejemplo, un gráfico de barras y un mapa de calor).
Despliegue en Streamlit Sharing