4. ● Proveedor IaaS (A.K.A la nube)
● Modelo pay as you go
● Virtualización con Xen
● Otra forma de “pensar” la arquitectura de
aplicaciones
● Gestión de recursos de infraestructura a
través de un API
7. Conceptos importantes
● Región
– Zona geográfica donde están ubicados un
conjunto de AZs
– Cada región es independiente de las otras
● Availability Zone (AZ)
– Es un datacenter
– Varios AZs conforman una región
– Los AZs de una región están interconectados
por enlaces de baja latencia
8. Conceptos importantes
● Amazon Machine Image (AMI)
● Amazon Elastic Compute Cloud (EC2)
– Servicio Web que ofrece capacidad de
computo
● Amazon Simple Storage Service S3
– Almacén de datos no estructurados con alta
disponibilidad y durabilidad
● Amazon Elastic Block Store (EBS)
– Volúmenes de almacenamiento persistentes
para usar con instancias EC2
9. Instancias EC2
● Máquinas virtuales
– Compartes la máquina física con otras
instancias
– No se puede controlar en que máquina física
está la instancia (ciertas condiciones
aplican)
– No te encariñes a la instancia, que sea 'cloud'
no lo hace infalible
10. Instancias EC2
● 2 tipos de imágenes (AMI):
– Instance store
● Al principio era el único tipo de instancia
● Imagen de tamaño limitado y guardada en S3
● Actualizar el AMI es un pain in the 4$$
● Se pierde cualquier cambio no este
almacenado en un volumen EBS
● Se puede migrar la imagen entre regiones (^_^)
● Si la imagen es muy grande puede tardar en
iniciar
11. Instancias EC2
● 2 tipos de imágenes (AMI):
– EBS-backed
● Se puede detener / iniciar la instancia
– No olvidar lo que pasa con los discos efímeros
● Se puede cambiar el tipo de instancia
– Escalado vertical
● La imagen es un snapshot del volumen raíz
EBS en S3
● No se puede migrar la imagen entre regiones
12. Instancias EC2 - Tipos de almacenamiento
● Unidades de disco efímeras
– Disco de la máquina física
– El mejor I/O que se puede tener
– Si se apaga / bloquea / detiene la instancia
dile adiós a tus datos (;_;)
● EBS (discos persistentes)
– SAN
– Más lentos que los discos efímeros
– RAID 1
– Snapshots incrementales guardados en S3
(^_^)
13. Cosas que hice
● Disclaimer: Todo esto es mejorable, no es 'the
netflix way' (-_-)
– Sólo probando / jugando se hace experiencia
● Economía de guerra
– Misión hacer todo lo más barato posible
● Migración de un hosting dedicado a AWS
– DNS con un TTL de 300 por si la cosa no iba
bien
14. Cosas que hice
● Cada máquina frontend tenia una Elastic IP
– No tocas los DNS
– Ahora también existe Amazon Route 53
● Para enviar correo usaba gmail como smarthost
– No puedes cambiar los registros PTR de
Amazon
– Ahora hay Amazon SES
● AMIs del tipo Instance Store por cada rol
– Ahora con instancias tipo EBS +
CloudFormation + User Data Scripts +
devops magic debería ser más flexible
15. Cosas que hice
● Firewall
– Usas los Security groups
– Ahora los security groups se pueden
administrar usando el portal WEB
– Una IP externa autorizada para hacer SSH
– Recomendado por los expertos
● Sólo permitir ssh desde un security group
especial
– Asociado a una instancia iniciada bajo demanda
16. Cosas que hice
● Backups
– Un volumen EBS en donde se hacían
respaldos incrementales diarios
● rsync + hard links magic
– Snapshots a S3 del volumen EBS 'respaldo'
– Pude omitir este salto intermedio, pero
siempre pienso en la consistencia de los
datos y eso causa insomnio (;_;)
– xfs_freeze, db flush dmsetup, etc, son amigos
17. Cosas que hice
● Monitoring
– Munin
– Zabbix
– Puedes usar CloudWatch para empezar
– Who watches the watchmen?
● “Free uptime monitoring”
● Deploy en 1 AZ
– Shame on me (-_-)
– No comments
– Se deberían hacer deploys multi AZ (Hasta
donde lleguen los $$)
18. Cosas que hice
● El almacenamiento (FUN part)
– LVM con EBSs como PVs
– 1 LV en 1 VG en 1 EBS
– Aumentaba de tamaño las particiones con una
mezcla de vudú, vgextend, pvmove, etc.
– Seguro sería muy lento y I/O unfriendly
intentarlo con EBSs muy grandes
19. Cosas que hice
● El almacenamiento (FUN part)
– ¿Cómo mejorarlo? 'brainstorming' (en especial
con BBDD)
● Pensando en una mezcla de RAID, LVM, XFS o
afines si tuviera muchos discos
● ¿Se pueden hacer snapshots S3 de varios
volúmenes EBS en el mismo instante de
tiempo?
● Usar glusterfs o afines
● Hacer los respaldos en nodos secundarios
– Si tu app maneja el concepto de S3 te
ahorrarías muchos de estos 'hacks'
20. Cosas nuevas de Amazon AWS
● DNS Route 53
● Cloudfront como CDN
● Amazon SES
● ELB para hacer balanceo de carga (¿Usarán
HAProxy?) (^_^)
● Métricas con Cloudwatch
● Escalado horizontal automático
● SQS
● DynamoDB
21. Cosas nuevas de Amazon AWS
● Identity and Access Management (IAM)
– Varios perfiles de usuarios con distintos
permisos
– Permite delegar, delegar, ... delegar
– Más tiempo libre (^_^)
● Usar spot instances para tener más instancias
workers a precios de solidarios
● BBDD Oracle, MySQL, MS-SQL gestionadas por
Amazon
● Etc (sacan cosas nuevas a cada rato)
● Algo divertido: buscar 'Amazon Mechanical Turk'
22. Observaciones
● Para tener una app en AWS y que aproveche
la 'cloud'
– Necesitas a los developers, developers,
developers, developers ...
– Los consejos de siempre
● Ser 'fault tolerant'
● Diseñar / hacer aplicaciones lo más 'stateless'
posible
● Etc
● El performance de red y EBS en AWS es
variable
23. Observaciones
● El HW físico aún existe
– A veces Amazon te informara que tiene que
hacer mantenimiento en donde esta tu VM
– Otras veces el host físico hace que tu VM no
funcione bien.
● Solución: inicia una nueva instancia y termina la
que esta fallando
● Con AWS lo que obtienes es una
infraestructura dinámica y flexible, cuando no
puedes montar tu propia 'cloud'
24. Lo escuche y lo olvide. Lo vi y lo entendí. Lo hice
y lo aprendí
Confucio
27. Referencias
Enlaces de interés
– alestic.com/
– https://github.com/boto/boto
– docs.amazonwebservices.com/general/latest/gr/Get
TheTools.html
– aws.amazon.com/documentation/
– aws.amazon.com/articles/
– aws.amazon.com/resources/webinars/
28. Referencias
Enlaces de interés
– aws.amazon.com/whitepapers/
– aws.amazon.com/architecture/
– reinvent.awsevents.com/
– docs.amazonwebservices.com/AWSEC2/latest/Use
rGuide/FAQ_Regions_Availability_Zones.html
– https://forums.aws.amazon.com/thread.jspa?
threadID=22830
29. Un estudiante pregunta:
- ¿Qué es lo más valioso del mundo?
El maestro respondió:
- La cabeza de un gato muerto.
El estudiante sorprendido pregunta:
-¿Por qué es la cabeza de un gato muerto la cosa
más valiosa del mundo?
El maestro respondió:
- Porque nadie puede ponerle precio.