Вы находитесь на странице: 1из 77

Contenidos

Introduccin a Cloud Computing


Concepto y campos relacionados
Diferentes manifestaciones (SaaS, PaaS e IaaS)
Ejemplos de servicios, infraestructura y aplicaciones en la nube
Ejemplo de IaaS: Amazon Web Services (AWS)
Introduccin
Amazon Elastic Cloud (EC2)
Amazon Simple Storage Service (S3) y CloudFront
Amazon Simple DB y RDS
Una aplicacin de ejemplo sobre AWS
Amazon Elastic Beanstalk

IES Mare Nostrum Despliegue de Aplicaciones Web 1


Misin de la Future Internet (FI)

Ofrecer a todos los usuarios un entorno seguro, eficiente, confiable y


robusto, que:
Permita un acceso abierto, dinmico y descentralizado a la red y a
su informacin y
Sea escalable, flexible y adapte su rendimiento a las necesidades
de los usuarios y su contexto

IES Mare Nostrum Despliegue de Aplicaciones Web 2


Arquitectura de la Internet del Futuro

IES Mare Nostrum Despliegue de Aplicaciones Web 3


Internet de los Servicios

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
Adapted from SAP Research, 2008, and SEEKDA, 2008

IES Mare Nostrum 4


Campos de Actuacin de la Internet de los
Servicios

Cloud computing: virtualizacin de servicios y


optimizacin de recursos tanto en capacidad de
procesamiento como almacenamiento
Open service platforms: modularidad de
servicios para facilitar su integracin por
usuarios finales
Autonomic computing: sistemas
autogestionados
Green IT: optimizacin del consumo energtico
IES Mare Nostrum Despliegue de Aplicaciones Web 5
El Futuro del Desarrollo Software

IES Mare Nostrum Despliegue de Aplicaciones Web 6


Infraestructura Virtualizada:
Cloud Computing

Un paradigma de computacin 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

IES Mare Nostrum 7


Cloud Computing es

capacidad computacional y almacenamiento virtualizada expuesta


mediante infraestructura agnstica a la plataforma y accedida por Internet
Recursos IT compartidos en demanda, creados y eliminados
eficientemente y de modo escalable a travs de una variedad de
interfaces programticos facturados en base a su uso

IES Mare Nostrum Despliegue de Aplicaciones Web 8


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.

IES Mare Nostrum Despliegue de Aplicaciones Web 9


The Cloud = 10X Improvement

Fcil de usar: hazlo tu mismo remotamente de


cualquier lugar en cualquier momento
Escalable: controla tu infraestructura con tu aplicacin
Riesgo: nada que comprar, cancela inmediatamente
Robustez: basado en gran hardware empresarial
Coste: paga slo por lo que uses

IES Mare Nostrum Despliegue de Aplicaciones Web 10


Evolucin 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

IES Mare Nostrum Despliegue de Aplicaciones Web 11


Mltiples Descripciones
Grficas de la Cloud

IES Mare Nostrum Despliegue de Aplicaciones Web 12


Mltiples Descripciones
Grficas de la Cloud

IES Mare Nostrum Despliegue de Aplicaciones Web 13


Arquitectura Cloud Computing

IES Mare Nostrum Despliegue de Aplicaciones Web 14


Caractersticas de Cloud

Tipos de despliegue Manifestaciones


Cloud privada Cloud Software as a Service (SaaS)
Propiedad de o alquilada por Uso de la aplicacin del proveedor
una empresa (centros de sobre la red, e.j., Salesforce.com,
datos,) Cloud Platform as a Service (PaaS)
Cloud comunitaria Despliega aplicaciones creadas por
Infraestructura compartida por los clientes a la nube, e.j. Google App
una comunidad especfica Engine, Microsoft Azure,
Cloud pblica Cloud Infrastructure as a Service
Vendida al pblico, gran (IaaS)
escala (ec2, S3,) Alquilar procesamiento,
Cloud hbrida almacenamiento, capacidad de red y
otros recursos computacionales e.j.,
Composicin de dos o ms
EC2 Elastic Compute Cloud, S3
clouds
Simple Storage Service, Simple DB,

IES Mare Nostrum 15


Diferentes Manifestaciones

IES Mare Nostrum 16


Cloud Computing vs. Centros de Datos
Tradicionales

IES Mare Nostrum Despliegue de Aplicaciones Web 17


Componentes de Cloud Computing

IES Mare Nostrum Despliegue de Aplicaciones Web 18


Taxonoma de Cloud Computing

IES Mare Nostrum Despliegue de Aplicaciones Web 19


Evolucin de Tecnologas de
Cloud Computing

Maduracin de tecnologa de virtualizacin


La virtualizacin permite nubes de computacin
Las nubes de computacin demandan nubes de
almacenamiento
Las nubes de almacenamiento y computacin 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

IES Mare Nostrum Despliegue de Aplicaciones Web 20


Aplicaciones Cloud

Corresponden con lo que se denomina como SaaS


Manifestacin de cloud ms popular
Ejemplos: SalesForce, Gmail, Yahoo! Mail,
rememberthemilk, doodle, Google Docs, DropBox,
picnik, Panda Cloud Antivirus, scribd, slideshare
Ventajas: Libre, Fcil, Adopcin de consumo
Desventajas: funcionalidad limitada, no hay control de
acceso a la tecnologa subyacente

IES Mare Nostrum Despliegue de Aplicaciones Web 21


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, ms control que
en las aplicaciones cloud, configuradas estrechamente
Desventajas: restringidas a lo que est disponible, otras
dependencias, dependencia tecnolgica

IES Mare Nostrum Despliegue de Aplicaciones Web 22


Infraestructura Cloud

Proveen nubes de computacin y almacenamiento


Ofrecen capas de virtualizacin (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

IES Mare Nostrum Despliegue de Aplicaciones Web 23


Extensores de la Cloud

Proveen extensiones a infraestructura y plataformas


cloud con funcionalidad bsica
Ejemplos: Amazon SimpleDB, Amazon SQS, Google
BigTable
Ventajas: extienden la funcionalidad de las nubes de
computacin y almacenamiento para integrar sistemas
heredados u otras cloud
Desventajas: a veces requieren el uso de plataformas o
infraestructura especfica

IES Mare Nostrum Despliegue de Aplicaciones Web 24


Agregadores Cloud

Se apoyan en varias infraestructuras cloud para


su gestin
Ejemplos: RightScale, Appistry
Ventajas: proveen ms opciones para entornos
cloud
Desventajas: dependientes de proveedores de
cloud

IES Mare Nostrum Despliegue de Aplicaciones Web 25


Qu framework o plataforma usar
para mis aplicaciones Cloud?

IES Mare Nostrum Despliegue de Aplicaciones Web 26


Ventajas de Cloud Computing

Ahorros de costes en IT empresariales


Ordenadores de bajo coste para los usuarios
Costes ms bajos en infraestructura IT
Costes de software ms 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)

IES Mare Nostrum Despliegue de Aplicaciones Web 27


Desventajas de Cloud Computing

Requiere una conexin a Internet continua y


rpida
Puede ofrecer bastante latencia
Caractersticas disponibles todava limitadas
Falta de confianza
Los datos guardados pueden ser accedidos por otros
Nuestros datos ya no estn en la empresa
Problemas legales (LODP): Safe Harbor
Dependencia tecnolgica en otras compaas
ajenas
Si la nube pierde los datos, ests perdido!
IES Mare Nostrum Despliegue de Aplicaciones Web 28
Amazon Web Services (AWS)

AWS proporciona una infraestructura de servicios elstica donde alojar


computacin, 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 mensajera 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 ms populares son cacheados en
una red de nodos alrededor del mundo

Documentacin: http://aws.amazon.com/documentation/

IES Mare Nostrum Despliegue de Aplicaciones Web 29


Amazon Web Services (AWS)

IES Mare Nostrum Despliegue de Aplicaciones Web 30


Amazon Web Services (AWS)

IES Mare Nostrum Despliegue de Aplicaciones Web 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
aplicacin
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 mquinas 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 imgenes de servidor.
Cada servidor individual se gestiona usando herramientas Linux o Windows sobre
una sesin de shell segura.
Se factura en funcin de los recursos consumidos : CPU y datos transferidos
Ms informacin en: http://aws.amazon.com/ec2

IES Mare Nostrum Despliegue de Aplicaciones Web 32


Conceptos EC2
AMI (Amazon Machine Instance)
Basadas en XEN
Instancia: AMI en ejecucin
Es necesario crear instancias EBS si queremos pararlas y reiniciarlas
Dos IPs: IP pblica e IP elstica
Volmenes 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 Elstica 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

IES Mare Nostrum Despliegue de Aplicaciones Web 33


EC2: Regiones y Zonas de
Disponibilidad

Las instancias en EC2 se pueden colocar en diferentes localizaciones:


Las regiones estn dispersas geogrficamente (ver tabla debajo)
Las zonas de disponibilidad son localizaciones diferentes dentro de una
Regin que estn aisladas de fallos en otras zonas y facilitan conectividad de
red econmica, de baja latencia a otras zonas de disponibilidad dentro de la
Regin
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

IES Mare Nostrum Despliegue de Aplicaciones Web 34


CloudWatch

Amazon CloudWatch es un servicio que proporciona


monitorizacin para recursos gestionados por AWS
Muestra utilizacin de recursos como CPU, lecturas y escrituras de
disco o trfico 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 automticamente el trfico de


aplicacin 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 automticamente hacia arriba o abajo
tu capacidad EC2 en funcin de triggers que defines
http://aws.amazon.com/autoscaling/
http://awsdocs.s3.amazonaws.com/AutoScaling/latest/as-qrc.pdf

IES Mare Nostrum Despliegue de Aplicaciones Web 35


CloudWatch en Funcionamiento

IES Mare Nostrum Despliegue de Aplicaciones Web 36


CloudWatch en Funcionamiento

IES Mare Nostrum Despliegue de Aplicaciones Web 37


Elastic Load Balancing en Funcionamiento

IES Mare Nostrum Despliegue de Aplicaciones Web 38


Autoscaling en Funcionamiento

IES Mare Nostrum Despliegue de Aplicaciones Web 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 lmites sobre cunta informacin, por cunto tiempo y con qu
ancho de banda puede transferirse.
Ofrece una simple API agnstica a la informacin a guardar
Depende de ti qu datos y qu representacin 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

IES Mare Nostrum Despliegue de Aplicaciones Web 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 caractersticas de su arquitectura son:
Los objetos S3 no pueden ser manipulados como ficheros estndar
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 peridicamente
Se pueden guardar infinitos objetos de hasta 5GB en tamao
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)
Ms informacin en:
http://aws.amazon.com/s3/,

IES Mare Nostrum Despliegue de Aplicaciones Web 41


Probando S3: simple almacenamiento de
una imagen png en un bucket

IES Mare Nostrum Despliegue de Aplicaciones Web 42


Amazon CloudFront

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


CloudFront se garantiza que tus objetos en S3 buckets son servidos
rpidamente.
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 asegurndose que los
contenidos son servidos del servidor Amazon ms 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
pgina: imgenes, hojas de estilo, scripts, Flash, etc.
La clave es colocar la parte esttica de nuestra web en una red de
distribucin de contenidos como Akamai.
Con CloudFront hay que pagar las transferencias desde S3 a las
localizaciones de los bordes.
Ms informacin en: http://aws.amazon.com/cloudfront/
IES Mare Nostrum Despliegue de Aplicaciones Web 43
Cmo usar CloudFront?

Las redes de distribucin de contenidos tienen servidores distribuidos por Internet y


determinan la ruta ms rpida 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 extrados del
artculo: 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 well 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 services website, and go to the DNS management
page. Create a new CNAME record as shown in the screenshot.

IES Mare Nostrum Despliegue de Aplicaciones Web 44


Probando CloudFront

Ejemplo de uso desde consola de administracin de Amazon

IES Mare Nostrum Despliegue de Aplicaciones Web 45


Amazon SimpleDB

Almacn de claves/valor: trabaja con los conceptos domain, item y attribute


Diseado para minimizar la complejidad y el coste de mantenimiento de tus datos
Guarda pequeas piezas de informacin 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 estn basadas en bases de datos simples, este servicio puede
reemplazar a tu RDBMS dejndote con una pieza de infraestructura menos que
comprar y mantener
No exige la especificacin de un schema previo, t puedes modificar la estructura y
contenidos de tu base de datos cuando quieras
Indexa cada pieza almacenada
Guarda tu informacin de modo seguro, y redundante en la red de data centers de
Amazon
Pagas por almacenamiento, datos transferidos y operaciones
Ms informacin en: http://aws.amazon.com/simpledb/
IES Mare Nostrum Despliegue de Aplicaciones Web 46
Amazon SimpleDB

