Curso Cloud Computing, Parte 1: Amazon Web Services
1. Cloud Computing: Introducción & AWS23-24 Mayo de 2011, 18:00-21:00 Dr. Diego Lz. de Ipiña Glz. de Artazadipina@deusto.eshttp://paginaspersonales.deusto.es/dipinahttp://www.slideshare.net/dipinahttp://www.morelab.deusto.es
2. Agenda 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 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
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
5. 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
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 serviceplatforms: modularidad de servicios para facilitar su integración por usuarios finales Autonomiccomputing: sistemas autogestionados Green IT: optimización del consumo energético
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
9. Cloud Computing es … … capacidad computacional y almacenamiento virtualizadaexpuesta 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
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.
17. Características de Cloud Tipos de despliegue Manifestaciones 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 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 AppEngine, 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,…
22. 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
23. 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
24. Plataformas Cloud Contenedores de aplicaciones Entornos cerrados Ejemplos: Google AppEngine, 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
25. 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
26. 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
27. 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
29. 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 RelationalDatabase 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/
32. 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
33. 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
34. 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
35. CloudWatch Amazon CloudWatches 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 Balancingdistribuye 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 Scalingpermite 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
40. 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
41. 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/,
42. 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 edgelocationsque sirven contenidos a los usuarios finales. Tales edgelocationsse 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/
43. ¿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 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.“ 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. 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 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.
44. 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/
45. 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
49. Amazon RelationalDatabase 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/
50. 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
51. Registro y Documentación Se puede ver en detalle cómo acceder a AWS: http://www.slideshare.net/ronaldbradford/getting-started-with-mysql-in-amazon-web-services?src=related_normal&rel=3462501 http://docs.amazonwebservices.com/AWSEC2/2009-11-30/GettingStartedGuide/ http://aws.amazon.com/free/ (Free usagetier)
52. AWS Free UserTier 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.
53. 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.
54. Fase 1: Registro en AWS Para utilizar Amazon EC2, necesitasunacuenta 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
60. 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 Accountnumber 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 CertificateFile (pestaña KeyPairs) Los siguientes pantallazos muestran cómo obtener estos datos Guárdalos en ficheros para luego usarlos en tus aplicaciones
63. 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/
66. 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.com Pulsar el botón de nueva instancia 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 Generar o reutilizar un par de claves Guardar las claves Configurar el firewall Revisar los detalles de la instancia desplegada Lanzar la instancia y comprobar que está en ejecución
75. Fase 2: Lanzando Otras Instancias Vamos a lanzar otra instancia en Windows y otra en UNIX con soporte EBS: Accede a AWS Management Console: http://aws.amazon.com/console/ y regístrate Desde EC2 ConsoleDashboard, haz click en LaunchInstance Elige un AMI, vamos a trabajar bien con Fedora 8 Core o Microsoft Windows Server 2008 Selecciona y acepta los detalles de la instancia Crea un par de claves, que es un credencial utilizado para conectarse a una instancia Crea un grupo de seguridad que define reglas de firewall para tu instancia Revisa tus configuraciones y pulsa el botón Launch
77. Fase 3: Modificando la Página por Defecto Pasos a seguir en cliente UNIX: 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 Vamos al directorio htdocs cd /home/webuser/helloworld/htdocs Modificamos la página index.php (ver contenido siguiente trasparencia)
78. 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ándose en AWS</h1> <p>Unademostració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>
79. 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
80. Fase 3: Conectándose a UNIX AMI desde Windows – Conversión de Clave para putty Cargar el fichero LAMPServerFedora.pem y pulsar en SavePrivate Key que guardará un fichero con extensión ppk que usa putty
81. Fase 3: Conectándose a UNIX AMI desde Windows – Logeo en Windows con putty Arrancar putty Introducir el nombre público DNS del servidor (ec2-79-125-61-32.eu-west-1.compute.amazonaws.com) Ir a al menú ssh->Auth->Browse y cargar clave privada LAMPServerFedora.ppk Loguéate como root
82. Fase 3: Accediendo a ficheros en UNIX AMI desde Windows – Edición de index.php con WinSCP
84. 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 AdministratorPassword, pega ahí la privatekey 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 AllPrograms Accessories Introduce el nombre DNS de la instancia Logéate como Administrator/<password-recuperada>
85. 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
87. Probando SimpleDB ScratchpadforSimpleDB es una aplicación web que permite usar Amazon SimpleDB sin necesidad de realizar programación http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1137 Te permite: Crear dominios Poblarlos con datos Consultarlos Modificarlos Borrar el dominio
89. Probando RDS Para utilizarlo hay que seguir los siguientes pasos: Ir a http://aws.amazon.com/rds y registrarte con Amazon RDS Lanzar la instancia y rellenar los datos de tamaño, tipo de base de datos, nombre y clave de usuario Asignar accesos a la instancia de la base de datos, se utiliza CIDR (Classless Inter-DomainRouting) 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 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 Terminar la instancia para que dejen de facturarnos por su uso
90. Probando SQS El Simple Queue Service (SQS) puede probarse con una sencilla herramienta: JavaScriptScratchpadfor Amazon SQS http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1254&categoryID=122
92. Desregistro de un Servicio Para cancelar un servicio: Firma en AWS Haz click en YourAccount y luego en AccountActivity. Selecciona View/Edit Service debajo del servicio que quieres cancelar Haz click en el enlace cancel thisservice.
93. 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ú “AccountActivity” que ilustra el gasto actual incurrido.
94.
95. Deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC.
96. Fue creado por Microsoft, IBM, y otros y actualmente se encuentra bajo el auspicio de la W3C.
104. Se refiere a una colección de principios de arquitectura de red, que marcan cómo definir e invocar los recursos.
105. 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.
108. Revisión APIs de los Principales Servicios EC2: http://aws.amazon.com/documentation/ec2/ (mirar quickreferencecard) 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/
109. 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
110. 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 RelationalDatabase Service, Amazon Simple Notification Service, Amazon Simple Queue Service, Amazon ElasticMapReduce, 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
111. 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
112. Herramientas para Usar Amazon ScratchPadforSimpleDB 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?externalID=351&categoryID=88
113. Caso práctico de Álbum de Fotos Álbum de fotos que permite subir fotos, organizarlas y visualizarlas Arquitectura tradicional:
114. Caso práctico de Álbum de Fotos Solución 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
116. Pasos Seleccionar AMI de bitnami con Tomcat Tomcat instalado en directorio /opt/bitnami/apache-tomcat/webapps Preparar .war con ficheros HMTL (formularios) y código PhotoManager PhotoManager usa S3 para guardar imagen, SimpleDB para sus metadatos y SQS para URI de imagen de la que generar thumbnail Preparar ejecutable que toma datos de la cola SQS, genera thumbnail, modifica S3 añadiendo thumbnailobject, modifica item de foto añadiendo URI de foto
117. 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/
118. 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-applications-with-amazon-web-services?src=related_normal&rel=3462501 Más información en: http://developer.amazonwebservices.com
119. 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)
120. 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!
121. 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.
122. Referencias Cloud Computing – DisruptiveInnovation & EnablingTechnology 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
123. 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/
124. Cloud Computing: Introducción & AWS23-24 Mayo de 2011, 18:00-21:00 Dr. Diego Lz. de Ipiña Glz. de Artazadipina@deusto.eshttp://paginaspersonales.deusto.es/dipinahttp://www.slideshare.net/dipinahttp://www.morelab.deusto.es
Notes de l'éditeur
Message:The future consists of services (the boxes on the ring) and users of services (the others).All interaction is free without central controlStandards are needed for the interactionsIs there a need for a platform / infrastructure to coordinate interactions?SAP Services mantra: Services will become tradable, composed from services of different providers, be offered, delivered & executed automatically & supported by ITThe Internet of Services will offercustomized & personalized servicescommunity involvement to improve services, both for providers & consumers of services seamless & smooth adaptation and integration of services into the user environment These network infrastructures need to support an Internet of dynamically combined services with worldwide service delivery platforms and flexibly enable the creation of opportunities for new market entrant. The 'third party generated service' is emerging as a trend supporting the move towards user-centric services, as shown by the advances in Service-Oriented-Architectures and in service front-ends as the interface to users and communities. Virtualisation of resources remains an important research driver enabling the delivery of networked services independently from the underlying platform, an important issue for service providers. Advances in these domains also require breakthroughs in software engineering methods and architectures addressing complexity in distributed, heterogeneous and dynamically composed environments, as well as non-functional requirements.