Este tutorial está diseñado para guiar a quienes desean aprender más acerca de Amazon Web Services (AWS). Es ideal para un nivel medio.
Amazon Web Services (AWS) es la plataforma de servicios en la nube más amplia y adoptada globalmente, ofreciendo una vasta colección de servicios para construir y escalar cualquier tipo de aplicación. Esta guía de nivel intermedio explora los servicios fundamentales como EC2 (servidores virtuales), S3 (almacenamiento de objetos), Lambda (cómputo serverless), RDS (bases de datos relacionales gestionadas) y DynamoDB (base de datos NoSQL). Profundiza en conceptos clave como la infraestructura global (Regiones, Zonas de Disponibilidad), redes virtuales privadas (VPC, subredes, grupos de seguridad, tablas de ruteo), Gestión de Identidad y Acceso (IAM) para controlar permisos, y herramientas esenciales como la AWS CLI y la Consola de Administración. Permite diseñar, desplegar y gestionar recursos en la nube de AWS de forma estructurada, segura y eficiente.
El 'Hola, mundo' en AWS: crear un bucket S3 y subir un archivo simple utilizando la AWS CLI.
aws s3 mb s3://mi-primer-bucket-aws --region us-east-1
echo "Hola, mundo AWS" > saludo.txt
aws s3 cp saludo.txt s3://mi-primer-bucket-aws/
Resultado:
make_bucket: mi-primer-bucket-aws
upload: ./saludo.txt to s3://mi-primer-bucket-aws/saludo.txt
Familiarizarse con estos comandos es esencial para interactuar eficientemente con Amazon Web Services (AWS):
aws configure
aws configure list
aws s3 ls
aws s3 mb s3://nombre-unico-de-mi-bucket --region us-west-2
aws s3 cp /ruta/local/archivo.jpg s3://nombre-de-mi-bucket/fotos/archivo.jpg
aws s3 sync /ruta/local/directorio s3://nombre-de-mi-bucket/remoto/ --delete
aws ec2 run-instances --image-id ami-0abcdef1234567890 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-12345 --subnet-id subnet-abcdef1234567890 --region us-east-1
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running"
ssh -i MyKeyPair.pem ec2-user@<Direccion_IP_Publica_EC2>
aws ec2 create-security-group --group-name MyWebSecurityGroup --description "Allow web access" --vpc-id vpc-abcdef1234567890
aws ec2 authorize-security-group-ingress --group-id sg-12345 --protocol tcp --port 80 --cidr 0.0.0.0/0
aws dynamodb create-table --table-name Products --attribute-definitions AttributeName=Id,AttributeType=N --key-schema AttributeName=Id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=10
aws rds create-db-instance --db-instance-identifier my-pg-db --db-instance-class db.t3.micro --engine postgres --allocated-storage 20 --master-username admin --master-user-password mypassword --vpc-security-group-ids sg-12345 --db-subnet-group-name mydbsubnetgroup --backup-retention-period 7 --multi-az
aws iam create-user --user-name dev-user
aws iam create-policy --policy-name MyEC2ReadOnlyPolicy --policy-document file://ec2-readonly-policy.json
aws iam attach-user-policy --user-name dev-user --policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess
aws lambda update-function-code --function-name holaLambda --zip-file fileb://codigo.zip
aws logs filter-log-events --log-group-name /aws/lambda/holaLambda --start-time $(date -d '1 hour ago' +%s%3N)
aws cloudwatch put-metric-alarm --alarm-name "Lambda-Error-Alarm" --metric-name Errors --namespace AWS/Lambda --statistic Sum --period 300 --threshold 1 --comparison-operator GreaterThanOrEqualToThreshold --dimensions Name=FunctionName,Value=holaLambda --evaluation-periods 1 --alarm-actions arn:aws:sns:us-east-1:123456789012:my-sns-topic
Comprender estos conceptos fundamentales te ayudará a dominar Amazon Web Services (AWS) de forma más organizada y eficiente:
Infraestructura Global de AWS (Regiones y Zonas de Disponibilidad):
Comprender la estructura física de AWS: Regiones (áreas geográficas aisladas con múltiples centros de datos) y Zonas de Disponibilidad (AZs) dentro de cada Región (centros de datos separados con baja latencia) para construir aplicaciones altamente disponibles y tolerantes a fallos distribuyendo recursos en diferentes AZs.
Servicios de Cómputo Clave (EC2, Lambda, Contenedores con ECS/EKS):
Entender las opciones para ejecutar código: EC2 (Elastic Compute Cloud - IaaS, máquinas virtuales personalizables), Lambda (Serverless Compute - FaaS, código bajo demanda basado en eventos), y una mención a servicios de contenedores gestionados como ECS (Elastic Container Service) o EKS (Elastic Kubernetes Service).
Almacenamiento de Objetos (S3) y Bloques (EBS):
S3 (Simple Storage Service) es un almacenamiento de objetos duradero y escalable para archivos no estructurados (documentos, imágenes, backups). EBS (Elastic Block Store) proporciona volúmenes de almacenamiento a nivel de bloque para adjuntar a instancias EC2 (útil para sistemas de archivos, bases de datos en VMs).
Redes Virtuales Privadas (VPC):
Tu propia red virtual privada aislada en la nube de AWS. Comprender cómo crear una VPC, definir Subredes (asociadas a AZs), configurar Internet Gateways (para acceso a internet), Tablas de Ruteo para dirigir el tráfico entre subredes y a internet, y la distinción entre subredes públicas (con ruta a IGW) y privadas.
Seguridad de Red con Grupos de Seguridad y Network ACLs:
Controlar el tráfico de red hacia y desde tus recursos. Los Grupos de Seguridad actúan como firewalls virtuales a nivel de instancia (estado, permiten/deniegan tráfico). Las Network ACLs (Listas de Control de Acceso de Red) actúan como firewalls a nivel de subred (sin estado, permiten O deniegan tráfico).
Gestión de Identidad y Acceso (IAM):
El servicio fundamental para controlar quién (Usuarios, Grupos, Roles) tiene acceso a qué recursos de AWS y qué acciones puede realizar. Comprender Políticas (documentos JSON que definen permisos) y Roles (identidades que pueden ser asumidas por entidades para obtener permisos temporales).
Bases de Datos Gestionadas (RDS, DynamoDB, Aurora):
Servicios de base de datos como servicio. RDS (Relational Database Service) gestiona instancias de bases de datos relacionales populares (MySQL, PostgreSQL, etc.). DynamoDB es una base de datos NoSQL de clave-valor y documentos, escalable y de bajo latencia. Amazon Aurora es una base de datos relacional compatible con MySQL/PostgreSQL, optimizada para la nube.
Serverless (Lambda, API Gateway, SQS, SNS):
Un conjunto de servicios que te permiten construir aplicaciones altamente escalables sin gestionar servidores. Lambda (cómputo activado por eventos), API Gateway (puerta de enlace gestionada para APIs), SQS (Simple Queue Service - colas de mensajes), SNS (Simple Notification Service - servicio de publicación/suscripción para notificaciones).
Monitoreo, Logging y Alarmas (CloudWatch):
Amazon CloudWatch es el servicio central para la observabilidad en AWS. Recopila métricas de rendimiento de tus recursos y aplicaciones, permite crear dashboards y gráficos, configurar alarmas basadas en umbrales, y recopilar, buscar y analizar logs (CloudWatch Logs).
Facturación y Gestión de Costos:
Comprender el modelo de precios (pago por uso, precios por servicio y región). Utilizar herramientas como el Panel de Facturación, Cost Explorer para visualizar y analizar gastos, Presupuestos y Alarmas de Presupuesto para controlar y ser notificado sobre el gasto.
AWS Command Line Interface (CLI) y Consola de Administración:
Dominar el uso de la AWS CLI para automatizar y gestionar recursos desde la terminal, y la Consola de Administración basada en web para la configuración visual, monitoreo y exploración de servicios.
Algunos ejemplos de aplicaciones prácticas donde se utiliza Amazon Web Services (AWS):
Alojar y escalar aplicaciones web de varios niveles con alta disponibilidad y tolerancia a fallos:
Desplegar instancias EC2 en múltiples Zonas de Disponibilidad detrás de un Application Load Balancer (ALB), y utilizar una instancia RDS Multi-AZ para la base de datos.
Construir APIs RESTful serverless altamente escalables y de bajo costo:
Crear endpoints de API gestionados con API Gateway que activen funciones Lambda para la lógica de negocio, utilizando DynamoDB o RDS como base de datos.
Implementar autenticación y autorización granular para el acceso a recursos y acciones de AWS:
Definir Usuarios, Grupos y Roles en IAM con Políticas que otorguen los permisos mínimos necesarios, y asignar estos roles a usuarios o servicios (ej: dar permiso a una instancia EC2 para acceder a S3).
Diseñar, configurar y asegurar una red virtual privada (VPC) para la infraestructura en la nube:
Crear una VPC con subredes públicas y privadas en diferentes AZs, configurar tablas de ruteo para controlar el tráfico, y usar Grupos de Seguridad y Network ACLs para filtrar el tráfico a nivel de instancia y subred.
Almacenar, gestionar y servir grandes cantidades de archivos no estructurados de forma segura y económica:
Utilizar Amazon S3 con diferentes clases de almacenamiento (Standard, Intelligent-Tiering, Glacier) según los patrones de acceso, configurar políticas de bucket y gestionar el ciclo de vida de los objetos. Integrar con CloudFront (CDN) para distribución global de activos estáticos.
Implementar colas de mensajes (SQS) o publicación/suscripción (SNS) para desacoplar componentes de aplicaciones distribuidas:
Usar servicios de mensajería para permitir que diferentes partes de tu sistema (ej: microservicios, funciones Lambda) se comuniquen de forma asíncrona y escalable.
Configurar monitoreo proactivo, logging centralizado y alertas automáticas:
Utilizar CloudWatch para recopilar métricas de rendimiento y uso, crear dashboards personalizados, establecer alarmas basadas en umbrales (métricas, logs) y enviar notificaciones (SNS). Recopilar logs de aplicaciones y servicios con CloudWatch Logs.
Gestionar bases de datos relacionales o NoSQL gestionadas y escalables con opciones de alta disponibilidad:
Desplegar instancias de RDS (con Multi-AZ y Read Replicas si es necesario) o tablas de DynamoDB, configurando backups, monitoreo y escalabilidad gestionada.
Aquí tienes algunas recomendaciones para facilitar tus inicios en Amazon Web Services (AWS):
Enfócate en Aprender los Servicios Core Primero:
AWS tiene una vasta cantidad de servicios. Para empezar, concéntrate en dominar EC2 (VMs), S3 (almacenamiento de objetos), Lambda (serverless), VPC (redes), IAM (permisos), y una opción de base de datos (RDS o DynamoDB). Estos son los bloques fundamentales.
Domina IAM (Identidad y Acceso) - ¡Es Crucial!:
La seguridad es primordial en la nube. Entiende qué son Usuarios, Grupos, Roles y Políticas. Aprende a crear políticas con permisos específicos y a asignarlas correctamente. Sigue siempre el principio del mínimo privilegio: otorga solo los permisos necesarios.
Comprende la Infraestructura Global (Regiones y AZs):
Diseña tus arquitecturas pensando en la resiliencia. Implementa tus aplicaciones distribuyendo recursos (EC2 instances, bases de datos) en múltiples Zonas de Disponibilidad dentro de una Región para alta disponibilidad.
Familiarízate con la Redes VPC y Seguridad de Red:
Entiende cómo funcionan las VPCs, subredes (públicas/privadas), Tablas de Ruteo y, especialmente, los Grupos de Seguridad (firewalls a nivel de instancia) para controlar quién puede acceder a tus recursos a través de la red.
Presta Mucha Atención a la Facturación y Gestión de Costos:
El modelo de pago por uso puede ser complejo. Monitorea activamente tu gasto con el Panel de Facturación y el Explorador de Costos. Configura Presupuestos y Alarmas para recibir notificaciones si superas ciertos umbrales. Aprovecha el Nivel Gratuito para experimentar.
Usa la AWS CLI (y la Consola de Administración) de Forma Efectiva:
La CLI es poderosa para automatizar tareas y scripts. La Consola de Administración es excelente para explorar servicios, configurar recursos visualmente y monitorear. Utiliza ambas herramientas.
Explora las Opciones Serverless (Lambda, API Gateway):
Para muchas aplicaciones web modernas, APIs o tareas batch, los servicios serverless ofrecen escalabilidad automática y eficiencia de costos. Entiende cuándo son adecuados para tu caso de uso.
Elige la Base de Datos Correcta para tu Carga de Trabajo:
AWS ofrece una amplia gama de servicios de base de datos. Entiende las diferencias entre relacionales (RDS, Aurora) y NoSQL (DynamoDB, DocumentDB) y cuándo usar cada una basándote en los patrones de acceso a datos de tu aplicación.
Configura Monitoreo y Logging Básico con CloudWatch:
Utiliza CloudWatch para ver métricas de rendimiento de tus recursos (CPU, red, etc.) y CloudWatch Logs para recopilar y buscar logs de tus aplicaciones. Configura Alarmas básicas para ser notificado sobre problemas.
Empieza con el Nivel Gratuito (Free Tier) y Casos de Uso Simples:
Experimenta con AWS utilizando los recursos del Free Tier. Comienza con casos de uso sencillos como alojar un sitio web estático en S3, lanzar una instancia EC2 simple, o crear una función Lambda básica. Esto te ayudará a familiarizarte con los servicios principales.
Si te interesa Amazon Web Services (AWS), también podrías explorar estas herramientas:
Amplía tus conocimientos con estos enlaces y materiales: