cloud computing amazon

112
1 Cloud Computing: Introducción & AWS 23-24 Mayo de 2011, 18:00-21:00 Dr. Diego Lz. de Ipiña Glz. de Artaza [email protected] http://paginaspersonales.deusto.es/dipina http://www.slideshare.net/dipina http://www.morelab.deusto.es

Upload: david-xibille

Post on 08-Jun-2015

2.107 views

Category:

Education


4 download

DESCRIPTION

Estudio de integración y desarrollo de soluciones software con Amazon

TRANSCRIPT

Page 1: Cloud Computing Amazon

1

Cloud Computing: Introducción & AWS 23-24 Mayo de 2011, 18:00-21:00

Dr. Diego Lz. de Ipiña Glz. de [email protected]

http://paginaspersonales.deusto.es/dipina http://www.slideshare.net/dipina

http://www.morelab.deusto.es

Page 2: Cloud Computing Amazon

2

Agenda1. Introducción a Cloud Computing (30’)

– Concepto y campos relacionados– Diferentes manifestaciones (SaaS, PaaS e IaaS)– Ejemplos de servicios, infraestructura y aplicaciones en la nube

2. Ejemplo de IaaS: Amazon Web Services (AWS) (90’ + 60’)– Introducción– Amazon Elastic Cloud (EC2)– Amazon Simple Storage Service (S3) y CloudFront– Amazon Simple DB y RDS– Desarrollo de una aplicación de ejemplo sobre AWS

Page 3: Cloud Computing Amazon

3

Misión de la Future Internet (FI)

• Ofrecer a todos los usuarios un entorno seguro, eficiente, confiable y robusto, que: – Permita un acceso abierto, dinámico y

descentralizado a la red y a su información y– Sea escalable, flexible y adapte su rendimiento a

las necesidades de los usuarios y su contexto

Page 4: Cloud Computing Amazon

4

Arquitectura de la Internet del Futuro

Page 5: Cloud Computing Amazon

5

Adapted from SAP Research, 2008, and SEEKDA, 2008

Una multitud de servicios IT conectados, que son ofrecidos, comprados,

vendidos, utilizados, adaptados y compuestos por una red universal de

proveedores, consumidores y agregadores de servicios o brokers

- resultando en -una nueva manera de ofrecer, utilizar, y

organizar funcionalidad soportada por IT

Internet de los Servicios

Page 6: Cloud Computing Amazon

6

Campos de Actuación de la Internet de los Servicios

• Cloud computing: virtualización de servicios y optimización de recursos tanto en capacidad de procesamiento como almacenamiento

• Open service platforms: modularidad de servicios para facilitar su integración por usuarios finales

• Autonomic computing: sistemas autogestionados• Green IT: optimización del consumo energético

Page 7: Cloud Computing Amazon

7

El Futuro del Desarrollo Software

Page 8: Cloud Computing Amazon

8

Infraestructura Virtualizada:Cloud Computing

Un paradigma de computación emergente donde los datos y servicios residen en centros de datos muy escalables que pueden ser accedidos ubicuamente desde cualquier dispositivo conectado a Internet1

Merrill Lynch: Cloud computing market opportunity by 2011 =$95bn in business and

productivity apps +$65bn in online advertising =

$160bn

(1) Source: IBM

Page 9: Cloud Computing Amazon

9

Cloud Computing es …

• … capacidad computacional y almacenamiento virtualizada expuesta mediante infraestructura agnóstica a la plataforma y accedida por Internet – Recursos IT compartidos en demanda, creados y

eliminados eficientemente y de modo escalable a través de una variedad de interfaces programáticos facturados en base a su uso

Page 10: Cloud Computing Amazon

10

Forrester Research

“A pool of abstracted, highly scalable, and managed compute infrastructure capable of hosting end-customer applications and billed by consumption1”

1- “Is Cloud Computing Ready for The Enterprise?” Forrester Research, Inc.

Page 11: Cloud Computing Amazon

11

The “Cloud” = 10X Improvement• Fácil de usar: hazlo tu mismo remotamente de cualquier

lugar en cualquier momento• Escalable: controla tu infraestructura con tu aplicación• Riesgo: nada que comprar, cancela inmediatamente• Robustez: basado en gran hardware empresarial• Coste: paga sólo por lo que uses

Page 12: Cloud Computing Amazon

12

Evolución hacia Cloud Computing• La coexistencia y limitaciones de cluster

computing y supercomputing dieron lugar a grid computing

• De grid computing progresamos hacia utility computing, i.e. Servicios computacionales empaquetados como agua, electricidad, etc.

• Esto derivó en Cloud Computing, es decir, todo como servicio (XaaS) :• Plataforma como Servicio• Software como Servicio• Infraestructura como Servicio

Page 13: Cloud Computing Amazon

13

Múltiples Descripciones Gráficas de la “Cloud”

Page 14: Cloud Computing Amazon

14

Múltiples Descripciones Gráficas de la “Cloud”

Page 15: Cloud Computing Amazon

15

Arquitectura Cloud Computing

Page 16: Cloud Computing Amazon

16

Características de Cloud

Tipos de despliegue• Cloud privada

– Propiedad de o alquilada por una empresa (centros de datos,…)

• Cloud comunitaria– Infraestructura compartida por

una comunidad específica• Cloud pública

– Vendida al público, gran escala (ec2, S3,…)

• Cloud híbrida– Composición de dos o más

clouds

Manifestaciones • Cloud Software as a Service (SaaS)

– Uso de la aplicación del proveedor sobre la red, e.j., Salesforce.com,…

• Cloud Platform as a Service (PaaS) – Despliega aplicaciones creadas por los

clientes a la nube, e.j. Google App Engine, Microsoft Azure, …

• Cloud Infrastructure as a Service (IaaS) – Alquilar procesamiento, almacenamiento,

