2. amazon web services
TRANSCRIPT
1
Amazon Web
Services
Cristian González García v 1.2.2 Noviembre 2015
Índice
Introducción
Arquitectura
Elastic MapReduce
Inscripción
Key Pair
EMR: Word Count
Amazon EC2
Acceso a Amazon EC2
2
Introducción
3
Introducción Lanzado en el año 2004
Sólo Simple Queue Service (SQS): envío de datos
Propiedad de Amazon
Colección de servicios de computación en la nube Almacenamiento, MVs, servicios web, …
Microsoft Azure, Google Cloud Platform
AWS fue el primero
Ofrece servicios bajo demanda o fijos Pagas por lo que utilizas
Puedes contratar hasta x% de margen escalabilidad
Puedes establecer un límite de dinero a gastar
4
Nacimiento
Necesitaban levantar instancias para
desarrollo y/o producción
Crearon un sistema interno para esto
Tras ver su potencia, decidieron publicarlo
EC2, S3, …
Fueron creando más servicios con el tiempo
Se convirtió en AWS
6
Que ofrece
Almacenaje
Procesamiento
Transferencia
Servidores
Monitorización de los servicios
Seguridad
Bases de datos
…
7
Es utilizado por … I Flipboard
Revista personal móvil
Ahorro de millones de dólares
Viocorp Plataforma de video online
Reducción de un 50% de costes
Mortar Data Despliegue de apps y tratamiento de Big Data
Ahorro de 4 millones de dólares
Schumacher Group Servicio de salud. Más de 4M de pacientes
Reducción de costes de 80.000$ (servidor propio) a 4.000-5.000$ (AWS)
8
Es utilizado por … II Adobe Systems Incorporated
Desarrollo de software
Despliegue de servicios que no podrían realizar mediante el despliegue tradicional
Thismoment Desarrollo de aplicaciones sociales móviles
No tener que preocuparse de los servidores
Reddit Sitio web de marcadores sociales
Escalabilidad de servidores y BBDD
Obama for America Organziación
Escalabilidad
9
Es utilizado por … III Ubisoft Entertainment
Desarrolladora de videojuegos
Ayuda en la producción
Ooyala Soluciones de video online
Agilidad y velocidad
Coursera Plataforma educativa virtual (MOOC)
Velocidad, servicios y agilidad
Engine Yard Despliegue de apps en la nube
Flexibilidad, escalabilidad y alcance global
10
Es utilizado por … IV Amazon
Tienda Online
Backups en Cinta -> S3: 15h de restablecimiento -> 2,5
Netflix Empresa de video bajo demanda
Velocidad de despliegue y capacidad de almacenamiento
airbnb Mercado comunitario de alquileres
Escalabilidad y análisis (EMR y S3)
Shazam Identificación de música
Escalabilidad, fiabilidad y herramientas: Super Bowl
11
Arquitectura
12
Regiones geográficas I
Se divide en 9 regiones geográficas
13
Regiones geográficas II
EE.UU. Este (Norte de Virginia)
EE.UU. Oeste (Norte de California)
EE.UU. Oeste (Oregón)
Sur América (São Paulo)
Europa (Irlanda)
Europa (Frankfurt)
Asia Pacífico (Singapur)
Asia Pacífico (Tokio)
Asia Pacífico (Sydney)
14
Regiones geográficas III Cada región tiene
Sus propios precios Latencia según nuestra situación y carga de red No todas tienen todos los servicios
https://aws.amazon.com/es/about-aws/global-infrastructure/regional-product-services/
Hay dos regiones especiales AWS GovCloud (EE.UU.) dedicada al Gobierno de los EEUU 2014: Región de China en Pekín. Es exclusiva
Todos los datos están mantenidos siempre en la misma región Si se cambia de región, hay que pagar Excepto S3 que es global
Cada región tiene zonas de disponibilidad aisladas Evitar propagación de problemas Algunos servicios si interoperan entre zonas
DynamoDB, S3
15
Regiones geográficas IV
Latencia: http://www.cloudping.info/
Desde Oviedo, Asturias, España
16
Regiones geográficas VInstancia CPU RAM EEUU
(Oregón y
Virginia)
UE
(Irlanda)
UE
(Frankfurt)
EEUU
(Californi
a)
Asia
(Sídney,
Tokio* y
Singapur
*
America
del Sur
(Sao
Paulo**)
t2.micro 1 1 $0.013 $0.014 $0.015 $0.017 $0.02 $0.027
t2.small 1 2 $0.026 $0.028 $0.03 $0.034 $0.04 $0.054
t2.medium 2 4 $0.052 $0.056 $0.06 $0.068 $0.08 $0.108
t2.large 2 8 $0.104 $0.112 $0.12 $0.136 $0.16 $0.216
17
Precios por hora del EC2: https://aws.amazon.com/es/ec2/pricing/ *: difieren en el resto pero están ordenadas de menos a más cara **: no ofrece todos los tipos de máquinas que las otras
Instancias EC2
http://aws.amazon.com/es/ec2/instance-
types/
AWS dispone de diferentes tipos de instancia
Cada tipo es para un servicio en concreto
Ráfagas (T2), Uso general (M3 y M4),
Optimizadas IT (C3 y C4), Optimizadas en
memoria (R3), Gráficas (G2), Almacenamiento
E/S SSD (I2), Almacenamiento Capacidad HD
(D2)
Cada tipo tiene diferentes tipos de CPU con
diferente potencia y diferente RAM
18
Servicios de AWS I
19
Servicios de AWS II
EC2 (Elastic Compute Cloud)
Ofrece capacidad escalable en la nube con
máquinas virtuales
GNU/Linux, Windows
Instancias, seguridad, despliegue de apps, IPs, …
http://aws.amazon.com/es/ec2/
Lambda (Desde 15/11/2014)
Ejecución de código en base a ciertos eventos
Autogestión de recursos
http://aws.amazon.com/es/lambda/
20
Servicios de AWS III EC2 Container Service (Desde 2015)
Despliegue en el EC2 utilizando “contenedores”
Docker
Despliegue y configuración de software “automático”
http://aws.amazon.com/es/ecs/
Elastic Beanstalk (Desde 2015)
Despliegue, monitorización y escalado de apps
Creación de un “contenedor” y su despliegue
https://aws.amazon.com/es/documentation/elastic-beanstalk/
21
Servicios de AWS IV
S3 (Amazon Simple Storage Service)
Estructura de almacenamiento redundante y
con un escalado “infinito”. Es
http://aws.amazon.com/es/s3/
Storage Gateway
Conector entre dispositivos de software físico
con almacenamiento en la nube
Los datos de la empresa a una instancia S3
http://aws.amazon.com/es/storagegateway/
22
Servicios de AWS V
Glacier
Sistema de almacenamiento barato (0,01
USD/GB), de poco acceso pero seguro
http://aws.amazon.com/es/glacier/
CloudFront
Servicio para distribuir contenido a usuarios finales
http://aws.amazon.com/es/cloudfront/
Elastic File System (Beta en 2015)
Gestor de archivos para el EC2
Soporta múltiples instancias del EC2
http://aws.amazon.com/es/efs/
23
Servicios de AWS VI EMR
Análisis de datos utilizando Hadoop
http://aws.amazon.com/es/elasticmapreduce/
Kinesis
Recopilamiento y procesamiento de datos en tiempo real usando SQL
http://aws.amazon.com/es/kinesis/
Data Pipeline
Procesamiento y transferencia de datos entre sistemas de AWS (S3, EMR, DynamoDB, RDS)
http://aws.amazon.com/es/datapipeline/
24
Servicios de AWS VII
Elasticsearch Service
Gestión del buscador de documentos distribuido Elasticsearch (basado en Lucene)
https://aws.amazon.com/es/elasticsearch-service/
Machine Learning
Servicio de aprendizaje automático escalable
Ofrece patrones de datos
https://aws.amazon.com/es/machine-learning/
25
Arquitectura respecto la App
26
Amazon Elastic
MapReduce
27
¿Qué es?
Servicio Web de AWS
http://aws.amazon.com/es/elasticmapreduce
Procesamiento de grandes volúmenes de datos
Utiliza Apache Hadoop
http://hadoop.apache.org/
Ejecuta una instancia EC2 automáticamente y la borra después de un tiempo
Utiliza S3 para leer y guardar los datos
También se puede utilizar DynamoDB
28
¿Qué ofrece? Permite procesar grandes volúmenes de datos
Análisis, estadísticas, procesamiento, IA, simulaciones, …
Interfaz gráfica para configurar el proceso
Monitorización del estado
SDK http://docs.aws.amazon.com/ElasticMapReduce/lat
est/DeveloperGuide/call-emr-using-sdks.html
Java, Node, PHP, Python, Ruby y .Net
Lanzar programáticamente todo el proceso intregrado en una aplicación
Integración con otros servicios de AWS CloudWatch, EC2, S3, DynamoDB, …
Pagar sólo por lo computado
29
Ciclo de vida
Ciclo de uso
Subir los datos a la estancia S3
Crear y configurar el Clúster Hadoop
Ver el estado
Recoger los datos de una estancia S3
30
Facturación I
https://console.aws.amazon.com/billing/ho
me?#
Comienza con la ejecución del clúster
No en su configuración
Tienen un tiempo mínimo de arranque en el
que no cobran (~10 minutos)
Las fracciones de horas de instancias se
facturarán como horas completas
Termina cuando se detiene el clúster
Si falla, no te cobran EMR pero si S3 (logs)
31
Facturación II
Cada instancia tiene un número
normalizado de horas
Esto depende del hardware de dicha
instancia
32
Facturación III
33
Facturación IV
34
Inscripción
35
Incripciones gratuitas
Hay dos formas
Cuenta gratuita de un año al registrarse
pro primera vez en Amazon
Tiene ciertas limitaciones antes de cobrar
No ofrece ventajas en todos los servicios
Como alumnos
Necesita la inscripción previa
36
Primer año gratuito
37
Ofrece … EC2
750 horas al mes de uso de las instancias t2.micro Linux o Windows 30 GB de instancias
S3 5 GB de almacenamiento
DynamoDB 25 GB de almacenamiento 25 unidades de escritura y lectura
EBS 30 GB de almacenamiento
CloudFront 50 GB de transferencia 2.000.000 de solicitudes HTTP o HTTPS
RDS 750h de uso de micro-instancias 20 GB de almacenamiento 20 GB de copias de seguridad
Y más… http://aws.amazon.com/es/free/
38
Inscripción I
Entramos en Amazon Web Services
http://aws.amazon.com/es/
Creamos una cuenta gratuita
39
Inscripción II
Creáis una cuenta nueva o usáis una que
tengáis
40
Inscripción III
Rellenáis vuestra información de
contacto y bancaria
Cogéis la llamada y seguís los pasos
Introducir los números del registro en el
teclado de vuestro teléfono
41
Inscripción IV
Seleccionáis el plan deseado
42
Comparativa de planes
43
Inscripción como alumno
44
Alumnos I
https://aws.amazon.com/es/education/a
wseducate/
35$-100$ a gastar en un año
Renovable al año
Se puede utilizar todo AWS
Se necesita crear cuenta de Amazon
primero
45
Alumnos II
46
Alumnos III
47
Rellenar y esperar un correo
Se obtiene
en:
Alumnos IV - Correo
48
Copiarlo
Alumnos V - Código
49
Ir a AWS
Perfil -> My Account -> Créditos
Alumnos VI - Código
50
Insertar código promocional recibido en
el correo y canjearlo
Aquí
Alumnos V - Código
51
Os deberá aparecer al final de la página
el crédito de 35$/100$
Key Pair
52
Key Pair I
Primero vamos a la consola de recursos de EC2
https://console.aws.amazon.com/ec2/
Crearemos una clave público-privada (Criptografía asimétrica)
Utilizada por AWS para el acceso a sus servicios
Nos permitirá el acceso a los diferentes servicios
Consola, SDK, instancias EC2, servicios, …
53
Key Pair II
Entramos en “Key Pairs”
54
Key Pair III
Creamos la Key Pair
55
Key Pair IV Seleccionamos un nombre
56
Guardamos la clave privada
.pem: contenedor de claves/certificados
Key Pair V
Ya la tenemos creada
57
EMR: Word Count
58
Introducción
Realizaremos el ejemplo Word Count
Map: lógica en Python
Reduce: función “aggregator” de Hadoop
Contar la frecuencia de aparición de
palabras en un fichero
Crear un clúster
3 instancias de tipo m1.medium
La más barata permitida
59
S3
Entramos en el S3
Creamos un nuevo Bucket
Necesitamos uno antes de ejecutar EMR,
sino fallará
Lo utilizaremos para el resultado del EMR
Introducimos el nombre
Seleccionamos la región
60
Clúster I
Entramos en EMR
Ahora crearemos el Clúster
https://console.aws.amazon.com/elasticm
apreduce/
61
Clúster II
Vamos a “Go to advanced options”
Arriba del todo
62
Clúster III
Vamos a “Configure sample application”
63
Ejemplo
Utilizaremos el ejemplo de Hadoop en
Amazon: Word Count
64
Ejemplo deseado
Carpeta con
el resultado
Log del proceso
Modo Debug
Ejemplo
Utilizaremos el ejemplo de Hadoop en
Amazon: Word Count
65
Ejemplo deseado
Nombre del
bucket
Carpeta para
el log
Modo Debug
Tags
Para mejorar búsquedas de máquinas si
tenemos muchas
No hace falta que pongamos nada
66
Software Configuration
Seleccionamos la versión de Hadoop
EMR: versión de Hadoop de Amazon
Amazon 4.1.0
Hadoop 2.6.0
Contiene mejoras y optimizaciones para AWS
MapR: Hadoop original
67
Otras aplicaciones I
Podemos seleccionar otro software a
instalar
68
Otras aplicaciones II
Quitamos Hive y Pig
No se necesitan en este ejemplo
69
Sistema de ficheros
Permite elegir encriptación en la
conexión
No necesitaremos nada
70
Tipo de instancia I
Elegimos el Hardware deseado
El precio depende del HW y la zona
http://aws.amazon.com/es/elasticmapred
uce/pricing/
71
Tipo de instancia II
Seleccionamos la m1.medium
No permite utilizar la m1.small
Podéis seleccionar menos instancias
72
¡Cuidado!
Seguridad
Seleccionamos la clave de acceso
Con ella accederemos por SSH
Debe ser creada previamente a este paso
Ya la creamos
73
IAM Roles
Seleccionamos los roles de acceso
El por defecto permite que la aplicación
pueda acceder a otros servicios de AWS
Uno para EMR y otro para el EC2
74
Bootstrap Actions
Nos permite incluir acciones (Scripts) en el
inicio del clúster
Se ejecutan también en los nodos
https://docs.aws.amazon.com/es_es/Elastic
MapReduce/latest/ManagementGuide/e
mr-plan-bootstrap.html
75
Steps I
Configuramos los “trabajos” de Hadoop
Como ejecutamos el ejemplo, ya tenemos
el necesario
76
Steps II
Si lo editamos
77
Nombre
Función Map
o función Hadoop
Función Reduce
o función Hadoop
Datos de entrada
Carpeta de salida
Argumentos
Acción si falla.
¡Importante!
Steps III
Repasamos la configuración
Lanzamos el clúster
78
Monitorización I
Con esto el clúster se lanzó y se ejecuta
79
Monitorización II
Automáticamente tras crearla la lanza e
inicia
80
Monitorización III
Gráficas de diferentes procesos
monitorizados
Estado del Hardware y acceso a las
instancias autocreadas
Estado e información detallada de los
pasos y acceso a los logs
Visualización de la configuración
Visualización de las “Bootstrap Actions”
81
Monitorización IV
Empieza a ejecutar los steps hasta
finalizarlos
82
Monitorización V
Steps -> Jobs -> Tasks
83
Resultado I
Podemos ver el resultado desde …
84
Resultado II
Navegando hasta la carpeta adecuada
Podemos descargarlo
Tendremos un fichero por cada “reducer
task”
85
Resultado III
Podemos ver los datos accediendo al S3
86
Resultado IV
Y descargarlos
87
EMR: Jar
88
Introducción Los pasos son los mismos que en el anterior ejemplo
Hay que subir el fichero Jar al S3
Subimos los datos al S3
Todo igual menos a partir del paso “Steps”
Realizaremos un ejemplo de Hipotecas MapReduce
Propio en Java https://gist.github.com/gonzalezgarciacristian/721e7dd6e
87557955b2d
Jar: Campus Virtual Contar el número de hipotecas por estado
https://mega.nz/#!S4ITzL4S!V-dFdNCW0Q6hLGeDDyk8RBs9XM2Q2Koe52fZuWnpbHA
89
Entrada
312.913 líneas
90
Subir datos al S3 I
Creamos una carpeta
91
Subir Jar al S3 II
Entramos en la carpeta “mortgage”
Subimos el Jar llamado “Mortgage.jar”
92
Subir datos al S3 II
Estamos en la carpeta “Mortgage”
Creamos las carpeta “input”
Entramos en “input”
Subimos el fichero de datos
“Consumer_Complaints”
93
Steps I
Si se clonó, borrar el Step existente
Añadir Custom JAR
Configure and add
94
Steps II
95
Localización del
Jar en el S3
Argumentos
Acción a
realizar
si falla
Steps III
Cuidado al poner los nombres de los
directorios
96
Localización del
Jar en el S3
Nombre de
la Clase
Carpeta Input
Carpeta Output
¡No debe existir!
Terminar
Salida
97
EMR
Clústers lanzados
Podemos ver la información de antiguos
lanzamientos
Nos muestra cuáles fallaron
98
Amazon EC2
99
Nueva instancia EC2
100
Lanzamos una instancia
Sistema Operativo
Elegimos el sistema operativo
GNU/Linux (Ubuntu, Suse, …), Windows
101
Tipo de instancia
Seleccionamos la instancia
102
Seguimos …
Continuamos configurando la instancia
103
Configuración I
Opciones existentes …
104
Configuración II
Permite especificar un límite que estemos
dispuestos a pagar
105
Configuración III
Lo configuramos
106
Seguimos …
Pasamos a configurar el almacenaje
107
Espacio y Finalización
Permite añadir más discos a la instancia
108
30 GB máximo en la gratuita
Cuidado si no queréis perderlos o si almacenáis muchos en la gratis
Seguimos …
Lo configuramos y continuamos
109
Tag
Sirven para asignar metadatos para
ayudar al seguimiento de los diferentes
recursos existentes
Podéis añadir alguna, si queréis
110
Seguimos …
Continuamos para configurar el grupo de
seguridad
111
Puertos
Configuramos
Para ahorrarnos problemas, abriremos todos (¡Pero esto nunca más lo hagáis!)
Seguimos
112
Revisión
Revisamos la configuración
113
Seguimos …
Lanzamos si esta correcto
114
Key Pair
Seleccionamos o creamos una clave
115
Instancia creada
La instancia fue creada
116
Proceso finalizado
Ya tenemos la instancia creada
117
Otros … Podemos crear alarmas
Consultar el tiempo encendida
Consultar diferentes estadísticas de uso
Crear tags
Pararla
Monitorizarla
Cambiar la seguridad o la ip
Cambiarle el nombre
Crear nuevos volúmenes (HDs)
…
118
Acceso a Amazon EC2
119
Windows - PuttyGen Para conectarse desde Windows
Descargamos el Putty y el PuttyGen http://www.chiark.greenend.org.uk/~sgtatham/putty/download.ht
ml
Abrimos el PuttyGen y generamos el PPK Fichero de Putty para conexiones realizar conexiones seguras
Deberéis de poner passphrase para evitar problemas en AWS
120
Windows - Putty
Con la clave privada (PPK) ya generada,
abrimos el Putty
Introducimos el DNS o la IP Pública
Cargamos la clave privada
121
GNU/Linux y Mac OS X – SSH I
Para conectarse desde una distro Linux o
Mac OS X
Ir al EC2 -> Seleccionar Estancia -> Connect
122
GNU/Linux y Mac OS X – SSH II Obtendréis las instrucciones Cambiar permisos del fichero .pem
Hay que utilizar el comando SSH con el parámetro –i “fichero.pem” usuario@ip
123
Acceso
Usuario por defecto: ubuntu
Passphrase: La que pusisteis en el PuttyGen
124
Nuestra instancia
Una vez dentro …
125
WinSCP I
Descargamos WinSCP
http://winscp.net/eng/download.php
Permite acceder al sistema de ficheros
del servidor gráficamente
Permite, desde el escritorio, subir y bajar
ficheros
126
WinSCP II
127
WinSCP III
Ingresamos la clave privada
128
WinSCP IV
Escribimos la “passphrase” de la clave
129
WinSCP V
130
131
Amazon Web
Services
Cristian González García v 1.2.2 Noviembre 2015