Ofrece tres recursos principales:


Dominios: nombre de un contenedor con informacin relacionada (similar a
base de datos)
Solamente se procesan consultas dentro de un dominio
Elementos: es una coleccin con nombre de los atributos que representan un
objeto de datos
Atributos: es una categora individual de informacin guardada dentro de un
elemento. Identificado por un nombre contiene una coleccin 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 jerrquica, no una tabla
Todos los datos se guardan como texto
Capacidades de consulta limitadas
La consistencia de la informacin depende de retardos de propagacin
Los valores de atributos pueden ser colecciones y alcanzar hasta 1024 bytes
SimpleDB est concebido para usarse en conjuncin con S3

IES Mare Nostrum Despliegue de Aplicaciones Web 47


Amazon SimpleDB

IES Mare Nostrum Despliegue de Aplicaciones Web 48


Example DataSet con SimpleDB
Item Title Author Year Number of Keywords Rating
Name Pages

0385333498 The Sirens of Kurt 1959 00336 Book *****


Titan Vonnegut Paperback 5 stars
Excellent

0802131786 Tropic of Henry Miller 1934 00318 Book ****


Cancer

1579124585 The Right Tom Wolfe 1979 00304 Book ****


Stuff Hardcover 4 stars
American

B000T9886K In Between Paul Van Dyk 2007 CD 4 stars


Trance

B00005JPLW 300 Zack Snyder 2007 DVD ***


Action 3 stars
Frank Miller Not bad

B000SF3NGK Heaven's Thievery 2002 *****


Gonna Burn Corporation
Your Eyes

IES Mare Nostrum Despliegue de Aplicaciones Web 49


Ejemplos de Consultas

Query Expression Description Result Set


select * from mydomain where Title = Retrieves all items where the attribute 1579124585
'The Right Stuff' "Title" equals "The Right Stuff."
select * from mydomain where Year > Retrieves all items where "Year" is B000T9886K, B00005JPLW, B000SF3NGK
'1985' 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.

select * from mydomain where Rating like Retrieves all items that have at least a 4 0385333498, 1579124585, 0802131786,
'****%' star (****) rating. B000SF3NGK
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.

select * from mydomain where Pages < Retrieves all items that have less than 1579124585, 0802131786,
'00320' 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.
IES Mare Nostrum Despliegue de Aplicaciones Web 50
Probando SimpleDB

Scratchpad for SimpleDB es una aplicacin web


que permite usar Amazon SimpleDB sin
necesidad de realizar programacin
http://developer.amazonwebservices.com/connect/ent
ry.jspa?externalID=1137
Te permite:
Crear dominios
Poblarlos con datos
Consultarlos
Modificarlos
Borrar el dominio

IES Mare Nostrum Despliegue de Aplicaciones Web 51


Probando SimpleDB

IES Mare Nostrum Despliegue de Aplicaciones Web 52


Amazon Relational Database Service
(Amazon RDS)

Es un servicio web que facilita la instalacin, operacin 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 tambin lo harn con Amazon RDS
Amazon RDS modifica el software MySQL para programar la creacin de back-
ups o garantizar la escalabilidad, todo ello controlado a travs de una API
sencilla.
Solamente se paga por los recursos utilizados.
Ms informacin 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/

IES Mare Nostrum Despliegue de Aplicaciones Web 53


Probando RDS

Para utilizarlo hay que seguir los siguientes pasos:

1. Ir a http://aws.amazon.com/rds y registrarte con Amazon RDS


2. Lanzar la instancia y rellenar los datos de tamao, tipo de base de
datos, nombre y clave de usuario
3. Asignar accesos a la instancia de la base de datos, se utiliza CIDR
(Classless Inter-Domain Routing) para indicar slo una direccin IP o
un conjunto de direcciones desde las que se permite la conexin
Acceso total: 0.0.0.0/0
4. Conectarse a la instancia usando la herramienta mysql, en la
descripcin de la instancia en AWS Console aparecer el string de
conexin
mysql -h <nombre-host-amazon-rds> -u <username> -p
5. Terminar la instancia para que dejen de facturarnos por su uso