capacidad de red y otros recursos computacionales e.j., EC2 – Elastic Compute Cloud, S3 – Simple Storage Service, Simple DB,…

Page 17: Cloud Computing Amazon

17

Diferentes Manifestaciones

Page 18: Cloud Computing Amazon

18

Cloud Computing vs. Centros de Datos Tradicionales

Page 19: Cloud Computing Amazon

19

Componentes de Cloud Computing

Page 20: Cloud Computing Amazon

20

Taxonomía de Cloud Computing

Page 21: Cloud Computing Amazon

21

Evolución de Tecnologías de Cloud Computing

• Maduración de tecnología de virtualización• La virtualización permite nubes de computación• Las nubes de computación demandan nubes de

almacenamiento• Las nubes de almacenamiento y computación crean

infraestructura cloud• La infraestructura cloud da lugar a plataformas y aplicaciones

cloud• Diferentes tipos de cloud dan lugar a Cloud Aggregators• Nichos de requisitos dan lugar a Cloud Extenders

Page 22: Cloud Computing Amazon

22

Aplicaciones Cloud• Corresponden con lo que se denomina como SaaS• Manifestación de cloud más popular• Ejemplos: SalesForce, Gmail, Yahoo! Mail, rememberthemilk,

doodle, Google Docs, DropBox, picnik, Panda Cloud Antivirus, scribd, slideshare

• Ventajas: Libre, Fácil, Adopción de consumo• Desventajas: funcionalidad limitada, no hay control de acceso

a la tecnología subyacente

Page 23: Cloud Computing Amazon

23

Plataformas Cloud• Contenedores de aplicaciones• Entornos cerrados• Ejemplos: Google App Engine, Microsoft Azure, Heroku,

Mosso, Engine Yard, Joyent o Force.com• Ventajas: buenas para desarrolladores, más control que en las

aplicaciones cloud, configuradas estrechamente• Desventajas: restringidas a lo que está disponible, otras

dependencias, dependencia tecnológica

Page 24: Cloud Computing Amazon

24

Infraestructura Cloud

• Proveen nubes de computación y almacenamiento• Ofrecen capas de virtualización (hardware/software)• Ejemplos: Amazon EC2, GoGrid, Amazon S3, Nirvanix, Linode,

Arsys Cloud Flexible, EyeOS• Ventajas: control completo del entorno y la infraestructura• Desventajas: precio premium, competencia limitada

Page 25: Cloud Computing Amazon

25

Extensores de la Cloud

• Proveen extensiones a infraestructura y plataformas cloud con funcionalidad básica

• Ejemplos: Amazon SimpleDB, Amazon SQS, Google BigTable• Ventajas: extienden la funcionalidad de las nubes de

computación y almacenamiento para integrar sistemas heredados u otras cloud

• Desventajas: a veces requieren el uso de plataformas o infraestructura específica

Page 26: Cloud Computing Amazon

26

Agregadores Cloud

• Se apoyan en varias infraestructuras cloud para su gestión

• Ejemplos: RightScale, Appistry• Ventajas: proveen más opciones para entornos cloud• Desventajas: dependientes de proveedores de cloud

Page 27: Cloud Computing Amazon

27

¿Qué framework o plataforma usar para mis aplicaciones Cloud?

Page 28: Cloud Computing Amazon

28

Amazon Web Services (AWS)• AWS proporciona una infraestructura de servicios elástica donde alojar

computación, almacenamiento o sistemas empresariales– Amazon Elastic Cloud (EC2) – permite configurar y ejecutar un Amazon Machine

Instance (AMI) – servidores en demanda– Amazon Simple Storage Service (S3) – permite guardar y recuperar datos en la nube– Amazon SimpleDB – proporciona la funcionalidad de una base de datos sobre S3 –

basada en pares clave-valor– Amazon Simple Queue Service (SQS) – servicio de mensajería para encolar tareas y

mensajes– Amazon Relational Database Service (RDS) – servicio web para crear, operar y escalar

una base de datos en la nube– Amazon CloudFront – copias de tus objetos más populares son cacheados en una red de

nodos alrededor del mundo– …

• Documentación: http://aws.amazon.com/documentation/

Page 29: Cloud Computing Amazon

29

Amazon Web Services (AWS)

Page 30: Cloud Computing Amazon

30

Amazon Web Services (AWS)

Page 31: Cloud Computing Amazon

31

Amazon Elastic Compute Cloud: EC2• Permite ejecutar varios servidores Linux o Windows virtuales en demanda,

facilitando tantos ordenadores como necesites para procesar tus datos o ejecutar una aplicación

• Otorga acceso root al sistema operativo de cada servidor, un cortafuegos para gestionar el acceso a la red y la libertad para instalar cualquier software

• Una vez configurado un servidor adecuadamente, se guarda como Amazon Machine Image (AMI) que puede ser lanzada para crear máquinas virtuales en demanda

• La EC2 API (Query o SOAP) ofrece funcionalidad para empezar y parar instancias de servidor, aplicar permisos de acceso y red o gestionar tus imágenes de servidor.

– Cada servidor individual se gestiona usando herramientas Linux o Windows sobre una sesión de shell segura.

• Se factura en función de los recursos consumidos : CPU y datos transferidos• Más información en: http://aws.amazon.com/ec2

Page 32: Cloud Computing Amazon

32

Conceptos EC2• AMI (Amazon Machine Instance)

– Basadas en XEN• Instancia: AMI en ejecución

– Es necesario crear instancias EBS si queremos pararlas y reiniciarlas– Dos IPs: IP pública e IP elástica

• Volúmenes EBS (Elastic Block Storage): almacenamiento para las instancias

• Conceptos de credenciales:– Access Key ID y Secret Access Key– X.509 certificate y clave privada (SOAP y EC2 Tools)

• IP Elástica – asociada a tu cuenta no una instancia, te permite controlar a qué instancia o instancias apunta (útil por robustez).

• Conceptos y herramientas para usar EC2 en: – http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html

Page 33: Cloud Computing Amazon

33

EC2: Regiones y Zonas de Disponibilidad

• Las instancias en EC2 se pueden colocar en diferentes localizaciones:– Las regiones están dispersas geográficamente (ver tabla debajo)– Las zonas de disponibilidad son localizaciones diferentes dentro de una Región que

están aisladas de fallos en otras zonas y facilitan conectividad de red económica, de baja latencia a otras zonas de disponibilidad dentro de la Región

Region Endpoint

US-East (Northern Virginia) Region ec2.us-east-1.amazonaws.com

US-West (Northern California) Region ec2.us-west-1.amazonaws.com

EU (Ireland) Region ec2.eu-west-1.amazonaws.com

Asia Pacific (Singapore) Region ec2.ap-southeast-1.amazonaws.com

Page 34: Cloud Computing Amazon

34

CloudWatch• Amazon CloudWatch es un servicio que proporciona monitorización para

recursos gestionados por AWS– Muestra utilización de recursos como CPU, lecturas y escrituras de disco o

tráfico de red• http://aws.amazon.com/cloudwatch/

– http://awsdocs.s3.amazonaws.com/AmazonCloudWatch/latest/acw-dg.pdf– http://awsdocs.s3.amazonaws.com/AmazonCloudWatch/latest/acw-qrc.pdf

• Elastic Load Balancing distribuye automáticamente el tráfico de aplicación entrante entre varias instancias EC2– http://aws.amazon.com/elasticloadbalancing/

• http://awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-dg.pdf• http://awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-qrc.pdf

• Auto Scaling permite escalar automáticamente hacia arriba o abajo tu capacidad EC2 en función de triggers que defines– http://aws.amazon.com/autoscaling/

• http://awsdocs.s3.amazonaws.com/AutoScaling/latest/as-qrc.pdf

Page 35: Cloud Computing Amazon

35

CloudWatch en Funcionamiento

Page 36: Cloud Computing Amazon

36

CloudWatch en Funcionamiento

Page 37: Cloud Computing Amazon

37

Elastic Load Balancing en Funcionamiento

Page 38: Cloud Computing Amazon

38

Autoscaling en Funcionamiento

Page 39: Cloud Computing Amazon

39

Amazon Simple Storage Service: S3• Ofrece espacio de almacenamiento seguro para cualquier

tipo de datos en los data centers de Amazon– Es una alternativa a construir, mantener y utilizar tus propios sistemas

de almacenamiento – No tiene límites sobre cuánta información, por cuánto tiempo y con

qué ancho de banda puede transferirse.

• Ofrece una simple API agnóstica a la información a guardar– Depende de ti qué datos y qué representación interna tienen– El modelo de datos interno consta de dos tipos de recursos de

almacenamiento:• Objects: guardan datos y metadatos• Buckets: contenedores que pueden contener infinidad de objetos

– Incorpora mecanismos de control de acceso (ACL) que pueden aplicarse a objetos y buckets

Page 40: Cloud Computing Amazon

40

Amazon Simple Storage Service: S3• Los recursos en S3 se identifican mediante URIs:

– http://<s3-repository>.amazonaws.com/<bucket-name>/<folder-name>/<s3object-name>

• Ejemplo: https:/s3-eu-west-1.amazonaws.com/misimages/oct2010/image1.png

• Algunas características de su arquitectura son:– Los objetos S3 no pueden ser manipulados como ficheros estándar– Los cambios sobre ellos tardan en propagarse– Las peticiones a objetos pueden fallar ocasionalmente– Permite guardar versiones– Se deben resolver las direcciones IP de los nombres DNS de S3 periódicamente – Se pueden guardar infinitos objetos de hasta 5GB en tamaño– Se paga por almacenamiento, transferencia y operaciones

• Algunos posibles usos de S3:– Compartir grandes ficheros– Como repositorio de back-up de tus ficheros– Sistema de ficheros mapeado sobre S3 (ElasticDrive)

• Más información en: – http://aws.amazon.com/s3/,

Page 41: Cloud Computing Amazon

41

Amazon CloudFront• Mientras que en Amazon S3 se guardan contenidos (ficheros) con

CloudFront se garantiza que tus objetos en S3 buckets son servidos rápidamente.

– Lo hace copiando los ficheros en buckets S3 a diferentes edge locations que sirven contenidos a los usuarios finales.

– Tales edge locations se distribuyen por el planeta asegurándose que los contenidos son servidos del servidor Amazon más cercano

• Es ventajoso porque el 80-90% del tiempo invertido esperando a una respuesta web se debe a la descarga de los componentes de la página: imágenes, hojas de estilo, scripts, Flash, etc. – La clave es colocar la parte estática de nuestra web en una red de distribución

de contenidos como Akamai. • Con CloudFront hay que pagar las transferencias desde S3 a las

localizaciones de los bordes. • Más información en: http://aws.amazon.com/cloudfront/

Page 42: Cloud Computing Amazon

42

¿Cómo usar CloudFront?• Las redes de distribución de contenidos tienen servidores distribuidos por Internet y

determinan la ruta más rápida y corta entre el servidor que aloja el contenido y el usuario final

– Los 4 sencillos pasos que hay que seguir para utilizar CloudFront han sido extraídos del artículo: http://www.labnol.org/internet/setup-content-delivery-network-with-amazon-s3-cloudfront/5446

1. Get the S3 Fox add-on for Firefox and log-in to your Amazon S3 account. Now right-click your S3 bucket and select "Manage Distributions.“

2. Next we’ll associate a CNAME (some easy to remember sub-domain name) with our S3 bucket so it becomes easy to link to the files from our web pages. In this example, I use the web address "cache.labnol.org" and then click Create Distribution.

3. The status will change from "In Progress" to "Deployed". Now copy the resource URL to the clipboard which is of the format xyz.cloudfront.net

4. Log in to your account on your web hosting service’s website, and go to the DNS management page. Create a new CNAME record as shown in the screenshot.

Page 43: Cloud Computing Amazon

43

Amazon SimpleDB• Almacén de claves/valor: trabaja con los conceptos domain, item y attribute• Diseñado para minimizar la complejidad y el coste de mantenimiento de tus datos • Guarda pequeñas piezas de información textual en una estructura de base de datos sencilla

simple de gestionar, modificar y buscar– Ofrece su propio lenguaje de consultas de datos– Ejemplos de consultas sencillas:

• ['Date' > '2007-07-01' and Not 'Date' starts-with '2007-07-04']• ['Suburb' = 'Newtown'] or['Price' < '100000'] intersection ['Bedrooms' =

'3']

• Si tus aplicaciones están basadas en bases de datos simples, este servicio puede reemplazar a tu RDBMS dejándote con una pieza de infraestructura menos que comprar y mantener

• No exige la especificación de un schema previo, tú puedes modificar la estructura y contenidos de tu base de datos cuando quieras

• Indexa cada pieza almacenada• Guarda tu información de modo seguro, y redundante en la red de data centers de Amazon• Pagas por almacenamiento, datos transferidos y operaciones• Más información en: http://aws.amazon.com/simpledb/

Page 44: Cloud Computing Amazon

44

Amazon SimpleDB• Ofrece tres recursos principales:

– Dominios: nombre de un contenedor con información relacionada (similar a base de datos)

• Solamente se procesan consultas dentro de un dominio– Elementos: es una colección con nombre de los atributos que representan un objeto de

datos– Atributos: es una categoría individual de información guardada dentro de un elemento.

Identificado por un nombre contiene una colección de valores de tipo string, obligatorio que tenga al menos un valor.

• Es una base de datos sencilla, no un RDBMS:– Los elementos se guardan en una estructura jerárquica, no una tabla– Todos los datos se guardan como texto– Capacidades de consulta limitadas– La consistencia de la información depende de retardos de propagación– Los valores de atributos pueden ser colecciones y alcanzar hasta 1024 bytes

• SimpleDB está concebido para usarse en conjunción con S3

Page 45: Cloud Computing Amazon

45

Amazon SimpleDB

Page 46: Cloud Computing Amazon

46

Example DataSet con SimpleDBItem Name Title Author Year Number of

PagesKeywords Rating

0385333498

The Sirens of Titan

Kurt Vonnegut

1959 00336 BookPaperback

*****5 starsExcellent

0802131786

Tropic of Cancer

Henry Miller 1934 00318 Book ****

1579124585

The Right Stuff

Tom Wolfe 1979 00304 BookHardcoverAmerican

****4 stars

B000T9886K

In Between Paul Van Dyk

2007 CDTrance

4 stars

B00005JPLW

300 Zack Snyder

2007 DVDActionFrank Miller

***3 starsNot bad

B000SF3NGK

Heaven's Gonna Burn Your Eyes

Thievery Corporation

2002 *****

Page 47: Cloud Computing Amazon

47

Ejemplos de ConsultasQuery Expression Description Result Setselect * from mydomain where Title = 'The Right Stuff'

Retrieves all items where the attribute "Title" equals "The Right Stuff."

1579124585

select * from mydomain where Year > '1985'

Retrieves all items where "Year" is greater than "1985."Although this looks like a numerical comparison, it is lexicographical. Because the calendar won't change to five digits for nearly 8,000 years, "Year" is not zero padded.

B000T9886K, B00005JPLW, B000SF3NGK

select * from mydomain where Rating like '****%'

Retrieves all items that have at least a 4 star (****) rating.The prefix comparison is case-sensitive and exact and does not match attributes that only have the "4 star" value, such as item B000T9886K.Note: The like operator is similar to starts-with and only supports % at the end of the string.

0385333498, 1579124585, 0802131786, B000SF3NGK

select * from mydomain where Pages < '00320'

Retrieves all items that have less than 320 pages.This attribute is zero padded in the data set and the select expression, which allows for proper lexicographical comparison between the strings. Items without this attribute are not considered.

1579124585, 0802131786,

Page 48: Cloud Computing Amazon

48

Amazon Relational Database Service (Amazon RDS)

• Es un servicio web que facilita la instalación, operación y escalabilidad de una base de datos relacional en la nube

– Te da completo acceso a las capacidades de una base de datos MySQL• Las aplicaciones que ya funcionan con MySQL también lo harán con Amazon RDS

– Amazon RDS modifica el software MySQL para programar la creación de back-ups o garantizar la escalabilidad, todo ello controlado a través de una API sencilla.

• Solamente se paga por los recursos utilizados. • Más información en: http://aws.amazon.com/rds • Herramienta: Amazon RDS Command Line Toolkit

– http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2928&categoryID=294

• Tutorial en: http://docs.amazonwebservices.com/AmazonRDS/latest/GettingStartedGuide/

Page 49: Cloud Computing Amazon

49

Amazon SQS

• Implementa el servicio de mensajería basado en colas

• Los mensajes son siempre strings• Útil para crear trabajos asíncronos y descargar

de actividad a un web server• Se paga por mensajes y datos transferidos• Más información en:

http://aws.amazon.com/sqs

Page 51: Cloud Computing Amazon

51

AWS Free User Tier• La condiciones de uso son las siguientes:

– AWS Free Usage Tier (Per Month):• 750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-

bit and 64-bit platform support) – enough hours to run continuously each month*• 750 hours of an Elastic Load Balancer plus 15 GB data processing*• 10 GB of Amazon Elastic Block Storage, plus 1 million I/Os, 1 GB of snapshot

storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests*• 5 GB of Amazon S3 storage, 20,000 Get Requests, and 2,000 Put Requests*• 30 GB per of internet data transfer (15 GB of data transfer “in” and 15 GB of data

transfer “out” across all services except Amazon CloudFront)*• 25 Amazon SimpleDB Machine Hours and 1 GB of Storage**• 100,000 Requests of Amazon Simple Queue Service**• 100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for

Amazon Simple Notification Service**– In addition to these services, the AWS Management Console is available at no

charge to help you build and manage your application on AWS.

Page 52: Cloud Computing Amazon

52

Proceso para usar AWS EC2

• Vamos a seguir el siguiente workflow para aprender a usar EC2, crear instancias y conectarnos a ellas, tanto desde Windows como UNIX.

Page 53: Cloud Computing Amazon

53

Fase 1: Registro en AWS

• Para utilizar Amazon EC2, necesitas una cuenta Amazon AWS– Ir a http://aws.amazon.com/ec2 y hacer click en Sign Up

for Amazon EC2.– Seguir las instrucciones de pantalla

• Pasarás a estar suscrito también a Amazon Simple Storage and Amazon Virtual Private Cloud– Recibirás una llamada donde introducir el PIN que te

asignan vía web

Page 54: Cloud Computing Amazon

54

Fase 1: Registro en AWS

Page 55: Cloud Computing Amazon

55

Fase 1: Registro en AWS

Page 56: Cloud Computing Amazon

56

Fase 1: Registro en AWS

Page 57: Cloud Computing Amazon

57

Fase 1: Registro en AWS

Page 58: Cloud Computing Amazon

58

Fase 1: Registro en AWS

Page 59: Cloud Computing Amazon

59

Fase 1: Obteniendo los Identificadores de Acceso

• Vete a http://aws.amazon.com/account/, logueate, haz click en Security Credentials y recupera:– Access Key ID y Access Key, pestaña Access Keys– Account number se ve en la parte derecha, superior de la

página de Security Credentials– X.509 Private Key File (pestaña X.509 Certificates)– X.509 Certificate File (pestaña KeyPairs)

• Los siguientes pantallazos muestran cómo obtener estos datos – Guárdalos en ficheros para luego usarlos en tus

aplicaciones

Page 60: Cloud Computing Amazon

60

Fase 1: Obteniendo los Identificadores de Acceso

Page 61: Cloud Computing Amazon

61

Fase 1: Obteniendo los Identificadores de Acceso

Page 62: Cloud Computing Amazon

62

Fase 1: Registrarse para EC2 y S3

• Acceder a la consola de administración de AWS en: http://aws.amazon.com/console

– Logearse o – Registrarse

• Durante el registro se solicitan los datos de cargo bancario• Recibirás un email de confirmación tanto para EC2 como S3

– Alternativamente puedes registrarte individualmente en los diferentes productos yendo al enlace Products y seleccionando el servicio concreto en: http://aws.amazon.com/account/

Page 63: Cloud Computing Amazon

63

Fase 1: Registrarse para EC2 y S3

Page 64: Cloud Computing Amazon

64

Fase 1: Registrarse para EC2 y S3

Page 65: Cloud Computing Amazon

65

Fase 2: Lanzar una Instancia de EC2

• Iniciar el “dashboard”, panel de control de AWS Console y realizar los siguientes pasos:https:/console.aws.amazon.com1. Pulsar el botón de nueva instancia2. Seleccionar una instancia concreta

• Fedora LAMP Web Server para ejemplo completo (ami-f04f6484)• Instancia AMI de Windows básica• Instancia AMI de UNIX básica

3. Generar o reutilizar un par de claves4. Guardar las claves5. Configurar el firewall6. Revisar los detalles de la instancia desplegada7. Lanzar la instancia y comprobar que está en ejecución

Page 66: Cloud Computing Amazon

66

Paso 2.1: Lanzar una Nueva Instancia

Page 67: Cloud Computing Amazon

67

Paso 2.2: Seleccionar la instancia (ami-f04f6484)

Page 68: Cloud Computing Amazon

68

Paso 2.3: Configurar la Instancia

Page 69: Cloud Computing Amazon

69

Paso 2.4: Asignar Par de Claves

Page 70: Cloud Computing Amazon

70

Paso 2.5: Configurar el Firewall

Page 71: Cloud Computing Amazon

71

Paso 2.6: Revisar los Detalles de la Instancia Configurada

Page 72: Cloud Computing Amazon

72

Paso 2.7: Lanzar la Instancia y Operar sobre Ella

Page 73: Cloud Computing Amazon

73

Detalles de la Instancia Creada

Page 74: Cloud Computing Amazon

74

Fase 2: Lanzando Otras Instancias

• Vamos a lanzar otra instancia en Windows y otra en UNIX con soporte EBS:1. Accede a AWS Management Console:

http://aws.amazon.com/console/ y regístrate2. Desde EC2 Console Dashboard, haz click en Launch Instance3. Elige un AMI, vamos a trabajar bien con Fedora 8 Core o Microsoft

Windows Server 2008a. Selecciona y acepta los detalles de la instanciab. Crea un par de claves, que es un credencial utilizado para conectarse a una instanciac. Crea un grupo de seguridad que define reglas de firewall para tu instancia

4. Revisa tus configuraciones y pulsa el botón Launch

Page 75: Cloud Computing Amazon

75

Fase 3: Accediendo a la instancia vía web (Servidor LAMP Fedora)

Page 76: Cloud Computing Amazon

76

Fase 3: Modificando la Página por Defecto

• Pasos a seguir en cliente UNIX:1. Logeo en el servidor remoto:

ssh -i <instancia> root@public_dns– ssh –i ami-f04f6484 root@ec2-79-125-61-

32.eu-west-1.compute.amazonaws.com

2. Vamos al directorio htdocscd /home/webuser/helloworld/htdocs

3. Modificamos la página index.php (ver contenido siguiente trasparencia)

Page 77: Cloud Computing Amazon

77

Fase 3: Ejemplo de contenido para index.php

<html><head>

<title>Nuestro propio Servidor Web</title><meta http-equiv="Content-Type" content="text/html; charset-

ISO-8859-1"></head><body>

<h1>Nuestro propio Servidor Web ejecut&aacute;ndose en AWS</h1><p>Una demostraci&oacute;n del curso de Amazon Web Services.

Universidad de Deusto.</p><p>Ejemplo adaptado de

<a href="http://www.slideshare.net/ronaldbradford/getting-started-with-mysql-in-amazon-web-services">

http://www.slideshare.net/ronaldbradford/getting-started-with-mysql-in-amazon-web-services

</a></p>

</body></html>

Page 78: Cloud Computing Amazon

78

Fase 3: Herramientas para Conectarse a Instancia UNIX desde Windows

• Software necesario (cygwin también valdría):– Putty – Putty es un terminal cliente de SSH, descargable de:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html– PuttyGen – programa que convierte la clave privada de Amazon al

formato PPK usado por putty• Se descarga de la misma página que putty

– WinSCP – cliente de SFTP y SSH para Windows que permite la transferencia segura de ficheros entre ordenadores. Soporta los protocols SSH, FTP y SCP.

• Se descarga desde: http://sourceforge.net/projects/winscp/

• Tutorial detallado en: – http://it.toolbox.com/blogs/managing-infosec/connecting-to-amazon-

aws-from-windows-to-a-linux-ami-30656

Page 79: Cloud Computing Amazon

79

Fase 3: Conectándose a UNIX AMI desde Windows – Conversión de Clave para putty

• Cargar el fichero LAMPServerFedora.pem y pulsar en Save Private Key que guardará un fichero con extensión ppk que usa putty

Page 80: Cloud Computing Amazon

80

Fase 3: Conectándose a UNIX AMI desde Windows – Logeo en Windows con putty

1. Arrancar putty2. Introducir el nombre público DNS del servidor (ec2-79-125-61-32.eu-west-

1.compute.amazonaws.com)3. Ir a al menú ssh->Auth->Browse y cargar clave privada LAMPServerFedora.ppk4. Loguéate como root

Page 81: Cloud Computing Amazon

81

Fase 3: Accediendo a ficheros en UNIX AMI desde Windows – Edición de index.php con WinSCP

Page 82: Cloud Computing Amazon

82

Página Final en Instancia EC2

Page 83: Cloud Computing Amazon

83

Fase 3: Conectándose a una Instancia de Windows

• Obteniendo la contraseña– Haz click con el botón derecho del ratón sobre la instancia Windows y

selecciona “Get Windows Password”– Aparece el diálogo Retrieve Default Windows Administrator

Password, pega ahí la private key obtenida antes, parte del fichero de claves entre BEGIN RSA PRIVATE KEY y END RSA PRIVATE KEY

– Selecciona descrifrar clave– Conectarse a la instancia usando Remote Desktop Connection

• Start All Programs Accessories • Introduce el nombre DNS de la instancia• Logéate como Administrator/<password-recuperada>

Page 84: Cloud Computing Amazon

84

Fase 4: Terminar Instancia

• No es lo mismo “parar” (stop) que “terminar” (terminate) en AWS– Cuando terminas una instancia no la puedes

reiniciar, ¡dejas de pagar!– Sólo la puedes parar si tiene un EBS asociado

• Para terminar una instancia en la AWS Console, haz click con el botón derecho del ratón y selecciona terminate

Page 85: Cloud Computing Amazon

85

Probando S3

Page 86: Cloud Computing Amazon

86

Probando SimpleDB• Scratchpad for SimpleDB es una aplicación web que

permite usar Amazon SimpleDB sin necesidad de realizar programación– http://developer.amazonwebservices.com/connect/entry.j

spa?externalID=1137

• Te permite:– Crear dominios – Poblarlos con datos– Consultarlos– Modificarlos– Borrar el dominio

Page 87: Cloud Computing Amazon

87

Probando SimpleDB

Page 88: Cloud Computing Amazon

88

Probando RDS• Para utilizarlo hay que seguir los siguientes pasos:

1. Ir a http://aws.amazon.com/rds y registrarte con Amazon RDS2. Lanzar la instancia y rellenar los datos de tamaño, tipo de base de

datos, nombre y clave de usuario3. Asignar accesos a la instancia de la base de datos, se utiliza CIDR

(Classless Inter-Domain Routing) para indicar sólo una dirección IP o un conjunto de direcciones desde las que se permite la conexión

• Acceso total: 0.0.0.0/0

4. Conectarse a la instancia usando la herramienta mysql, en la descripción de la instancia en AWS Console aparecerá el string de conexión

• mysql -h <nombre-host-amazon-rds> -u <username> -p

5. Terminar la instancia para que dejen de facturarnos por su uso

Page 89: Cloud Computing Amazon

89

Probando SQS• El Simple Queue Service (SQS) puede probarse con una

sencilla herramienta: JavaScript Scratchpad for Amazon SQS– http://developer.amazonwebservices.com/connect/entry.j

spa?externalID=1254&categoryID=122

Page 90: Cloud Computing Amazon

90

Probando CloudFront

• Ejemplo de uso desde consola de administración de Amazon

Page 91: Cloud Computing Amazon

91

Desregistro de un Servicio

• Para cancelar un servicio:– Firma en AWS– Haz click en Your Account y luego en Account

Activity.– Selecciona View/Edit Service debajo del servicio

que quieres cancelar– Haz click en el enlace cancel this service.

Page 92: Cloud Computing Amazon

92

Calculadora de Costes en Amazon

