EC2: Cómputo en la nube a profundidad

54
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Roberto Fuente, Technical Account Manager, AWS Support Damian Traverso, Solutions Architect AWS LATAM Abril 28, 2016 EC2 Cómputo en la nube a profundidad

Transcript of EC2: Cómputo en la nube a profundidad

Page 1: EC2: Cómputo en la nube a profundidad

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Roberto Fuente, Technical Account Manager, AWS SupportDamian Traverso, Solutions Architect AWS LATAM

Abril 28, 2016

EC2Cómputo en la nube a profundidad

Page 2: EC2: Cómputo en la nube a profundidad

Qué esperar de esta sesión ?

• Introducción a AWS y EC2

• Definir el desempeño de un sistema y cómo se

caracteriza para diferentes cargas de trabajo• Cómo las instancias EC2 ofrecen un óptimo desempeño, manteniendo flexibilidad y agilidad

• Cómo aprovechar de mejor manera el uso de las instancias EC2

Page 3: EC2: Cómputo en la nube a profundidad

Introducción a AWSy EC2

Page 4: EC2: Cómputo en la nube a profundidad

Infraestructura Global de AWS

Region

Edge Location

12 Regions33 Availability Zones54 Edge Locations

Page 5: EC2: Cómputo en la nube a profundidad

US West (OR)

AZ A AZ B

AZ C

GovCloud (US)

AZ A AZ B

US West (CA)

AZ A AZ B

AZ C

US East (VA)

AZ A AZ B

AZ C AZ D

AZ E

*A limited preview of the China (Beijing) Region is available to a select group of China-based and multinational companies with customers in China. These customers are required to create a AWS Account, with a set of credentials that are distinct and separate from other global AWS Accounts.

EU (Ireland)

AZ A AZ B

AZ C

AZ A AZ B

S. America (Sao Paulo)

Asia Pacific (Tokyo)

AZ A AZ B

AZ C

AZ A AZ B

Asia Pacific (Singapore)

China (Bejing)Asia Pacific (Sydney)

AZ A AZ B

EU (Frankfurt)

AZ A AZ B

AWS Regions

China (Beijing)*

AZ A AZ B

Regiones de AWS y Zonas de Disponibilidad (AZs)

Page 6: EC2: Cómputo en la nube a profundidad

Qué es Elastic Cloud Compute (EC2)?

Page 7: EC2: Cómputo en la nube a profundidad

Amazon Elastic Cloud Compute (EC2)

Servidores Virtuales en la nube de AWS

Rápida y fácil escalabilidad,

según lo necesite

Pague únicamente por lo que usa

Sistemas Operativos ya conocidos: Linux y

Windows

Page 8: EC2: Cómputo en la nube a profundidad

Amplia variedad de Tipos de Instancias

M4

General purpose

Computeoptimized

C4

C3

Storage and IOoptimized

I2 G2

GPUenabled

Memoryoptimized

R3D2

M3

Page 9: EC2: Cómputo en la nube a profundidad

Amazon EC2 permite…

• Construir fácilmente aplicaciones con HA

• Distribuir la carga entre servidores EC2 usando AWS Elastic

Load Balancers

• Garantizar alta disponibilidad y escalabilidad usando Auto

Scaling

• Usar múltiples Zonas de Disponibilidad (AZs)

• Elegir entre diferentes modelos comerciales

Page 10: EC2: Cómputo en la nube a profundidad

Diferentes modelos comerciales

InstanciasReservadas

Pague un adelanto inicial mínimo

Reserve la capacidad

Asegure una tarifa menor por hora

InstanciasOn-Demand

Pague de acuerdo con el uso

Tarifa plana por hora

Sin contratos ni compromisos

InstanciasSpot

Haga una oferta

Economice hasta 90% en comparación con On-Demand

Lance 1,000s de instancias

10:00

10:05

10:10

Page 11: EC2: Cómputo en la nube a profundidad

Definiendo el desempeño

Page 12: EC2: Cómputo en la nube a profundidad

Selecionando un servidor

• Los servidores son reservados para realizar trabajos• El desempeño se mide de manera diferente

dependiendo del trabajo que se realice

Page 13: EC2: Cómputo en la nube a profundidad

• Lo que desempeño significa, depende de la perspectiva:

• Tiempo de respuesta• Rendimiento• Consistencia

Desempeño = perspectiva

Aplicación

Librerías de Sistema

Llamadas a sistema

Kernel

Dispositivo

Carga

Page 14: EC2: Cómputo en la nube a profundidad

Factores de desempeño

Recurso Factores IndicadoresCPU Sockets, número de núcleos,

frecuencia de reloj, capacidadUtilización de CPU, tamaño de la fila de ejecución

Memoria Capacidad Memoria libre, paginación, swapping

Interfaz de Red

Ancho de Banda Máximo, paquetes Cantidad paquetes recibidos, transferencia de paquetes sobre el máximo ancho de banda

Disco IOPS, Desempeño Tamaño de fila en espera, utilización de dispositivos, errores en los dispositivos

Page 15: EC2: Cómputo en la nube a profundidad

Utilización de Recursos

• Cada applicacion tienen una perfile de utilizacion de recrusos, para un dado nivel de despemeño.

• Un recurso con utilización del 100% no puede recibir o atender más peticiones

• Baja utilización indica que se han reservado más recursos de los necesarios

Page 16: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• MediaWiki instalado en un servidor Apache con 140 páginas de contenido

• Incremento de carga en intervalos de tiempo

Page 17: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• Estadísticas de Memoria

Page 18: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• Estadísticas de Disco

Page 19: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• Estadísticas de Red

Page 20: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• Estadísticas de CPU

Page 21: EC2: Cómputo en la nube a profundidad

Selección de instancia = optimización

• La selección de una instancia es equivalente a la optimización de los recursos

• Dar de baja instancias es tan fácil como adquirir nuevas• Alinear el tipo de carga con el tipo de instancia óptimo

Page 22: EC2: Cómputo en la nube a profundidad

Ofreciendo desempeño de cómputo en EC2

Page 23: EC2: Cómputo en la nube a profundidad

Instrucciones de CPU y Niveles de Protección

• CPU tiene dos niveles de protección: Kernel y Aplicación• Instrucciones privilegiadas no se pueden ejecutar en

modo usuario para proteger el sistema.• Aplicaciones apalancan las llamadas al sistema al kernel

Instrucciones privilegiadas:• Inicio de I/O• Acceso a I/O de Dispositivos

(red, disco)• Manejo del tiempo• Pausa CPU Aplicación

Kernel

Page 24: EC2: Cómputo en la nube a profundidad

Ejemplo: Llamadas al sistema de una aplicación web

[ec2-user@ip-10-0-121-0 ~]$ sudo strace -c -p 2440Process 2440 attached^CProcess 2440 detached% time seconds usecs/call calls errors syscall------ ----------- ----------- --------- --------- ---------------- 0.00 0.000000 0 931 11 read 0.00 0.000000 0 887 write 0.00 0.000000 0 121 open 0.00 0.000000 0 154 close 0.00 0.000000 0 1357 32 stat 0.00 0.000000 0 341 fstat 0.00 0.000000 0 99 11 lstat 0.00 0.000000 0 865 poll 0.00 0.000000 0 121 mmap 0.00 0.000000 0 121 munmap 0.00 0.000000 0 220 brk 0.00 0.000000 0 11 rt_sigaction 0.00 0.000000 0 11 rt_sigprocmask 0.00 0.000000 0 22 writev 0.00 0.000000 0 66 22 access

Page 25: EC2: Cómputo en la nube a profundidad

X86 CPU Virtualización : Antes de Intel VT-x

• Traducción a binario para instrucciones privilegiadas• Para-virtualization (PV)

• PV requiere pasar por VMM, introduciendo latencia • Aplicaciones que son ligados/bound a llamadas de sistemas son

más afectadas

VMM

Application

Kernel

PV

Page 26: EC2: Cómputo en la nube a profundidad

27

Aplicando la ley de Moore

90 nm2003

180 nm1999

130 nm2001

65 nm2005 45 nm

2007 32 nm2009 22 nm

2012 14 nm2014

LEY DE MOORE

Habilitando nuevos dispositivos con mayor funcionalidad y

complejidad, mientras se controla la potencia, el costo y el tamaño.

(duplicando la integración cada 2 años)

Page 27: EC2: Cómputo en la nube a profundidad

28

Intel® Core™ Microarchitecture

TOCK

NewMicro-

architecture

Merom

65nm

TICK

Penryn

NewProcess Technology

45nm

NehalemMicroarchitecture

TOCK

NewMicro-

architecture

NehalemXeon 5500

45nm

TICK

WestmereXeon 5600

32nm

NewProcess Technology

Sandy BridgeMicroarchitecture

TOCK

SandyBridge

Xeon E5

