AWS Básico — Servicios Core para Desarrolladores
Guía práctica de servicios core de AWS para desarrolladores: compute, storage, bases de datos, networking y fundamentos de seguridad con ejemplos hands-on.
Nota para desarrolladores hispanohablantes: Esta guía incluye ejemplos y convenciones de nomenclatura adaptadas a equipos que trabajan en español. Cuando existen diferencias significativas en terminología técnica entre el inglés y el español, se indican explícitamente para facilitar la comunicación en equipos multiculturales.
Overview
Amazon Web Services (AWS) es la plataforma cloud más adoptada, ofreciendo más de 200 servicios. Para desarrolladores, dominar los servicios core — compute, storage, bases de datos, networking y seguridad — es esencial para construir aplicaciones escalables y rentables. Esta guía se enfoca en los servicios que usarás diariamente y cómo encajan en una arquitectura típica.
When to Use
- Estás migrando de on-premises a cloud
- Necesitas compute escalable sin gestionar hardware
- Quieres bases de datos y storage gestionados
- Estás construyendo arquitecturas serverless o microservicios
Compute — EC2 y Lambda
EC2 (Elastic Compute Cloud)
Servidores virtuales en la cloud con control total del SO.
# Lanzar una instancia vía CLI
aws ec2 run-instances \
--image-id ami-0c55b159cbfafe1f0 \
--count 1 \
--instance-type t3.micro \
--key-name my-key \
--security-group-ids sg-123456 \
--subnet-id subnet-123456
| Familia de Instancia | Caso de Uso |
|---|---|
| T3/T4g | General purpose, burst (dev/test) |
| M6i/M6g | General purpose, cargas sostenidas |
| C6i/C6g | Intensivo en compute (APIs, batch) |
| R6i/R6g | Intensivo en memoria (caches, analytics) |
Lambda
Funciones serverless que ejecutan en respuesta a eventos. Pagas por invocación y duración.
import json
def handler(event, context):
return {
'statusCode': 200,
'body': json.dumps({'message': 'Hello from Lambda'})
}
Lambda se integra con S3, API Gateway, SQS, SNS, DynamoDB streams y CloudWatch Events.
Storage — S3 y EBS
S3 (Simple Storage Service)
Storage de objetos para archivos, backups, assets estáticos y data lakes.
# Crear un bucket
aws s3 mb s3://my-app-bucket
# Subir un archivo
aws s3 cp app.zip s3://my-app-bucket/builds/
# Hacer público (con precaución)
aws s3api put-object-acl --bucket my-app-bucket --key app.zip --acl public-read
| Clase de Storage | Caso de Uso | Recuperación |
|---|---|---|
| Standard | Acceso frecuente | Inmediata |
| Intelligent-Tiering | Patrones de acceso desconocidos | Inmediata |
| Glacier | Archivos a largo plazo | Minutos a horas |
| Deep Archive | Backups de compliance | 12-48 horas |
EBS (Elastic Block Store)
Storage de bloque persistente para instancias EC2. Como un disco duro virtual.
# Crear y adjuntar un volumen
aws ec2 create-volume --size 100 --region us-east-1 --availability-zone us-east-1a --volume-type gp3
aws ec2 attach-volume --volume-id vol-12345 --instance-id i-12345 --device /dev/sdf
Bases de Datos — RDS y DynamoDB
RDS (Relational Database Service)
PostgreSQL, MySQL, MariaDB, SQL Server y Oracle gestionados.
# Crear una instancia PostgreSQL
aws rds create-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.t3.micro \
--engine postgres \
--master-username admin \
--master-user-password secret123 \
--allocated-storage 20
DynamoDB
Base de datos NoSQL gestionada con latencia de milisegundos de un solo dígito.
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Users')
table.put_item(Item={'id': 'user-1', 'name': 'Alice', 'email': 'alice@example.com'})
response = table.get_item(Key={'id': 'user-1'})
Networking — VPC
Virtual Private Cloud aisla tus recursos y controla el tráfico.
┌─────────────────────────────────────────────┐
│ VPC │
│ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Public Subnet│ │ Private Subnet │ │
│ │ ┌───────┐ │ │ ┌───────┐ ┌─────┐ │ │
│ │ │ ALB │ │ │ │ EC2 │ │ RDS │ │ │
│ │ └───┬───┘ │ │ └───┬───┘ └──┬──┘ │ │
│ │ │ │ │ │ │ │ │
│ │ Internet │ │ NAT Gateway │ │
│ │ Gateway │ │ (egress only) │ │
│ └──────────────┘ └────────────────────┘ │
└─────────────────────────────────────────────┘
Componentes clave:
- Subnets: Públicas (con ruta IGW) vs Privadas (sin internet directo)
- Security Groups: Firewall stateful a nivel de instancia
- NACLs: Firewall stateless a nivel de subnet
- NAT Gateway: Permite a instancias privadas alcanzar internet
Seguridad — IAM
Identity and Access Management controla quién puede hacer qué.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-app-bucket/*",
"Condition": {
"StringEquals": {"aws:RequestedRegion": "us-east-1"}
}
}
]
}
Mejores prácticas:
- Usa roles, no access keys de largo plazo
- Aplica least privilege
- Habilita MFA para root y usuarios admin
- Usa condiciones de IAM policy para seguridad extra
Errores Comunes
- Dejar buckets S3 públicos — usa bucket policies y Block Public Access
- Usar credenciales root — crea IAM users y roles inmediatamente
- Sin VPC flow logs — no puedes debuggear lo que no puedes ver
- Instancias EC2 sobreprovisionadas — empieza pequeño y escala; usa CloudWatch metrics
- Ignorar alertas de costo — configura billing alarms antes de sorpresas
FAQ
¿Es AWS gratis? AWS ofrece un Free Tier: 12 meses de uso limitado en EC2, S3, RDS y Lambda. Siempre monitorea billing.
¿Debería usar ECS, EKS o Lambda?
- Lambda: event-driven, tareas de corta duración
- ECS: workloads containerizadas, nativo AWS
- EKS: workloads basados en Kubernetes, portabilidad multi-cloud
¿Cómo aseguro secrets? Usa AWS Secrets Manager o Parameter Store (SSM). Nunca hardcodees credenciales en código o EC2 user data.
Recursos Relacionados
Terraform Best Practices — Modules, State, and Workspaces
A practical guide to Terraform best practices: module design, remote state management, workspaces, and security for production-grade infrastructure as code.
GuideKubernetes Advanced — Beyond the Basics
An advanced guide to Kubernetes: operators, custom resources, admission controllers, multi-cluster management, and production hardening for experienced users.
GuideFinOps — Cloud Cost Optimization and Financial Operations
A practical guide to FinOps: visibility, optimization, and governance of cloud spending. Learn tagging strategies, right-sizing, reserved instances, and building a cost-aware culture.