• La siguiente herramienta te permite estimar costes de consumo de servicios en Amazon: – http://calculator.s3.amazonaws.com/calc5.html

• Además, desde la página http://aws.amazon.com/account, se puede acceder al menú “Account Activity” que ilustra el gasto actual incurrido.

Page 93: Cloud Computing Amazon

93

APIs web: SOAP vs. REST

SOAP: Simple Object Access Protocol• Define cómo dos objetos en diferentes

procesos pueden comunicarse por medio de intercambio de datos XML.

• Deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC.

• Fue creado por Microsoft, IBM, y otros y actualmente se encuentra bajo el auspicio de la W3C.

• Su arquitectura consiste en varias capas de especificaciones para formato de mensajes:

• Message Exchange Patterns (MEP)• Protocolos de transporte (SMTP y

HTTP/S)• Modelos de procesado de mensajes• Protocolo de extensibilidad• WS-*

REST: Represantional State Transfer• Estilo de arquitectura software para

sistemas de hypermedia distribuidos como la WWW.

• Introducido en la tésis doctoral de Roy Fielding en el año 2000.

• Se refiere a una colección de principios de arquitectura de red, que marcan cómo definir e invocar los recursos.

• El término se usa a veces para describir una simple interfaz que transmite datos de un dominio específico por HTTP sin capas adicionales como SOAP o uso de cookies.

• Los sistemas que cumplen los principios marcados por Fielding suelen ser referidos como sistemas RESTful.

Page 94: Cloud Computing Amazon

94

Programación en AWS• Interfaces REST:

– Utilizan componentes estándar de peticiones HTTP para representar la acción de la API a ejecutar:

• Métodos HTTP: describen la acción a ejecutar por la petición• Universal Resource Identifier (URI): identifican el recurso sobre el que se va a ejecutar la acción• Cabeceras de petición: ofrecen más metadatos sobre la petición o el peticionario• Cuerpo de la petición: transfieren los datos que nutrirán la acción a ejecutar por el servicio

• Interfaces Query:– También hacen uso del protocolo HTTP para representar acciones de la API, pero lo

hacen a través de parámetros (pares nombre valor) que indican la acción y los datos que nutrirán tal acción.

– Se suelen indicar en la URI de una petición GET o el cuerpo de un POST– Esta interfaz es considerada como REST-like no RESTful, no es un enfoque puro de REST

sino que explota HTTP• Interfaces SOAP

Page 95: Cloud Computing Amazon

95

APIs Disponibles por Servicio AWS

Service REST API Query API SOAP API

S3 Yes No Yes

EC2 No Yes Yes

SQS Yes Yes Yes

FPS No Yes Yes

SimpleDB No Yes Yes

RDS No Yes Yes

Page 96: Cloud Computing Amazon

96

Revisión APIs de los Principales Servicios

• EC2:– http://aws.amazon.com/documentation/ec2/ (mirar quick reference card)– http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/

• S3: – http://aws.amazon.com/documentation/s3/– http://docs.amazonwebservices.com/AmazonS3/latest/gsg/index.html?WorkingWithS3.html– http://docs.amazonwebservices.com/AmazonS3/2006-03-01/API/

• SimpleDB:– http://aws.amazon.com/documentation/simpledb/– http://docs.amazonwebservices.com/AmazonSimpleDB/latest/GettingStartedGuide/index.html– http://docs.amazonwebservices.com/AmazonSimpleDB/latest/DeveloperGuide/

• SQS Documentation:– http://aws.amazon.com/documentation/sqs/– http://docs.amazonwebservices.com/AWSSimpleQueueService/latest/APIReference/

• RDS– http://aws.amazon.com/documentation/rds – http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference/

Page 97: Cloud Computing Amazon

97

Invocación de Servicios Web AWS

• Recetas para el uso de la API SOAP desde Java:– Recipe 27.5 Getting Set Up with Amazon's Web Services

API• http://g168.net/txt/servlet/0596005725_jsvltjspckbk-chp-27-sect-

5.html#jsvltjspckbk-CHP-27-SECT-5

– Recipe 27.6 Creating a JavaBean to Connect with Amazon• http://g168.net/txt/servlet/0596005725_jsvltjspckbk-chp-27-sect-

6.html#jsvltjspckbk-CHP-27-SECT-6

– Recipe 27.7 Using a Servlet to Connect with Amazon• http://g168.net/txt/servlet/0596005725_jsvltjspckbk-chp-27-sect-

7.html

Page 98: Cloud Computing Amazon

98

AWS SDK for Java• Ofrece una API basada en Java para acceder a los servicios de infraestructura de

AWS, haciendo sencillo el desarrollo de aplicaciones que usan las características de la nube AWS: eficiente en costes, escalable y robusta

– Descargar de: http://aws.amazon.com/sdkforjava, incluye:• AWS Java Library• Ejemplos de código• Soporte para Eclipse

• Soporta los siguientes servicios: Amazon Elastic Compute Cloud (EC2), Amazon Simple Storage Service (S3), Amazon Virtual Private Cloud, Amazon SimpleDB, Amazon Relational Database Service, Amazon Simple Notification Service, Amazon Simple Queue Service, Amazon Elastic MapReduce, Amazon CloudWatch, Elastic Load Balancing, Auto Scaling

• Documentación: – http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3586– http://developer.amazonwebservices.com/connect/entry.jspa?externalID=848&categoryID=152

Page 99: Cloud Computing Amazon

99

Usando AWS SDK for Java• Se puede obtener documentación detallada en:

– http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/• Antes de empezar, debes registrarte en cada servicio que quieras utilizar.• Necesitas obtener tus credenciales de seguridad de:

http://aws.amazon.com/security-credentials– Previamente puede que tengas que firmar en

http://aws.amazon.com/products– Los credenciales son un par de claves públicas y privadas que contienen:

• Access Key ID• Secret Access Key

• Revisar ejemplos en carpeta examples/aws

Page 100: Cloud Computing Amazon

100

Herramientas para Usar Amazon• ScratchPad for SimpleDB y SQS

– http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1137&categoryID=189

– http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1254

• ElasticDrive – http://www.elasticdrive.com/• ElasticFox –

http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609

• S3 Fox – plugin para Firefox, http://www.s3fox.net/• Amazon EC2 API Tools

– Programas de línea de comandos para intermediar con Amazon EC2– Sirven para registrar, lanzar instancias, manipular grupos de seguridad

y más• http://developer.amazonwebservices.com/connect/entry.jspa?ext

ernalID=351&categoryID=88

Page 101: Cloud Computing Amazon

101

Caso práctico de Álbum de Fotos

• Álbum de fotos que permite subir fotos, organizarlas y visualizarlas

• Arquitectura tradicional:

Page 103: Cloud Computing Amazon

103

Caso práctico de Álbum de Fotos

Page 104: Cloud Computing Amazon

104

Pasos1. Seleccionar AMI de bitnami con Tomcat

1. Tomcat instalado en directorio /opt/bitnami/apache-tomcat/webapps

2. Preparar .war con ficheros HMTL (formularios) y código PhotoManager

3. PhotoManager usa S3 para guardar imagen, SimpleDB para sus metadatos y SQS para URI de imagen de la que generar thumbnail

4. Preparar ejecutable que toma datos de la cola SQS, genera thumbnail, modifica S3 añadiendo thumbnail object, modifica item de foto añadiendo URI de foto

Page 105: Cloud Computing Amazon

105

Despliegue de Django en EC2

• Seguir los pasos indicados en:– http://www.dottostring.com/2009/10/django-dep

loyment-on-amazon-ec2-step-by-step-tutorial/

Page 106: Cloud Computing Amazon

106

Soporte para Otros Lenguajes

• Existe soporte para otros lenguajes como Python, Ruby, PHP o .NET– PHP: Tarzan AWS (

http://code.google.com/p/tarzan-aws/)• http://www.slideshare.net/federicof/cloudify-your-appl

ications-with-amazon-web-services?src=related_normal&rel=3462501

• Más información en:– http://developer.amazonwebservices.com

Page 107: Cloud Computing Amazon

107

Ventajas de Cloud Computing• Ahorros de costes en IT empresariales

– Ordenadores de bajo coste para los usuarios– Costes más bajos en infraestructura IT– Costes de software más bajos

• Mejora del rendimiento global– Elasticidad para conseguir una escalabilidad superior

• Menos problemas en mantenimiento• Actualizaciones inmediatas de software• Capacidad de almacenamiento ilimitada• Incremento de la seguridad de los datos (safety)

Page 108: Cloud Computing Amazon

108

Desventajas de Cloud Computing

• Requiere una conexión a Internet continua y rápida• Puede ofrecer bastante latencia• Características disponibles todavía limitadas• Falta de confianza

– Los datos guardados pueden ser accedidos por otros – Nuestros datos ya no están en la empresa– Problemas legales (LODP): Safe Harbor

• Dependencia tecnológica en otras compañías ajenas– Si la nube pierde los datos, ¡estás perdido!

Page 109: Cloud Computing Amazon

109

Conclusiones• Cloud Computing nos ofrece un nuevo paradigma para alojar nuestros sistemas de

información, aplicaciones y datos en la nube de Internet– Son muchas las ventajas potenciales de este enfoque

• Ahorro de costes, pago por uso• Escalabilidad exponencial

– PERO también muchos los riesgos para su implantación global inmediata• Falta de control sobre nuestros datos y sistemas• Relativa baja madurez de los productos que hacen posible Cloud Computing

• Ahora están surgiendo las herramientas y plataformas, pero tenemos que trabajar en patrones de diseño para asegurarnos buenas prácticas en Cloud Computing

• El futuro inmediato de los sistemas de información empresarial combinará los enfoques tradicionales, donde los sistemas y datos se ejecutan en infraestructura propia, con un paulatino e incremental despliegue de datos y aplicaciones a la nube.

Page 110: Cloud Computing Amazon

110

Referencias• Cloud Computing – Disruptive Innovation & Enabling Technology

– http://blog.gogrid.com/2008/08/20/presentation-cloud-computing-disruptive-innovation-enabling-technology

• Cloud Computing and Amazon Web Services– http://www.slideshare.net/aditya_n_jha/cloud-computing-and-amazon-web-services-pr

esentation

• Architecting for the Cloud: Best Practices– http://www.slideshare.net/AmazonWebServices/aws-architectingdesantislondon

• Are You Ready for Computing in the Cloud?– http://www.informit.com/articles/article.aspx?p=1234970

• Is Cloud Computing Ready for the Enterprise?– http://www.3tera.com/download/Forrester-Cloud-computing-report080307.pdf

Page 111: Cloud Computing Amazon

111

Referencias• Amazon Web Services

– http://aws.amazon.com/

• Developing With Amazon Web Services - Highly Scalable Services that are Someone Else's Headache to Maintain and Develop

– http://www.slideshare.net/javasymposium/developing-with-amazon-web-services-highly-scalable-services-that-are-someone-elses-headache-to-maintain-and-develop

• How to Setup Amazon S3 with CloudFront as a Content Delivery Network– http://www.labnol.org/internet/setup-content-delivery-network-with-amazon-s3-cloudf

ront/5446/

Page 112: Cloud Computing Amazon

112

Cloud Computing: Introducción & AWS 23-24 Mayo de 2011, 18:00-21:00

Dr. Diego Lz. de Ipiña Glz. de [email protected]

http://paginaspersonales.deusto.es/dipina http://www.slideshare.net/dipina

http://www.morelab.deusto.es