8. Amazon EC2
• Podemos emplear estas máquinas virtuales
como servidores e infraestructura de Red
• Servidor(es) Web
• Servidor(es) de BBDD
• Servidor(es) de colas de mensajería
• Servidor(es) de correo
• Servidor(es) de tareas en diferido/cron
• etc.
9. Amazon EC2
• NO deberiamos emplearlas como:
• Servidor de Ficheros
• Servidor de Web estáticas
• Servidor de Balanceo de Carga
• “Usos que se solapen con otros servicios
de AWS”
10. Amazon EC2
• Deberiamos evitar:
• Distribución de assets
• javascripts, stylesheets e imágenes
• El tráfico hacia fuera de AWS
• En la medida de lo posible
12. Amazon EC2
• Una arquitectura ideal aislaría los diferentes
elementos dentro máquinas EC2
• Notablemente más sencillo de escalar
• A gran escala coste menor
• Mayor resilencia
• Se evitan cuellos de botella
• Basada en Escalabilidad Horizontal
+ Vertical
13. Amazon EC2
• Sharding de la base de datos
• Balanceo de carga de Servidores Web
y Workers
• Elastic Load Balancer
14. Amazon EC2
Load Balancer (ELB)
EC2
Web Server
EC2
Web Server ··· EC2
Web Server
EC2
Database
EC2
Database ··· EC2
Database
EC2 EC2
Worker ··· Worker
15. Amazon EC2
• Esto sistema presenta un coste
relativamente elevado
• En el otro extremo se plantea una
estructura de servidor con toda la
infraestructura de la plataforma
• Pudiendo separar diferentes elementos
en máquinas aisladas
16. Amazon EC2
• Buen rendiemiento para servicios
relativamente pequeños
• Puesta en marcha notablemente más
sencilla
• Manteniemiento más sencillo
• Escalabilidad hasta cierto límite
• Basada en Escalabilidad Vertical
22. Amazon EMR
• Servicio basado en EC2 + Apache Hadoop
• Especialmente diseñado para datasets
largos
• Hace uso de MapReduce
23. Amazon EMR
• Map Reduce
• Modelo de programación para largos sets
de datos
• Mediante este sistema se simplifica la
escalabilidad horizontal
24. Amazon EMR
• Map Reduce
• Recibe este nombre de las dos funciones
básicas que lo componen Map y Reduce
• Map: función aplicada a cada clave/
registro generando 0 o varias parejas
clave/registro
• Reduce: función aplicada a los grupos
clave/registros generados en Map
25. Amazon EMR
• Map Reduce - Ejemplo
• Supongamos que queremos obtener los
usuarios por edad de una plataforma
• SQL:
• SELECT age, count(*) FROM users GROUP BY age
• ¿Aplicado a la base de datos de
Facebook?
26. Amazon EMR
• Map Reduce - Ejemplo
• Con MapReduce
// Agrupa las ids por edad
function Map(id, user):
emit(user.age, id)
// Contabiliza cada uno de los grupos
function Reduce(age, ids[]):
emit(age, ids.count)
27. Amazon EMR
• Por tanto
• EMR es un servicio orientado a calculos
en grandes datasets
• Escalado dinámicamente bajo demanda
• Ej: Calculo de nóminas a final de mes
28. Amazon EMR
• Links de interés
• hadoop.apache.org
• MapReduce with Ruby and Hadoop
• Hadoop MapReduce Tutorial
• en.wikipedia.org/wiki/MapReduce
• es.wikipedia.org/wiki/Hadoop