IES Mare Nostrum Despliegue de Aplicaciones Web 54


Amazon SQS

Implementa el servicio de mensajera basado en colas


Los mensajes son siempre strings
til para crear trabajos asncronos y descargar de actividad a un web
server
Se paga por mensajes y datos transferidos
Ms informacin en: http://aws.amazon.com/sqs

IES Mare Nostrum Despliegue de Aplicaciones Web 55


Probando SQS

El Simple Queue Service (SQS) puede probarse con


una sencilla herramienta: JavaScript Scratchpad for
Amazon SQS
http://developer.amazonwebservices.com/connect/entry.jspa?externalID
=1254&categoryID=122

IES Mare Nostrum Despliegue de Aplicaciones Web 56


APIs web: SOAP vs. REST

SOAP: Simple Object Access REST: Represantional State


Protocol Transfer
Define cmo dos objetos en diferentes Estilo de arquitectura software para sistemas
procesos pueden comunicarse por medio de de hypermedia distribuidos como la WWW.
intercambio de datos XML. Introducido en la tsis doctoral de Roy
Deriva de un protocolo creado por David Winer Fielding en el ao 2000.
en 1998, llamado XML-RPC. Se refiere a una coleccin de principios de
Fue creado por Microsoft, IBM, y otros y arquitectura de red, que marcan cmo definir e
actualmente se encuentra bajo el auspicio de invocar los recursos.
la W3C. El trmino se usa a veces para describir una
Su arquitectura consiste en varias capas de simple interfaz que transmite datos de un
especificaciones para formato de mensajes: dominio especfico por HTTP sin capas
Message Exchange Patterns (MEP) adicionales como SOAP o uso de cookies.

Protocolos de transporte (SMTP y Los sistemas que cumplen los principios


HTTP/S) marcados por Fielding suelen ser referidos
como sistemas RESTful.
Modelos de procesado de mensajes
Protocolo de extensibilidad

IES Mare Nostrum Despliegue de Aplicaciones Web 57


Programacin en AWS

Interfaces REST:
Utilizan componentes estndar de peticiones HTTP para representar la accin
de la API a ejecutar:
Mtodos HTTP: describen la accin a ejecutar por la peticin
Universal Resource Identifier (URI): identifican el recurso sobre el que se va a
ejecutar la accin
Cabeceras de peticin: ofrecen ms metadatos sobre la peticin o el peticionario
Cuerpo de la peticin: transfieren los datos que nutrirn la accin a ejecutar por el
servicio
Interfaces Query:
Tambin hacen uso del protocolo HTTP para representar acciones de la API,
pero lo hacen a travs de parmetros (pares nombre valor) que indican la
accin y los datos que nutrirn tal accin.
Se suelen indicar en la URI de una peticin 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

IES Mare Nostrum Despliegue de Aplicaciones Web 58


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

IES Mare Nostrum Despliegue de Aplicaciones Web 59


Revisin 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.htm
l
http://docs.amazonwebservices.com/AmazonS3/2006-03-01/API/
SimpleDB:
http://aws.amazon.com/documentation/simpledb/
http://docs.amazonwebservices.com/AmazonSimpleDB/latest/GettingStartedGuide/index.h
tml
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/
IES Mare Nostrum Despliegue de Aplicaciones Web 60
Invocacin 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.htmlDespliegue de Aplicaciones Web
IES Mare Nostrum 61
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 caractersticas de la nube AWS: eficiente en costes,
escalable y robusta
Descargar de: http://aws.amazon.com/sdkforjava, incluye:
AWS Java Library
Ejemplos de cdigo
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
Documentacin:
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3586
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=848&categoryID
=152
IES Mare Nostrum Despliegue de Aplicaciones Web 62
Usando AWS SDK for Java

Se puede obtener documentacin 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 pblicas y privadas que
contienen:
Access Key ID
Secret Access Key
Revisar ejemplos en carpeta examples/aws

IES Mare Nostrum Despliegue de Aplicaciones Web 63


Herramientas para Usar Amazon

ScratchPad for SimpleDB y SQS