32nm

NewMicro-

architecture

TICK

Ivy Bridge

Xeon E5 v2

22nm

NewProcess Technology

HaswellMicroarchitecture

TOCK

HaswellXeon E5 v3

22nm

NewMicro-

architecture

TICK

BroadwellXeon E5 v4

14nm

NewProcess Technology

Modelo Tick Tock – Evolución de plataformas Xeon

Page 28: EC2: Cómputo en la nube a profundidad

REDDatos en

movimiento

ALMACENAMIENTODatos

estacionarios

COMPUTODatos siendo

transformados

Una arquitectura común para todo el Datacenter

Brindando economias de escala a toda la infraestructura

Page 29: EC2: Cómputo en la nube a profundidad

X86 CPU Virtualización : Despues de Intel VT-x• Virtualización asistida por hardware (HVM)• PV-HVM utiliza PV drivers para operaciones que son lentas a ser

emuladas. : • e.g. Red y I/O de disco

KernelApplication

VMM

PV-HVM

Page 30: EC2: Cómputo en la nube a profundidad

Tip: Usar AMIs PV-HVM con EBS

Page 31: EC2: Cómputo en la nube a profundidad

Instancias C4

Custom Intel E5-2666 v3 at 2.9 GHzGestión de P-state C-state

Model vCPU Memory (GiB) EBS (Mbps)c4.large 2 3.75 500c4.xlarge 4 7.5 750c4.2xlarge 8 15 1,000c4.4xlarge 16 30 2,000c4.8xlarge 36 60 4,000

Page 32: EC2: Cómputo en la nube a profundidad

Instancias: T2

• Menor costo de instancias• Burstable performance• Asignación fija de créditos CPU

Model vCPU CPU Credits / Hour

Memory (GiB)

Storage

t2.nano 1 3 0.5 EBS Onlyt2.micro 1 6 1 EBS Onlyt2.small 1 12 2 EBS Onlyt2.medium 2 24 4 EBS Onlyt2.large 2 36 8 EBS Only

Page 33: EC2: Cómputo en la nube a profundidad

How Credits Work

• Un crédito de CPU proporciona la performance de un CPU completo durante un minuto

• Una instancia gana créditos de CPU a un ritmo constante

• Una instancia consume créditos cuando está activa

• Créditos expiran (leak) después de 24 horas.

Baseline Rate

Credit Balance

BurstRate

Page 34: EC2: Cómputo en la nube a profundidad

Tip: Supervisar el crédito de CPU

Page 35: EC2: Cómputo en la nube a profundidad

Tip: Como Interpretar Steal Time

• Asignaciones de CPU fijas puede ser ofrecidas con limites establecidos en la CPU

• Steal time ocurre cuando el límite de tiempo en la CPU a sido agotado

• Revisen las métricas de CloudWatch

Page 36: EC2: Cómputo en la nube a profundidad

Ofreciendo desempeño de I/O en EC2

Page 37: EC2: Cómputo en la nube a profundidad

Virtualización de I/O y Dispositivos

• Split Driver Model• Cada dispositivo tiene dos componentes;

• Ring buffer de comunicación • Canal de eventos avisando el ring buffer de actividad.

• Intel VT-d• Paso directo para dispositivos dedicados • Enhanced Networking (SR-IOV)

Page 38: EC2: Cómputo en la nube a profundidad

Split Driver Model : Red

Hardware

Driver Domain Guest Domain Guest Domain

VMM

Frontend driver

Frontend driver

Backend driver

DeviceDriver

Physical CPU

Physical Memory

Network Device

Virtual CPU Virtual Memory

CPU Scheduling

Sockets

Application

Page 39: EC2: Cómputo en la nube a profundidad

Split Driver Model : Red

Hardware

Driver Domain Guest Domain Guest Domain

VMM

Frontend driver

Frontend driver

Backend driver

DeviceDriver

Physical CPU

Physical Memory

Network Device

Virtual CPU Virtual Memory

CPU Scheduling

Sockets

Application

Page 40: EC2: Cómputo en la nube a profundidad

Split Driver Model : Red

Hardware

Driver Domain Guest Domain Guest Domain

VMM

Frontend driver

Frontend driver

Backend driver

DeviceDriver

Physical CPU

Physical Memory

Network Device

Virtual CPU Virtual Memory

CPU Scheduling

Sockets

Application

Page 41: EC2: Cómputo en la nube a profundidad

Split Driver Model : Red

Hardware

