29
Mi experiencia con Amazon AWS EC2 y S3 Alejandro E Brito Monedero @ae_bm

Mi experiencia con Amazon AWS EC2 y S3

Embed Size (px)

DESCRIPTION

Versión en español de la charla que di en madrid_devops. Contando mis experiencias con AWS

Citation preview

Page 1: Mi experiencia con Amazon AWS EC2 y S3

Mi experiencia con Amazon AWS EC2 y S3

Alejandro E Brito Monedero@ae_bm

Page 2: Mi experiencia con Amazon AWS EC2 y S3

Agenda– Hablemos de AWS

– AWS + Yo

– Extras

– Un poco de ec2-command-line

– Preguntas

– Referencias y créditos

Page 3: Mi experiencia con Amazon AWS EC2 y S3

AWS es ...

Page 4: Mi experiencia con Amazon AWS EC2 y S3

● 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

Page 5: Mi experiencia con Amazon AWS EC2 y S3

Quienes lo usan

Page 6: Mi experiencia con Amazon AWS EC2 y S3

Fin de la parte de marketing

Page 7: Mi experiencia con Amazon AWS EC2 y S3

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

Page 8: Mi experiencia con Amazon AWS EC2 y S3

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

Page 9: Mi experiencia con Amazon AWS EC2 y S3

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

Page 10: Mi experiencia con Amazon AWS EC2 y S3

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

Page 11: Mi experiencia con Amazon AWS EC2 y S3

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

Page 12: Mi experiencia con Amazon AWS EC2 y S3

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 (^_^)

Page 13: Mi experiencia con Amazon AWS EC2 y S3

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

Page 14: Mi experiencia con Amazon AWS EC2 y S3

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

Page 15: Mi experiencia con Amazon AWS EC2 y S3

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

Page 16: Mi experiencia con Amazon AWS EC2 y S3

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

Page 17: Mi experiencia con Amazon AWS EC2 y S3

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 $$)

Page 18: Mi experiencia con Amazon AWS EC2 y S3

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

Page 19: Mi experiencia con Amazon AWS EC2 y S3

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'

Page 20: Mi experiencia con Amazon AWS EC2 y S3

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

Page 21: Mi experiencia con Amazon AWS EC2 y S3

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'

Page 22: Mi experiencia con Amazon AWS EC2 y S3

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

Page 23: Mi experiencia con Amazon AWS EC2 y S3

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'

Page 24: Mi experiencia con Amazon AWS EC2 y S3

Lo escuche y lo olvide. Lo vi y lo entendí. Lo hice y lo aprendí

Confucio

Page 25: Mi experiencia con Amazon AWS EC2 y S3

Imágenes

– openclipart.org/detail/2229/cloud-&-rainbow-by-gmcglinn

– www.re-cycledair.com/wp-content/uploads/2012/04/heroku-Logo-1.jpg

– www.instantpulp.com

– www.lomejordelface.com/wp-content/uploads/2011/09/piictu.jpg

– www.urbecom.com/blog/wp-content/uploads/2012/02/Logo-de-Amazon.-q.jpg

Créditos

Page 26: Mi experiencia con Amazon AWS EC2 y S3

Imágenes

– wuaki.tv

– www.elandroidelibre.com/wp-content/uploads/2012/03/Instagram-Logo.jpg

– www.appsmashups.com/wp-content/uploads/2012/01/netflix.jpg

– www.flickr.com/photos/mcquinn/2302823476/sizes/m/in/photostream/

– www.marketingdirecto.com/wp-content/uploads/2012/02/pinterest12.jpg

Créditos

Page 27: Mi experiencia con Amazon AWS EC2 y S3

Enlaces de interés

– alestic.com/

– https://github.com/boto/boto

– docs.amazonwebservices.com/general/latest/gr/GetTheTools.html

– aws.amazon.com/documentation/

– aws.amazon.com/articles/

– aws.amazon.com/resources/webinars/

Referencias

Page 28: Mi experiencia con Amazon AWS EC2 y S3

Enlaces de interés

– aws.amazon.com/whitepapers/

– aws.amazon.com/architecture/

– reinvent.awsevents.com/

– docs.amazonwebservices.com/AWSEC2/latest/UserGuide/FAQ_Regions_Availability_Zones.html

– https://forums.aws.amazon.com/thread.jspa?threadID=22830

Referencias

Page 29: Mi experiencia con Amazon AWS EC2 y S3

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.