9. US-WEST (Oregon)
EU (Ireland)
ASIA PACIFIC
(Tokyo)
US-WEST (N. California)
SOUTH
AMERICA (Sao
Paulo)
US-EAST (N. Virginia)
AWS GOVCLOUD (US)
ASIA PACIFIC
(Sydney)
ASIA PACIFIC
(Singapore)
CHINA (Beijing)
Regiones
EU (Frankfurt)
Korea (Seoul)
10. US-WEST (Oregon)
EU (Ireland)
ASIA PACIFIC
(Tokyo)
US-WEST (N. California)
SOUTH
AMERICA (Sao
Paulo)
US-EAST (N. Virginia)
AWS GOVCLOUD (US)
ASIA PACIFIC
(Sydney)
ASIA PACIFIC
(Singapore)
CHINA (Beijing)
Zonas de Disponibilidad
EU (Frankfurt)
Korea (Seoul)
17. 1 Usuario
• Amazon Route 53 para DNS
• Una sola IP elástica
• Una instancia Amazon EC2
• Paquete Completo
• Servidor Web
• Base de Datos
• Administración
• Etcétera …
Instancia
Amazon
EC2
IP Elástica
Usuario
Amazon
Route 53
18. “Vamos a necesitar más ….”
• Enfoque sencillo
• Sacar provecho de PIOPS
• Instancias con Alto I/O
• Instancias con más RAM
• Instancias con más CPU
• Instancias con mas GB/TB
• Sencillo cambiar de “modelo”
c4.8xlarge
m3.2xlarge
t2.micro
• Este enfoque tiene un límite
19. 1 Usuario
• Potencialmente
podríamos llegar a
cientos o miles de
usuarios
• Sin redundancia
• Sin Alta Disponibilidad
• Demasiados huevos en la
misma canasta
EC2
Instance
Elastic IP
Usuario
Amazon
Route 53
21. Usuarios > 1
Primero separemos algunos
componentes:
• Servidor Web
• Base de Datos
¿Utilizar una base de datos
como servicio?
Instancia
Web
Database
Instance
Elastic IP
Usuario
Amazon
Route 53
22. Usted mismo Servicio Administrado
Base de Datos en
Amazon EC2
Cualquier base de
datos corriendo en
Amazon EC2
Traiga su propia
licencia (BYOL)
Amazon
DynamoDB
Base de datos NoSQL
administrada
Escalabilidad
transparente
Sin necesidad de
administrar
Amazon RDS
Microsoft SQL Server
Oracle
MySQL
PostgreSQL
MariaDB
Amazon Aurora
BYOL ó Licencia
Incluida
Amazon
Redshift
Servicio de
Datawarehouse
masivamente paralelo
Escalable a PB´s
Veloz, poderoso y fácil
de escalar
Opciones de Base de Datos
23. Amazon Aurora
• Almacenamiento escalable automatizado
(hasta 64 TB)
• Hasta 15 réplicas
• Backups contínuos incrementales a
Amazon S3
• 6 réplicas de los datos en 3 AZs
• Compatible con MySQL
26. ¿Por qué empezar con bases de datos
relacionales?
• Establecidas y tecnologías probadas
• Ecosistema existente, código, comunidades, libros y
herramientas
• No romperán sus bases de datos relacionales con sus
primeros miles de usuarios. *
*A menos qué estés haciendo algo muy PECULIAR con los datos o cuentas con una MASIVA cantidad de datos
…aún asi SQL tiene un lugar en tu aplicación
27. ¿Por qué empezar con NoSQL?
• Aplicaciones con ultra baja latencia
• Enfoque en metadatos de datos
• Datos no relacionales
• Necesito* base de datos sin esquema
• Masivas cantidades de datos (TB´s)
• Rápida ingesta de datos (miles de registros/seg)
31. Usuarios >1000
Soluciones con alta
disponibiliidad y tolerancia a
fallas:
Una instancia web adicional
• En otra Zona de
Disponibilidad
RDS Multi-AZ
Elastic Load Balancing (ELB)
Instancia
Web
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
Instancia
Web
RDS DB Instance
Standby (Multi-AZ)
ELB
Balancer
Usuario
Amazon
Route 53
32. Elastic Load Balancing
• Alta Disponibilidad
Integrada
• 1 - 65535
• Estado de Salud
• Sesiones
• SSL
• Monitoreo
• Logs
35. Usuarios > 10,000s–100,000s
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
RDS DB Instance
Standby (Multi-AZ)
ELB
Balancer
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Amazon
Route 53Usuario
38. RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
Amazon S3
Amazon
CloudFront
Amazon
Route 53
Usuario
Movamos la carga…
Instancias Web
• contenido estático de Amazon
S3 a Amazon Cloudfront
Mueve
39. Amazon Simple Storage Service (S3)
• Almacenamiento de Objetos
• Alta durabilidad
• Óptimo para contenido estático
• “Sin límite” de escalamiento
• Objetos de hasta 5TB
• Cifrado opcional
40. Amazon CloudFront
• “Cacheo” y distribución de contenido
• Libera carga al origen
• Contenido Dinámico y Estático
• Realizar “Streaming”
• Certificados SSL
• TTL´s bajos configurables
• Optimizado para AWS
42. Movamos la carga…
• contenido estático de
Amazon S3 a Amazon
Cloudfront
• Estado de sesión a Amazon
DynamoDB
• Utilizar cache para BD con
Amazon Elasticache
Mueve
RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
Amazon S3
Amazon
CloudFront
Amazon
Route 53
Usuario
ElastiCache DynamoDB
Instancias Web
43. Amazon Elasticache
• Memcached ó Redis Administrado
• Escalamiento de 1 a varios nodos
• Auto-sanable
• Velocidad de respuesta abajo de
10ms
• Memcache local en una AZ
• Multi-AZ posible con Redis
46. Crecimiento/reducción automática de clusters de cómputo
Definición de mínimos y máximos
Métricas de Cloudwatch son gatillo de auto escalamiento
Instancias bajo demanda o spot
aws autoscaling create-auto-scaling-group
--auto-scaling-group-name MyGroup
--launch-configuration-name MyConfig
--min-size 4
--max-size 200
--availability-zones us-west-2c, us-west-2b
Auto Escalamiento
54. Usuarios > 500,000+
Availability Zone
Amazon
Route 53
Usuario
Amazon S3
Amazon
CloudFront
Availability Zone
ELB
Balancer
DynamoDB
RDS DB Instance
Read Replica
Instancias
Web
Instancias
Web
Instancia
Web
ElastiCache RDS DB Instance
Read Replica
Instancia
Web
Instancia
Web
Instancia
Web
ElastiCacheRDS DB Instance
Standby (Multi-AZ)
RDS DB Instance
Active (Multi-AZ)
55. Usuarios >500,000+
• Monitoreo, métricas y logs
• Si no lo puede construir, ¡utilice
terceros!
• ¿Qué dicen mis clientes?
• Extraiga el máximo rendimiento de
cada servicio/componente.
58. SOA en Práctica
Servicios en capas/módulos
independientes
• Administrados y Escalados
independientemente
Amazon y AWS hacen esto
constantemente
Ofrece flexibilidad y entendimiento de
cada capa/función
59. SOA + Desacoplar = Agilidad
¡NO REINVENTE LA RUEDA!
• Correo Electrónico
• Sistema de colas
• Transcoding
• Búsqueda
• Bases de Datos
• Monitoreo
• Métricas
• Logs
• Cómputo
Amazon
CloudSearch
Amazon SQSAmazon SNS
Amazon Elastic
Transcoder
Amazon SWFAmazon SES
AWS Lambda
60. • Confiable (Multi-AZ)
• Escalable (mensajes ilimitados)
• Seguro (autenticación)
• Sencillo (APIs simples)
Servicios Aplicación – Amazon SQS
SQS
messages
Get
Message
Instancia
Put
Message
Instancia
Amazon SNS Topic
Publish
Notification
Queue Is Subscribed
to Topic
63. Usuarios > 1M+
Llegar al millón y más allá requerirá un poco de los temas
mencionados anteriormente:
• Múltiples Zonas de Disponibilidad
• Elastic Load Balancing entre capas
• Auto Escalamiento
• Arquitectura SOA
• Entrega de Contenido Optimizada
• Usar caché para Base de Datos
• Estado de Sesiones desacoplado
64. Usuarios > 1M+
RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Instancia
Web
Instancia
Web
Instancia
Web
Instancia
Web
Amazon
Route 53
Usuario
Amazon S3
Amazon
CloudFront
DynamoDB
Amazon SQS
ElastiCache
Worker
Instance
Worker
Instance
Amazon
CloudWatch
Internal App
Instance
Internal App
Instance Amazon SES
Lambda
67. Usuarios > 5M - 10M
Potencialmente estará encontrando contención y
problemas con el master de la base de datos.
¿Cómo resolverlo?
• Federación — Separar multiples BD por función propósito
• Sharding—Separar por rangos/grupos
• Bases de datos especializadas (NoSQL, Graph)
68. ¡Con todo lo revisado
fácilmente podríamos
escalar a
10+ millones de usuarios!