Driver Domain Guest Domain Guest Domain

VMM

Frontend driver

Frontend driver

Backend driver

DeviceDriver

Physical CPU

Physical Memory

Network Device

Virtual CPU Virtual Memory

CPU Scheduling

Sockets

Application

Page 42: EC2: Cómputo en la nube a profundidad

Split Driver Model : Red

Hardware

Driver Domain Guest Domain Guest Domain

VMM

Frontend driver

Frontend driver

Backend driver

DeviceDriver

Physical CPU

Physical Memory

Network Device

Virtual CPU Virtual Memory

CPU Scheduling

Sockets

Application

Page 43: EC2: Cómputo en la nube a profundidad

Paso Directo al Dispositivo: Enhanced Networking

• SR-IOV elimina la necesidad del driver domain• El dispositivo físico de red expone una función virtual a

la instancia• Requiere un driver especial:

• El sistema operativo de la instancia necesita saber sobre el driver

• Es necesario habilitar ”Enhanced Networking” en EC2

Page 44: EC2: Cómputo en la nube a profundidad

Paso Directo al Dispositivo: Enhanced Networking

Hardware

Driver Domain Guest Domain Guest Domain

VMM

Frontend driver

NIC Driver

Backend driver

DeviceDriver

Physical CPU

Physical Memory

SR-IOV Network Device

Virtual CPU Virtual Memory

CPU Scheduling

Sockets

Application

Page 45: EC2: Cómputo en la nube a profundidad

Paso Directo al Dispositivo: Enhanced Networking

Hardware

Driver Domain Guest Domain Guest Domain

VMM

Frontend driver

NIC Driver

Backend driver

DeviceDriver

Physical CPU

Physical Memory

SR-IOV Network Device

Virtual CPU Virtual Memory

CPU Scheduling

Sockets

Application

Page 46: EC2: Cómputo en la nube a profundidad

Paso Directo al Dispositivo: Enhanced Networking

Hardware

Driver Domain Guest Domain Guest Domain

VMM

Frontend driver

NIC Driver

Backend driver

DeviceDriver

Physical CPU

Physical Memory

SR-IOV Network Device

Virtual CPU Virtual Memory

CPU Scheduling

Sockets

Application

Page 47: EC2: Cómputo en la nube a profundidad

Tip: Usar Enhanced Networking

• Mayor cantidad de paquetes por segundo• Menor varianza en latencia• El Sistema Operativo de la instancia debe soportarlo

Page 48: EC2: Cómputo en la nube a profundidad

Revisión de Instancias I2

Page 49: EC2: Cómputo en la nube a profundidad

Instancias I2

• Proveen almacenamiento SSD• Proveen IOPS a bajo costo• Optimizadas para alta demanda de I/O aleatorio

Model vCPU Memory (GiB)

Storage Read IOPS Write IOPS

i2.xlarge 4 30.5 1 x 800 SSD 35,000 35,000i2.2xlarge 8 61 2 x 800 SSD 75,000 75,000i2.4xlarge 16 122 4 x 800 SSD 175,000 155,000i2.8xlarge 32 244 8 x 800 SSD 365,000 315,000

Page 50: EC2: Cómputo en la nube a profundidad

Grants en kernels prévio a la versión 3.8.0

• Previo a la versión 3.8.0, se requiere un Mapa de grants• El Mapa de grants requiere de operaciones costosas debido a flushes de TLB (Translation

Lookaside Buffer)

SSD

Inter domain I/O:(1) Grant memory(2) Write to ring buffer(3) Signal event(4) Read ring buffer(5) Map grants(6) Read or write grants(7) Unmap grants

read(fd, buffer,…)

I/O Domain Instance

Page 51: EC2: Cómputo en la nube a profundidad

Cesión en kernels posteriores a la versión 3.8.0

• El Mapa de grants está definido en un pool• La información es copiada o extraída del pool

SSD

I/O Domain Instance

Grant pool

Copy to and from grant pool

Page 52: EC2: Cómputo en la nube a profundidad

Tip: Usar kernels posteriores a la versión 3.8.0

• Amazon Linux 13.09 o mayor• Ubuntu 14.04 o mayor• RHEL7 o mayor• Etc.

Page 53: EC2: Cómputo en la nube a profundidad

Resumen

• Usar PV-HVM• Monitorar creditos T2 • Usar Enhanced Networking• Usar kernels posteriores a la versión 3.8.0

Page 54: EC2: Cómputo en la nube a profundidad

Gracias!