aws - computación

Post on 24-Jun-2015

341 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

EC2Web Server

EC2Web Server

EC2Web Server···

EC2Database

EC2Database

EC2Database···

EC2Worker

EC2Worker···

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

BBDD Servidor Web Worker

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

• Puesta en práctica

Amazon EMRElastic 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

top related