Computación
Computación en AWS

• Dos servicios
 • Amazon EC2 (Elastic Cloud Computing)
   • Computación virtualizada escalable
   • Uno de los servicios más populares
Computación en AWS

• Amazon EMR (Elastic MapReduce)
 • Análisis de Datos, Minería de Datos
 • Sobre la infraestructura de EC2
 • Tareas en diferido
Amazon EC2
Elastic Cloud Computing
Amazon EC2

• Servicio que provee de capacidad de
  computación elástica
 • Máquinas virtuales
  • Basadas en Linux ó en Windows
Amazon EC2


• Tarficación “compleja”
 • aws.amazon.com/ec2/pricing
Amazon EC2


¿Cómo debemos usar las máquinas de EC2?
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.
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”
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
Amazon EC2


Arquitectura de un Servicio Web con EC2
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
Amazon EC2


• Sharding de la base de datos
• Balanceo de carga de Servidores Web
  y Workers
   • Elastic Load Balancer
Amazon EC2
                       Load Balancer (ELB)




   EC2
 Web Server
                    EC2
                  Web Server          ···               EC2
                                                      Web Server




   EC2
 Database
                     EC2
                   Database           ···               EC2
                                                      Database




               EC2                            EC2
              Worker         ···             Worker
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
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
Amazon EC2


        EC2


        Servidor
 BBDD              Worker
         Web
Amazon EC2
• Un punto intermedio entre ambas puede
  ser la mejor solución
 • Tratar de asegurar la separación entre:
  • Datos
  • Código
  • Archivos
Amazon EC2

• Links de interés
 • Horizontal vs Vertical Scaling
    singinghorsestudio.com/horizontal-vs-
    vertical-scaling
  • highscalability.com
Amazon EC2


• Puesta en práctica
Amazon EMR
 Elastic Map Reduce
Amazon EMR

• Servicio basado en EC2 + Apache Hadoop
 • Especialmente diseñado para datasets
    largos
 • Hace uso de MapReduce
Amazon EMR

• Map Reduce
 • Modelo de programación para largos sets
    de datos
 • Mediante este sistema se simplifica la
    escalabilidad horizontal
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
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?
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)
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
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

AWS - Computación

  • 1.
  • 2.
    Computación en AWS •Dos servicios • Amazon EC2 (Elastic Cloud Computing) • Computación virtualizada escalable • Uno de los servicios más populares
  • 3.
    Computación en AWS •Amazon EMR (Elastic MapReduce) • Análisis de Datos, Minería de Datos • Sobre la infraestructura de EC2 • Tareas en diferido
  • 4.
  • 5.
    Amazon EC2 • Servicioque provee de capacidad de computación elástica • Máquinas virtuales • Basadas en Linux ó en Windows
  • 6.
    Amazon EC2 • Tarficación“compleja” • aws.amazon.com/ec2/pricing
  • 7.
    Amazon EC2 ¿Cómo debemosusar las máquinas de EC2?
  • 8.
    Amazon EC2 • Podemosemplear 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 • NOdeberiamos 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 • Deberiamosevitar: • Distribución de assets • javascripts, stylesheets e imágenes • El tráfico hacia fuera de AWS • En la medida de lo posible
  • 11.
    Amazon EC2 Arquitectura deun Servicio Web con EC2
  • 12.
    Amazon EC2 • Unaarquitectura 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 • Shardingde 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 • Estosistema 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 • Buenrendiemiento 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
  • 17.
    Amazon EC2 EC2 Servidor BBDD Worker Web
  • 18.
    Amazon EC2 • Unpunto intermedio entre ambas puede ser la mejor solución • Tratar de asegurar la separación entre: • Datos • Código • Archivos
  • 19.
    Amazon EC2 • Linksde interés • Horizontal vs Vertical Scaling singinghorsestudio.com/horizontal-vs- vertical-scaling • highscalability.com
  • 20.
  • 21.
  • 22.
    Amazon EMR • Serviciobasado en EC2 + Apache Hadoop • Especialmente diseñado para datasets largos • Hace uso de MapReduce
  • 23.
    Amazon EMR • MapReduce • Modelo de programación para largos sets de datos • Mediante este sistema se simplifica la escalabilidad horizontal
  • 24.
    Amazon EMR • MapReduce • 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 • MapReduce - 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 • MapReduce - 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 • Portanto • 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 • Linksde interés • hadoop.apache.org • MapReduce with Ruby and Hadoop • Hadoop MapReduce Tutorial • en.wikipedia.org/wiki/MapReduce • es.wikipedia.org/wiki/Hadoop