Python y boto3 para listar buckets S3

Clase 10 de 52Curso de Big Data en AWS

Resumen

Potencia tus flujos de big data con Python y AWS desde un entorno en la nube listo para trabajar. Aquí verás cómo usar Cloud9, configurar una instancia de EC2 de bajo costo, y crear un script con boto3 para listar buckets en S3, apoyándote en la AWS SDK y la CLI.

¿Por qué usar Python y AWS para big data?

Python te permite orquestar recursos en la nube y aprovechar librerías de procesamiento de datos. Además, se integra de forma nativa con los servicios de AWS.

  • AWS ofrece SDKs para varios lenguajes: JavaScript, Python, PHP, .NET, Ruby, Go, Node.js, C++ y Java.
  • Con Python y la SDK puedes automatizar recursos de big data en AWS.
  • Librerías clave: Pandas, Anaconda, Pipenv, Pyenv para flexibilidad en transformación de datos.
  • Integración directa con servicios de big data en AWS usando boto3.

¿Cómo crear un IDE con Cloud9 en AWS?

Cloud9 es un IDE en la nube que te conecta a servicios de AWS sin configurar nada en local. Permite escribir, ejecutar y probar código con runners para múltiples lenguajes y terminal con AWS CLI.

¿Qué configuración de instancia conviene?

  • Crea un Environment con nombre descriptivo, por ejemplo: Platzi ENV.
  • Elige “Create Environment” y usa una instancia EC2 dedicada.
  • Selecciona instancia pequeña por costos: t2.micro en la capa gratuita.

¿Qué opciones de red y permisos aplicar?

  • Networking por defecto: VPC y subred de la región (por ejemplo, Virginia, us-east-1).
  • Asigna un IAM Role al Environment desde Cloud9: Actions > Instance Settings > Attach/Replace IAM Role.
  • El rol permite a Cloud9 interactuar con otros servicios de AWS con permisos controlados.

¿Cómo ahorrar costos en Cloud9?

  • Habilita el auto-stop por inactividad (por defecto, 30 minutos).
  • Puedes ajustar a horas, días o semana según uso.

¿Cómo ejecutar un script en Python con boto3 para S3?

Desde Cloud9, crea un archivo y usa boto3 para inicializar un cliente S3, pasar la región como argumento y listar buckets. Si olvidas el argumento, el runner marcará error: agrega la región (ej.: us-east-1) y ejecuta de nuevo.

  • Abre la terminal e interactúa con la AWS CLI: aws s3 ls para listar buckets.
  • Crea un archivo, por ejemplo: s3.py.
  • Importa las librerías necesarias: boto3 y sys.
  • Inicializa el cliente con region_name recibido como argumento.
  • Llama a list_buckets() y imprime la respuesta en formato JSON.
# s3.py
import sys
import boto3

# Región como primer argumento: us-east-1, eu-west-1, etc.
region = sys.argv[1]

# Cliente de S3 inicializado con región dinámica
s3 = boto3.client('s3', region_name=region)

# Listar buckets y mostrar respuesta
response = s3.list_buckets()
print(response)

Ejecuta el script desde el runner de Python en Cloud9 o desde la terminal:

python s3.py us-east-1

Más opciones útiles en Cloud9: - Usa el panel de runners para seleccionar el lenguaje de ejecución. - Cambia a bash para comandos de la CLI cuando lo prefieras. - Verifica la instancia EC2 creada automáticamente al aprovisionar Cloud9.

¿Quieres que revisemos permisos detallados del IAM Role o extender el script para crear y borrar buckets? Cuéntame en comentarios qué necesitas construir.