http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1137&c
ategoryID=189
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1254
ElasticDrive http://www.elasticdrive.com/
ElasticFox
http://developer.amazonwebservices.com/connect/entry.jspa?extern
alID=609
S3 Fox plugin para Firefox, http://www.s3fox.net/
Amazon EC2 API Tools
Programas de lnea de comandos para intermediar con Amazon EC2
Sirven para registrar, lanzar instancias, manipular grupos de
seguridad y ms
http://developer.amazonwebservices.com/connect/entry.jspa
?externalID=351&categoryID=88
IES Mare Nostrum Despliegue de Aplicaciones Web 64
Amazon Elastic Beanstalk

Novedad a partir de 2011, y en 2013 an en beta por su complejidad,


permite hacer el despliegue de una aplicacin web de forma automtica y
escalable independientemente de su tecnologa de desarrollo y tamao
(Java/Tomcat en el grfico):

IES Mare Nostrum Despliegue de Aplicaciones Web 65


Amazon Elastic Beanstalk

Soporta cualquier runtime:

Soporta variados entornos de desarrollo en consola, git, Eclipse, Visual


Studio, NetBeans, CloudIDE:

IES Mare Nostrum Despliegue de Aplicaciones Web 66


Amazon Elastic Beanstalk

Permite controlar las versiones de la aplicacin y su despliegue:

IES Mare Nostrum Despliegue de Aplicaciones Web 67


Amazon Elastic Beanstalk

Automticamente se determinan las necesidades de balanceo, mquinas


virtuales y monitorizacin, la instalacin del propio aplicativo web, su
escalado en caso de sobrecarga, su puesta en funcionamiento y la
compatibilidad con las actualizaciones.

IES Mare Nostrum Despliegue de Aplicaciones Web 68


Caso prctico de lbum de Fotos

lbum de fotos que permite subir fotos, organizarlas y


visualizarlas
Arquitectura tradicional:

IES Mare Nostrum Despliegue de Aplicaciones Web 69


Caso prctico de lbum de Fotos

Solucin Cloud con: S3, SDB, SQS y CloudFront

Ejemplo descrito en:


http://www.slideshare.net/javasymposium/developing-with-
amazon-web-services-highly-scalable-services-that-are-
someone-elses-headache-to-maintain-and-develop
IES Mare Nostrum Despliegue de Aplicaciones Web 70
Caso prctico de lbum de Fotos

IES Mare Nostrum Despliegue de Aplicaciones Web 71


Pasos

1. Seleccionar AMI de bitnami con Tomcat


1. Tomcat instalado en directorio /opt/bitnami/apache-
tomcat/webapps
2. Preparar .war con ficheros HMTL (formularios) y cdigo
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 aadiendo thumbnail
object, modifica item de foto aadiendo URI de foto

IES Mare Nostrum Despliegue de Aplicaciones Web 72


Despliegue de Django en EC2

Seguir los pasos indicados en:


http://www.dottostring.com/2009/10/django-deployment-on-amazon-
ec2-step-by-step-tutorial/

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-applications-with-
amazon-web-services?src=related_normal&rel=3462501
Ms informacin en:
http://developer.amazonwebservices.com

No obstante, la opcin ideal, con mayor futuro y menor mantenimiento,


sera usar Elastic Beanstalk.

IES Mare Nostrum Despliegue de Aplicaciones Web 73


Conclusiones

Cloud Computing nos ofrece un nuevo paradigma para alojar nuestros


sistemas de informacin, 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 tambin muchos los riesgos para su implantacin global inmediata
Falta de control sobre nuestros datos y sistemas
Relativa baja madurez de los productos que hacen posible Cloud Computing
Ahora estn surgiendo las herramientas y plataformas, pero tenemos que
trabajar en patrones de diseo para asegurarnos buenas prcticas en
Cloud Computing
El futuro inmediato de los sistemas de informacin 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.

IES Mare Nostrum Despliegue de Aplicaciones Web 74


Crditos

Adaptado a partir de fragmentos de las ponencias:

Cloud Computing: Introduccin & AWS, Dr. Diego


Lz. de Ipia Glz. de Artaza

Amazon AWS and AWS Elastic Beanstalks Introd.,


Jinesh Varia

Introducting to Amazon Elastick Beanstalk,


Saad Ladki

IES Mare Nostrum Despliegue de Aplicaciones Web 75


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-presentation
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

IES Mare Nostrum Despliegue de Aplicaciones Web 76


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-
cloudfront/5446/

IES Mare Nostrum Despliegue de Aplicaciones Web 77