Anda di halaman 1dari 37

Proyecto sobre el tema de inters AWS - 2009/2010

Cloud Computing con Amazon EC2

Pablo Iigo Blasco Ignacio Trevilla Garca Miguel ngel Prez Valencia

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Licencia y copyright
El presente trabajo se encuentra bajo la licencia Creative Commons By-Nc-Sa que le permite crear trabajos derivados y redistribuirlos atribuyendo a los autores originales el copyright correspondiente siempre y cuando adems mantenga la licencia y no use la obra con fines comerciales. El propsito de usar tal licencia es el permitir que futuros alumnos puedan aprovechar nuestro trabajo para ampliarlo o utilizarlo en otro trabajo distinto, sin que los autores originales, nosotros, pierdan el crdito por el esfuerzo realizado y que futuras versiones sigan los mismos trminos. Copyright y algunos derechos reservados por: Pablo Iigo Blasco Ignacio Trevilla Garca Miguel ngel Prez Valencia

Pgina 1

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Versin
1.0 1.1 Junio 2010 Septiembre 2010 Versin inicial del trabajo Inclusin de los trminos de licencia CC ByNc-Sa y algunos cambios en el formato

Pgina 2

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

ndice de contenido
Resumen.......................................................................................................................................................... 7 Introduccin...................................................................................................................................................... 7 El paradigma Cloud Computing........................................................................................................................ 8 Cloud Hosting.............................................................................................................................................. 9 Diagrama de Conceptos del Cloud Computing ......................................................................................... 10 Inters actual en Cloud Computing............................................................................................................ 10 Descripcin de Amazon EC2 ......................................................................................................................... 11 Aspectos tcnicos...................................................................................................................................... 12 Instancia............................................................................................................................................... 12 Potencia de cmputo (ECU)................................................................................................................. 12 Zonas de disponibilidad........................................................................................................................ 12 Gestin del servicio.............................................................................................................................. 13 Escalabilidad, elasticidad y distribucin de carga.................................................................................13 Aspectos econmicos................................................................................................................................ 13 Tipos de servicios adicionales................................................................................................................... 16 Servicios complementarios a IaaS........................................................................................................ 16 Elastic Block Storage (EBS)............................................................................................................ 16 Auto Scaling & Cloud Watch............................................................................................................ 17 Elastic Load Balancing.................................................................................................................... 17 Virtual Private Cloud (VPC)............................................................................................................. 18 Servicios complementarios a PaaS...................................................................................................... 18 Simple Storage Service (S3)........................................................................................................... 18 Relational Database Service (RDS)................................................................................................. 18 Simple Queue Service (SQS).......................................................................................................... 18 Simple DB........................................................................................................................................ 18 Diagrama de conceptos del Cloud Computing con Amazon EC2 .............................................................19 Crecimiento y futuro de EC2...................................................................................................................... 19 Caso de estudio ............................................................................................................................................. 21 Descripcin de la empresa y su servicio.................................................................................................... 21 Definicin del problema ............................................................................................................................ 21 Estudio de demanda.................................................................................................................................. 21 Propuesta de solucin con Amazon WebServices.....................................................................................22 Requisitos............................................................................................................................................. 22 Servicios involucrados.......................................................................................................................... 22 Servicio de almacenamiento de bloques EBS.................................................................................22 Servicio de base de datos RDS....................................................................................................... 22 Amazon Auto-Scaling & Elastic Load Balancer...............................................................................23 Amazon EC2................................................................................................................................... 23 Arquitectura ......................................................................................................................................... 23 Planificacin de costes de la propuesta con Amazon Web Services....................................................25 Conclusiones.................................................................................................................................................. 27 FAQ................................................................................................................................................................ 29 Resumen de esfuerzo..................................................................................................................................... 34 Referencias..................................................................................................................................................... 36

Pgina 3

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

ndice de ilustraciones
Ilustracin 1: SaaS sobre servicios de Cloud Computing.................................................................................8 Ilustracin 2: Evolucin del hosting................................................................................................................... 9 Ilustracin 3: Diagrama de conceptos del Cloud Computing..........................................................................10 Ilustracin 4: Grfica sobre porcentaje de ofertas de empleo con el termino "cloud computing"....................11 Ilustracin 5: Grfica de Google Trends para el trmino "cloud computing"...................................................11 Ilustracin 6: Precio/hora por tipo de instancia y modo de contratacin.........................................................15 Ilustracin 7: Grfica de monitorizacin de instancias en Cloud Watch..........................................................17 Ilustracin 8: Diagrama de conceptos de Cloud Computing con Amazon EC2...............................................19 Ilustracin 9: Ancho de banda consumido por AWS respecto del resto de webs de Amazon.........................20 Ilustracin 10: Top 500k de sitios en Cloud - Marzo 2010...............................................................................20 Ilustracin 11: Grfica de la demanda segn horario del caso de estudio .....................................................22 Ilustracin 12: Arquitectura de la solucin propuesta para el caso de estudio................................................23

Pgina 4

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

ndice del FAQ


- Qu es Cloud Computing? ........................................................................................................................ 29 - Qu ventajas ofrece Cloud Computing? .................................................................................................... 29 - Todo son ventajas? .................................................................................................................................... 29 - Qu perspectivas de futuro tiene el Cloud Computing? Ser la forma de alojamiento del futuro? ..........29 - Que empresas ofrecen servicios basados en Cloud Computing? .............................................................30 - Que tipo de aplicaciones son las mejores candidatas para cloud computing? ..........................................30 - Qu es Amazon EC2? ............................................................................................................................... 30 - Qu otros servicios ofrece Amazon relacionados con EC2? .....................................................................30 - Ejemplos reales de empresas u organizaciones que hayan migrado a Amazon EC2? (a ser posible espaolas) ..................................................................................................................................................... 30 - Qu criterios usa Amazon a la hora de facturar por el uso de sus servicios? ...........................................31 - Qu es una hora de uso de instancia?....................................................................................................... 31 - Tengo una aplicacin que quiero migrar a Amazon EC2 Cmo puedo medir las horas de uso para saber cuando podra costar?.................................................................................................................................... 31 - Es rentable para Amazon proveer estos servicios? ...................................................................................31 - Qu se debe tener en cuenta a la hora de realizar una aplicacin si se quiere alojar en los servicios de Cloud Computing que ofrece Amazon? ......................................................................................................... 31 - Como se realizan las indemnizaciones en caso de incumplimiento de contrato? .....................................32 - Cual podra ser el coste de correr una aplicacin web corriente en Amazon EC2? ..................................32 - Qu tipo de aplicaciones se obtienen un mayor beneficio gracias a Amazon EC2? .................................32 - Cmo se gestionan las instancias? ........................................................................................................... 33 - Qu es una AMI?........................................................................................................................................ 33 - Qu es una ECU?...................................................................................................................................... 33 - Qu es Utility Computing?.......................................................................................................................... 33

Pgina 5

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Resumen
El paradigma Cloud Computing se centra en solucionar uno de los problemas fundamentales e histricos que en la actualidad que se enfrentan las ITs cuando tienen que hacer uso de servicios o aplicaciones en Internet: La necesidad de incrementar la capacidad de usuarios manteniendo la calidad en el servicio, mejorar la disponibilidad o aadir funcionalidades al vuelo en sus servicios en Internet sin tener que realizar una inversin y planificacin en una nueva infraestructura, entrenar a nuevo personal o cambiar el software existente en toda la infraestructura. El presente trabajo pretende abordar la explicacin de los conceptos bsicos de lo que se conoce como Cloud Computing, pero sobre todo pretende analizar y detallar como est siendo abordado dicho paradigma por Amazon centrndose en el servicio conocido como Amazon Elastic Cloud Computing (Amazon EC2).

Introduccin
En este apartado se realiza una introduccin al contexto de trabajo, la web, la web orientada a servicios, la situacin empresarial y los problemas potenciales de escalabilidad con los que se enfrenta hoy da. La nube, o Cloud es una infraestructura hardware que puede hospedar aplicaciones y servicios con gran capacidad de escalabilidad y disponibilidad. Los proveedores de esta infraestructura presentan un modelo pay-per-use, de modo que el uso de esta infraestructura presenta un servicio en s. La principal ventaja del modelo es la capacidad y flexibilidad a la hora de escalar una aplicacin o servicio para que sea capaz de soportar mayor nmero de usuarios o picos de demanda mayores. Existen muchos servicios basados en Cloud pblicos en Internet con amplio reconocimiento. Algunos ejemplos de aplicaciones web que se sustentan en este paradigma son Tweeter, Google Docs o Mename. Se trata de servicios que estn sujetos al uso de muchos usuarios de manera simultanea. Estas aplicaciones requieren una infraestructura subyacente muy potente aunque por el contrario no siempre hacen uso completo de ella. Como consecuencia aparece un concepto muy importante en el Cloud Computing: Compartir la infraestructura. Mientras las aplicaciones unas en la nube no estn usando demasiados recursos, otras aplicaciones pueden estar haciendo uso de ellos. Conceptos como acuerdos a nivel de servicio que aseguren un ratio de disponibilidad, rendimiento y calidad toman una gran importancia en este paradigma. Este paradigma es joven por lo que es difcil encontrar definiciones de conceptos totalmente aceptadas. Adems "Cloud computing" son palabras que actualmente estn de moda (Buzz Words) ya que actualmente representan un nicho de mercado muy potente y en crecimiento por lo que cada organizacin enfoca los conceptos de este paradigma desde un punto de vista propio segn sus intereses. El presente estudio ofrece una vista general flexible y abierta de los conceptos bsicos de Cloud Computing centrndose en el enfoque de Cloud que Amazon, la empresa mejor posicionada actualmente en este sector. El estudio se centrar el servicio de Cloud principal de Amazon: EC2. Para una mejor comprensin el trabajo se ha dividido en varias secciones. En la primera seccin se realizar una introduccin al contexto del trabajo en la situacin empresarial actual y a los problemas que se presentan. En la segunda seccin se comentar de que trata el paradigma del Cloud Computing y que utilidad tiene, en el contexto mencionado en la seccin anterior, para resolver algunos de los problemas presentados y definir conceptos que son necesarios para entender el resto del trabajo y pavimentar el camino a otros trabajos relacionados con Cloud Computing para que puedan obviar esta parte, por lo que nos hemos extendido en los conceptos todo lo que hemos considerado necesario. En la tercera seccin se explicar como se han aplicado los conceptos del paradigma para en el caso de los servicios ofrecidos por Amazon y ms concretamente el servicio Amazon EC2. En la cuarta seccin presentaremos un caso de estudio que permita, de una manera prctica, comprender mejor que es lo que ofrece Amazon EC2 y las diferencias respecto a una solucin no basada en Cloud Computing. En la quinta seccin realizaremos un anlisis sobre los resultados comparativos del caso de estudio de la seccin anterior dando relevancia sobre todo al factor coste. En la sexta y ltima seccin se expondrn algunas conclusiones que han obtenido los miembros del grupo tras la realizacin de este trabajo.

Pgina 6

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

El paradigma Cloud Computing


Se podra definir el trmino Cloud Computing como el ofrecer un servicio a travs de Internet consistente en prestar acceso a recursos de computacin, de modo que el cliente no tiene que preocuparse de la gestin y mantenimiento de la infraestructura subyacente que se usa para prestar esos servicios, si no slo de usar los recursos contratados para realizar sus actividades. Por la parte del proveedor el prestar servicios de esta manera le permite optimizar su inversin en hardware y mantenimiento, ya que aprovecha el hardware al mximo al distribuir esos recursos entre todos sus usuarios minimizando el desperdicio. Por la parte del cliente el no depender de un hardware o infraestructura fsica concreta le permite centrase en el uso que hace de ella ahorrndose los costes de mantenimiento, adems de que siempre que necesite mas recursos simplemente deber contratarlos al proveedor que los pondr rpidamente a su disposicin, con lo que se permite una gran escalabilidad y una optimizacin del gasto al tener siempre contratado lo que se necesita y al pagar slo lo que se usa. Sobre el concepto de este paradigma se distinguen 3 tipos de servicios basados en Cloud Computing: Infrastructure as a Service (IaaS): El servicio que se ofrece es una infraestructura y recursos virtuales, similares a los existentes en cualquier ordenador, sobre los cuales se puede ejecutar una plataforma de aplicaciones, como por ejemplo un sistema operativo. Platform as a Service (PaaS): El servicio que se ofrece es una plataforma, compuesta por ejemplo por servidores de aplicaciones y/o bases de datos, sobre la cual los clientes pueden ejecutar sus aplicaciones. El proveedor del servicio se encargar de gestionar los recursos disponibles en la plataforma para que la aplicacin del cliente est siempre funcionando de manera ptima. Software as a Service (SaaS): El servicio que se ofrece es una aplicacin orientada al usuario final, el cual la accede a travs de Internet, y cuyo uso es lo que los clientes contratan al proveedor. Este tipo ya exista actualmente y se ha estado explotando sin relacin con Cloud Computing, pero en nuestro caso cuando mencionamos SaaS nos referimos especficamente a aquellas aplicaciones que funcionan sobre servicios de alguno de los otros dos tipos (IaaS o PaaS), dejando para otro momento una definicin ms precisa del trmino. La mayora de aplicaciones que funcionan sobre un Cloud son aplicaciones que entran en este tipo de servicio, convirtiendo al proveedor de la aplicacin en proveedor de SaaS a la vez que es usuario del proveedor de servicios de Cloud, tal y como ilustra la siguiente figura[12]:

Ilustracin 1: SaaS sobre servicios de Cloud Computing El Cloud Computing se basa en recursos de computacin disponibles online, a cuyo conjunto de hardware y software que le permite funcionar denominaremos Cloud, pero esos recursos pueden no estar accesibles a cualquier usuario y el uso que haga de ellos el proveedor de los mismos hace que podamos distinguir dos tipos de Cloud: Public Cloud: Son aquellos Clouds que son comercializados por sus propietarios de manera pblica que los recursos sean explotados por terceros. Un buen ejemplo de esto es Amazon EC2. Private Cloud: Los Cloud privados son aquellos que son utilizados dentro de los lmites de una
Pgina 7

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

organizacin pero cuya explotacin no es comercializada pblicamente como en el caso de Public Cloud.

Cloud Hosting
Cloud Hosting no es mas que la aplicacin de los conceptos de Cloud Computing para ofrecer un servicio de hosting pero sobre una infraestructura Cloud Computing, en lugar de sobre un hardware concreto o sobre sistemas virtualizados que comparten hardware. Se puede entender como Cloud Hosting a la evolucin, desde el punto de vista de los proveedores de servicio de hosting, de la tecnologa sobre la que realizaban sus servicios tendindose siempre hacia un mejor aprovechamiento de los recursos hardware disponible en el lado del proveedor y a una mayor economa en el gasto por servicios contratados, pero con mejores prestaciones, en la parte del cliente. Esto se ilustra en el siguiente grfico[16]:

Ilustracin 2: Evolucin del hosting En todos los casos no podemos perder de vista el hecho de que se est tratando a la nube como una utilidad (Utility Computing), al estilo de las redes de abastecimiento de agua y electricidad de nuestras ciudades, donde contratamos unas capacidades y pagamos por el uso que hacemos de ellas. Esto no es algo nuevo, recordemos por ejemplo el sistema operativo predecesor de los sistemas Unix, pero estamos en el momento en el cual la tecnologa lo permite y las empresas estn apostando por ello. Atributos del Cloud Computing La consultora Gartner[17] ha identificado 5 atributos que se encuentran normalmente en los servicios ofertados de Cloud Computing, aunque cada servicio se ajusta a estos atributos de manera diferente: Basado en servicios: El cliente utiliza el servicio de manera transparente a todo lo que hay detrs (hardware, infraestructura, mantenimiento, disponibilidad, ...). Las caractersticas del servicio se rigen por las necesidades concretas del cliente y por niveles de servicio que por cuestiones tecnolgicas. Escalable y elstico: La escalabilidad se refiere a la habilidad de aadir o eliminar recursos del servicio y es una caracterstica que tiene que proveer la infraestructura subyacente. Entre tanto la
Pgina 8

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

elasticidad est mas relacionada con el modelo econmico en tanto que permite incrementar y decrementar los recursos de manera automatizada para atender la demanda real del servicio y minimizar costes. Compartido: Los servicios comparten una piscina de recursos para aprovechar las economas de escala y maximizar el uso de esos recursos ya que estarn siendo utilizados a la vez por mltiples clientes con distintos fines. Medida de uso: El proveedor del servicio establece unas medidas de uso sobre las cuales define sus precios y planes de pago. Esto permite al proveedor definir pagos por uso, planes de descuento, ofertas e incluso servicios gratuitos que le permitan atraer mas usuarios a su servicio. Uso de tecnologas de Internet: Los servicios llegan a los clientes a travs de tecnologas de Internet sobre protocolos como HTTP, REST y otras tecnologas de la web. Nosotros por nuestra parte aadiramos un atributo mas para caracterizar la abundancia de los recursos que necesita el servicio para escalar de manera elstica. Tal es la abundancia y la facilidad para incrementar el uso de recursos que da la impresin de no tener lmite y por ello denominamos al atributo Recursos virtualmente ilimitados.

Diagrama de Conceptos del Cloud Computing


Para ilustrar los conceptos y facilitar su comprensin se ha preparado un diagrama con los conceptos ms importantes involucrados en el paradigma de Cloud Computing. En el diagrama se representan los conceptos relacionados entre s comenzando por la definicin principal del Cloud Computing y extendiendo las relaciones por los conceptos adyacentes.

Ilustracin 3: Diagrama de conceptos del Cloud Computing

Inters actual en Cloud Computing


El Cloud Computing y el SaaS estn de moda actualmente, lo que significa que hay mucho buzz alrededor de esos conceptos y los sectores involucrados comienzan a buscar empleados que estn preparados para atacar las posibilidades que ofrece. Esta tendencia la podemos observar en las ocurrencias de las palabras 'cloud' y 'computing' en sitios de publicacin de ofertas de empleo como indeed.com[7], observndose como hay un notable incremento desde enero del 2008 hasta enero del 2010.

Pgina 9

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Ilustracin 4: Grfica sobre porcentaje de ofertas de empleo con el termino "cloud computing" Tambin podemos usar google trends para obtener una grfica que nos muestre la tendencia en cuanto a las bsquedas sobre estos trminos:

Ilustracin 5: Grfica de Google Trends para el trmino "cloud computing" En la cual podemos observar como a partir de finales de 2007 comienza a generarse ms bsquedas y noticias sobre estos dos trminos y como en la actualidad parece mantenerse cierta tendencia al alza en el nmero de bsquedas, lo que ratifica el inters actual sobre este tema y como las noticias atraen un mayor inters sobre el.

Descripcin de Amazon EC2


La empresa Amazon ofrece desde hace tiempos ciertos servicios a travs de su subsidiaria Amazon Web Services LLC, ofrecidos para ser explotados por desarrolladores mediante servicios web sobre REST, entre los que ahora se incluyen servicios basados en Cloud Computing de entre los cuales Amazon Elastic Compute Cloud (Amazon EC2) es el objetivo de este trabajo.

Pgina 10

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Aspectos tcnicos
Tcnicamente no se conocen los detalles internos de como funciona el Cloud de Amazon, pero si se conocen los detalles tcnicos del servicio que ofrece, que son los que importan a los clientes ya que Cloud Computing, entre otras cosas, trata de la abstraccin respecto a los detalles tcnicos concretos, como ya hemos comentado anteriormente. Amazon ofrece su servicio EC2 como un servicio tipo IaaS. Los clientes del servicio suben a EC2 una imagen de un sistema operativo virtualizado la cual se arrancar y se ejecutar en el Cloud de Amazon.

Instancia
En EC2 se define el trmino instancia como un conjunto de recursos de computacin que estarn disponibles para una imagen en ejecucin y es el smil de lo que sera un hardware real sobre el que ejecutar un sistema operativo. Cuando contratas una nueva instancia tienes que elegir un tipo de entre los predeterminados, lo cual determina los recursos mximos disponibles para esa instancia. Por ejemplo una instancia estndar dispone de los siguientes recursos: 1,7 GB de memoria RAM . 1 unidad de computo (equivale a un procesador) . 160 GB de almacenamiento en la instancia . Los recursos de memoria, computacin y el espacio de disco que usa la instancia estn reservados, pero el ancho de banda y el medio de almacenamiento de disco subyacente est compartido entre todas las instancias, por ello si cada instancia en funcionamiento intenta usar tanto ancho de banda o realizar tantas operaciones de IO como pueda todas recibirn una parte proporcional, pero si hay instancias que usen menos de esos recursos el sobrante puede ser aprovechado por otras instancias. Pero no todas las instancias tienen acceso a dichos recursos de la misma manera ya que hay definidos dos niveles diferentes de rendimiento en la IO. Uno es el nivel bajo y el otro es el nivel alto. En el alto cuando se requieren mas recursos se asignan en cantidades mucho mayores que en el nivel bajo que reciben asignaciones mas pequeas, afectando esto por tanto al rendimiento de las aplicaciones. Las instancias de por si no incluyen ningn software, al igual que un pc recin comprado que no incluye sistema operativo, por tanto hay que utilizar una imagen de un sistema operativo que ser cargado en la instancia y puesto a funcionar cuando sta se inicie. Las imgenes tienen que estar realizadas de una manera determinada para que EC2 sea capaz de arrancarlas y ejecutarlas, siendo dicho formato denominado Amazon Machine Image o AMI, trmino que usaremos de ahora en adelante. Los tipos de sistemas operativos soportados son Windows y Linux (prcticamente cualquier distribucin), pero para usar un sistema operativo en EC2 es necesario incluir en el kernel del sistema extensiones de virtualizacin que permitan la ejecucin en el Cloud de Amazon.

Potencia de cmputo (ECU)


En las instancias el recurso que modela lo que sera el procesador de un servidor tradicional se denomina ECU (EC2 Compute Unit) el cual es la unidad de computo de la instancia. Un ECU provee la potencia de computo equivalente de un procesador a 1.0-1.2 GHz Opteron o Xeon del ao 2007. Esta definicin se ha establecido de manera que permita a los clientes saber aproximadamente el rendimiento de un tipo de instancia, habiendo algunos que incorporan hasta 20 ECUs. Los diferentes tipos de instancias y sus caractersticas se comentarn en el apartado dedicado a los detalles econmicos de Amazon EC2.

Zonas de disponibilidad
Amazon ofrece los servicios de EC2 desde centros de proceso de datos en 4 regiones diferentes, dos en Estados Unidos, una tercera en Europa y la cuarta en Asia. A cada regin se las denomina zona de disponibilidad y cuando se contrata una instancia para una de esas zonas ya no se puede cambiar su ubicacin. Lo habitual es contratar las instancias en la zona de disponibilidad mas prxima si los clientes del servicio van a estar ubicados en una zona concreta o tener instancias en todas las zonas de disponibilidad si el servicio va a ser accedido por clientes distribuidos globalmente.

Pgina 11

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Gestin del servicio


El control de la contratacin de instancias, la gestin del estado de las mismas y otras operaciones se pueden realizar tanto desde la web de Amazon Web Services, donde el cliente de EC2 dispondr de un panel de control desde el que gestionar sus instancias, llamado AWS Management Console, como desde una extensin de Firefox o desde una aplicacin a medida realizada por terceros ya que existe una API en forma de servicio web REST que permite realizar la gestin del servicio. Hay que destacar que todos los servicios ofrecidos por Amazon Web Services disponen de una API que permite a los desarrolladores integrar esos servicios con sus aplicaciones, lo cual tericamente permitira que las aplicaciones funcionando en el Cloud de Amazon pudieran gestionar ellas mismas algunos aspectos de manera automtica.

Escalabilidad, elasticidad y distribucin de carga


En EC2 la escalabilidad la proporciona la facilidad con la cual uno puede contratar nuevas instancias para hacer frente a un pico de carga y la elasticidad la provee el hecho de que las instancias se pueden aadir o eliminar bajo demanda siendo necesario esperar tan solo unos minutos. De este se pueden limitar los recursos existentes a lo estrictamente necesario minimizando el desperdicio por sobreprovisionamiento. La escalada de recursos se puede realizar de manera automtica mediante un servicio adicional denominado Amazon Cloud Watch, que se encarga de monitorizar las instancias y que adems provee adicionalmente, sin coste para el cliente a parte de lo que cueste Cloud Watch, el servicio Auto Scaling, el cual permite definir reglas ciertas condiciones que harn que se creen nuevas instancias o que se detengan algunas de las existentes, manteniendo as el nmero de instancias activas a medida de las necesidades de la aplicacin de manera transparente. Tambin existe un servicio adicional de inters, denominado Amazon Elastic Load Balancer, que permite la distribucin de la carga entre varias instancias para una mayor seguridad y tolerancia a fallos, dado que tambin es capaz de detectar instancias que no funcionan correctamente y redirigir el trfico hacia otras instancias que funcione correctamente. Este servicio es opcional ya que los clientes pueden definir esta parte de la arquitectura de la manera que deseen. Si fuera necesario y como ya hemos comentado en el punto anterior, Amazon tiene una API tipo servicio web REST que permitira a los desarrolladores que la propia aplicacin gestionara la escalada de recursos.

Aspectos econmicos
Amazon ofrece 3 formas de contratacin de instancias, contratacin de instancia bajo demanda, contratacin de instancia reservada (por uno o tres aos) y contratacin de instancia SPOT. Adems, Amazon ofrece distintas caractersticas de instancia para poder seleccionar cual es la que mejor se adapta a nuestras necesidades. As, ofrece 4 distintas regiones (EEUU Virginia, EEUU California, Irlanda y Singapur) para que segn donde nos encontremos, la latencia sea menor. Adems, ofrece distintas caractersticas en cuanto al tipo de instancia. Los tipos existentes son: Standard, High-Memory y High-CPU. Dentro de estas tres divisiones hay otras subdivisiones en funcin del "tamao" (cantidad de recursos). Dentro de Standard hay 3 subdivisiones (Small, Large y Extra Large). Dentro de High-Memory hay 3 subdivisiones (High-Memory Extra Large, HighMemory Double Extra Large y High-Memory Quadruple Extra Large) y dentro de High-CPU hay 2 subdivisiones (High-CPU Medium y High-CPU Extra Large). Todas las instancias son plataformas de 64 bit excepto la Standard Small y la High-CPU Medium que son de 32 bit, respecto al rendimiento de la IO todas tienen un rendimiento alto excepto la Standard Small, la High-CPU Medium y la High-Memory Extra Large que tienen un rendimiento moderado. El resto de caractersticas de las instancias se resumen en la siguiente tabla: Tamao Small Medium Standard
RAM: 1,7 GB ECUS: 1 HD: 160 GB RAM: 7,5 GB RAM: 1,7 GB

High-Memory

High-CPU

Pgina 12

Cloud Computing con Amazon EC2 - AWS 09-10


ECUS: 4 HD: 850 GB

Licencia Creative Commons By-Nc-Sa


ECUS: 5 HD: 350 GB

Large Extra Large Double Extra Large Quadruple Extra Large

RAM: 15 GB ECUS: 8 HD: 1960 GB RAM: 17,1 GB ECUS: 6,5 HD: 420 GB RAM: 34,2 GB ECUS: 13 HD: 850 GB RAM: 68,4 GB ECUS: 26 HD: 1960 GB RAM: 7 GB ECUS: 20 HD: 1960 GB

Las instancias siempre se pagan por horas de uso, aunque una persona desee que su instancia este activa 5 minutos, debe pagar una hora por ella ya que slo se facturan horas completas. Si a lo largo de la hora desea activarla y desactivarla todas las veces que quiera, puede hacerlo, siempre dentro del plazo de la hora. La hora empieza a contar desde que se activa por primera vez la instancia. As, si tu instancia est activa de 8 horas, aunque nadie realice procesamiento ninguno en ese tiempo, Amazon cobrar lo mismo, ya que el cobro se realiza dependiendo de las horas que se tenga activa la instancia, no del uso que se le d. El precio de cada hora de uso vara en funcin del tipo de instancia y la forma de contratacin. Para instancia bajo demanda se cobra un precio por hora de uso diferente del resto sin opciones de ahorro. Para la instancia reservada se paga una cuota fija anual o tri-anual y despus adems se paga por cada hora de uso de la instancia, igual que con la instancia bajo demanda, pero a un precio mucho mas bajo, de modo que si se van a tener instancias funcionando muchas horas al da esta opcin permite ahorrar dinero. En las instancias SPOT, el usuario determina cuanto desea pagar por una hora de uso una instancia de unas determinadas caractersticas en una determinada regin. En EC2 en un momento dado pueden haber muchos recursos libres que no estn siendo usados por ninguna instancia, estos recursos se asignan entonces a los clientes que hayan contratado instancias SPOT para que se ejecuten. Cuando se contrata una instancia SPOT el usuario especifica el precio mximo que est dispuesto a pagar por una hora de uso de instancia SPOT, su instancia (o instancias) se ejecutarn cuando el precio especificado est por encima del precio por hora de las instancias SPOT, precio que vara dinmicamente en funcin de la cantidad de recursos disponibles para instancias SPOT y la demanda de instancias SPOT. Mientras menor sea la cantidad de recursos sin usar y mayor la demanda de instancias SPOT mas alto ser el precio por hora usado para determinar la asignacin. Una vez que el precio/hora especificado por el usuario est por encima del precio/hora de las instancias SPOT la instancia comenzar ejecutarse y no parar hasta que el precio/hora mximo especificado por el usuario quede por debajo del precio/hora de la instancia SPOT o que el usuario detenga la ejecucin de la instancia. El precio/hora que se factura al usuario es el precio/hora de la instancia SPOT determinado por Amazon (el usado para la comparacin) al inicio de cada hora de ejecucin, no el mximo especificado por el usuario. Adems si es Amazon la que termina la instancia porque el precio ha subido por encima del lmite mximo del usuario el tiempo de la hora de ejecucin actual no se factura al cliente como una hora completa. A fin de facilitar una comparacin en la siguiente tabla se muestran los precios por hora de los diferentes tipos de instancia para las tres modalidades de contratacin. En el caso de instancias SPOT los precios mostrados son los que se encontraban en la web de EC2 a la hora de copiarlos, pero esos precios son actualizados cada 30 minutos ya que como se ha mencionado antes varan en funcin de los recursos y la demanda. Todos los precios son para la zona situada en Europa (Irlanda) y para instancias con Linux. Precio/hora OnDemand 0,095$ 0,38$ 0,76$

Tipo/Tamao Standard Small Standard Large Standard Extra Large

Precio/hora Reserved Precio/hora SPOT 0,04$ 0,16$ 0,32$


Pgina 13

0,042$ 0,165$ 0,313$

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

High-Memory Extra Large High-Memory Double Extra Large High-Memory Quadruple Extra Large High-CPU Medium High-CPU Extra Large

0,57$ 1,34$ 2,68$ 0,19$ 0,76$

0,24$ 0,56$ 1,12$ 0,08$ 0,32$

0,246$ 0,585$ 1,171$ 0,079$ 0,321$

La tabla anterior hay que complementarla con la siguiente tabla en la que se muestra el coste del precio fijo a pagar por reserva de instancias: Tipo/Tamao Standard Small Standard Large Standard Extra Large High-Memory Extra Large High-Memory Double Extra Large High-Memory Quadruple Extra Large High-CPU Medium High-CPU Extra Large Reserva 1 ao 227,50$ 910$ 1820$ 1325$ 3185$ 6370$ 455$ 1820$ Reserva 3 aos 350$ 1400$ 2800$ 2000$ 4900$ 9800$ 700$ 2800$

En la siguiente grfica mostramos una comparacin del precio por hora segn el modo de contratacin de instancias y el tipo de instancia.

Ilustracin 6: Precio/hora por tipo de instancia y modo de contratacin Si se necesita que una aplicacin web est activa las 24 horas del da, lo conveniente es contratar instancias reservadas (reservar la instancia), en las cuales se obtiene un mejor precio/hora al pagar una
Pgina 14

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

cantidad fija cada 1 o 3 aos. Si tu aplicacin va a estar siendo utilizada las 24 horas del da durante al menos 254 das al ao, esta modalidad es mas barata que una instancia bajo demanda. Este servicio premia a los clientes que hagan una buena planificacin del consumo de recursos que van a realizar. Este ahorro, que puede parecer un poco escaso a primera vista, es muy significativo en mquinas de altas prestaciones que debamos tener activas 24/7 todos los das del ao. Veamos un ejemplo: Las instancias del tipo High-CPU Extra Large Tienen un coste de 0.76 $/hora (para Unix/Linux) en la antigua frmula de contratacin. Con estos datos el coste anual de esta mquina si nunca la detuviramos sera de: 0.76 $/h * 24 h/da * 365 das/ao = 6,657 $/ao (4,930 euros aprox.) En el nuevo sistema de pago estas instancias tienen un coste de 0.32 $/hora y una cuota anual de 1.820 $. Con estos datos el coste de esta mquina sera el siguiente: 0.32 $/h * 24h/da * 365 das/ao + 1,820 $/ao = 4,623 $/ao (3,423 euros aprox.) Cabe destacar que en las instancias bajo demanda la hora cada vez est ms barata (en el mismo ejemplo anterior, la mquina Linux costaba 0.80$ en Marzo de 2.009) mientras que el precio de las instancias reservadas el precio por hora es ms caro (0.24$/hora en el ejemplo anterior en Marzo de 2.009) pero la cuota fija se reduce (el coste anual era de 2.600$ en Marzo de 2.009). Es posible contratar instancias de varios tipos, de modo que es posible tener una aplicacin en una instancia reservada, activarla y controlar a travs de la propia aplicacin o del monitor que ofrece Amazon el uso de la CPU de la instancia. Si se supera el 80%, es posible crear una nueva instancia bajo demanda, con una rplica de la imagen de la instancia reservada y dividir el procesamiento en las dos instancias. Cuando el uso vuelva a ser inferior al 60%, se puede desactivar la instancia contratada bajo demanda y realizar todo el procesamiento en la instancia reservada. Si estos picos de procesamiento no son demasiado frecuentes, o no deseamos realizar un estudio previo de la frecuencia con la que ocurren, esta es la forma ms adecuada de utilizar los servicios que nos ofrece Amazon Uno de los puntos a destacar es que adems de pagar por estos servicios, se debe pagar tambin por el trfico de la red. Amazon distingue entre transferencia de datos de entrada y transferencia de datos de salida. Si bien, el coste de este servicio no es excesivamente caro, debe tenerse en cuenta a la hora de planificar el coste real de la aplicacin. Por ejemplo, el coste actual del trfico de salida, si se tiene un trfico de entre 10 y 40GB es de 0.11$ cada GB Destacar tambin que Amazon suele ofrecer ofertas por sus servicios, por lo que es conveniente estar pendiente de las ofertas vigentes. Por ejemplo, hoy en da tienen una oferta de no cobrar la transferencia de datos de entrada (hasta Junio de 2.010), o distintas tarifas si la transferencia de datos se hace dentro de la misma regin

Tipos de servicios adicionales


Amazon ofrece adems de EC2 servicios adicionales que pueden ser utilizados de forma complementaria para crear aplicaciones mas escalables. Algunas de ellas pueden ser etiquetadas como herramientas complementarias a nivel de IaaS o PaaS. Las herramientas complementarias a nivel de IaaS aumentan la flexibilidad de la infraestructura y se centran en servicios de almacenamiento: S3 y EBS. Por otra parte las herramientas complementarias a nivel PaaS ofrecen servicios que pueden facilitar el desarrollo de ciertos tipos de aplicaciones pero que de alguna forma impone unas restricciones en el diseo de las mismas. Algunos ejemplos son servicios de almacenamiento en bases de datos o sistemas de paso de mensajes para conjuntos de aplicaciones integradas.

Servicios complementarios a IaaS


Elastic Block Storage (EBS)
EBS provee un servicio de almacenamiento en disco independiente que puede ser usado por una instancia de Amazon EC2 como si de un dispositivo de almacenamiento local se tratase. El contenido del almacenamiento permanece independientemente de que la instancia asociada se apague, algo que no ocurre en el almacenamiento estndar de una unidad EC2. Se trata de un servicio de almacenamiento de alta disponibilidad, fiabilidad tpicamente en aplicaciones que necesitan una base de datos o un sistema de
Pgina 15

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

archivos estable. EBS permite creacin de volmenes de almacenamiento desde 1GB hasta 1TB pudindose asociar mltiples volmenes a una ECU. Se pueden formatear particiones con distintos sistemas de almacenamiento. Los volmenes se crean en una zona de disponibilidad determinada y la informacin del volumen es automticamente replicada dentro de la misma zona para evitar perdidas en caso de fallo de un componente hardware. Adems se pueden crear copias de seguridad a travs del servicio S3. El sistema de pago es tanto por volumen de almacenamiento como por nmero de operaciones I/O.

Auto Scaling & Cloud Watch


Auto Scaling & Cloud Watch es un paquete compuesto por dos servicios en el que el usuario paga por usar Cloud Watch y Auto Scaling se puede usar gratis. Este servicio tiene un coste de $0.015 por hora para cada instancia que se tiene contratada. Auto Scaling es un servicio que permite el escalado automtico del nmero de instancias en uso segn un conjunto de reglas definidas. Con este sistema se puede asegurar la capacidad de respuesta en picos de demanda adems de una mayor tolerancia a fallos si se utiliza junto con el Elastic Load Balancing.

Ilustracin 7: Grfica de monitorizacin de instancias en Cloud Watch Cloud Watch es un servicio de monitorizacin de recursos Amazon EC2. Permite visualizar el estado de uso de recursos, el rendimiento operacional y los patrones de demanda existentes. Mtricas interesantes que incluye son: uso de CPU, lecturas y escrituras en disco, trfico en la red. Se integra con los servicios de Auto Scaling y Elastic Load Balancing, permitiendo tambin monitorizar el funcionamiento de estos servicios. La forma de pago es por el nmero de instancias que se monitor izan.

Elastic Load Balancing


Elastic Load Balancing es un servicio de balanceo de carga orientado a aplicaciones web que distribuye el trfico entre mltiples instancias EC2. El balanceo permite tener una alta capacidad de tolerancia a errores en las aplicaciones independientemente de la capacidad de carga de la aplicacin o de que alguna instancia caiga en un fallo crtico. El balanceador puede detectar "el estado de salud" (EC2 instance health) y deja de enrutar trfico hacia ella. Se trata de una herramienta fcil de gestionar a travs de lnea de comandos.
Pgina 16

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Virtual Private Cloud (VPC)


VPC es un servicio que es capaz de integrar de forma segura la infraestructura de una compaa con la nube en forma de VPN asociando las instancias virtuales a un rango de IPs configurable. Con este sistema se pueden definir distintas subredes, reglas de enrutado y seguridad segn las necesidades de la compaa. La forma de pago es por nmero de conexiones-VPN a la hora y por la tasa de transferencia utilizada. Es til cuando se desea aumentar la disponibilidad de algn servicio crtico en la empresa. Un ejemplo de uso tpico puede ser cuando se desea mover, poco a poco una aplicacin web a la nube, pudiendo comenzar primero por el servidor de bases de datos, luego con el servidor web, etc.

Servicios complementarios a PaaS


Simple Storage Service (S3)
S3 se trata de un servicio de almacenamiento bsico accesible desde Internet que sirve como herramienta para disear sitios web con almacenamiento mas escalable, fiable, rpido, barato y sencillo. Ofrece un conjunto de funcionalidades bsicas en forma de diccionario o mapa: read/write/delete. Estas funcionalidades se ofrecen en forma de servicios web REST o SOAP. Los objetos almacenados pueden tener tamaos desde 1 byte a 5 Gigabytes. Los datos son almacenados en una regin geogrfica llamada bucket que deben ser elegidos para definir la latencia ptima del sistema. Hay tres bucket US-Standard, USWestern y EU. Los datos nunca almacenan su bucket, aunque pueden ser copiados a otros buckets. Tambin dispone de servicios de autenticacin por motivos de seguridad. El acuerdo de nivel de servicio asegura una disponibilidad de un 99.9% donde la indemnizaciones por incumplimiento (hasta el 99%) es del descuento del 10% del pago, un 20% en el caso de no mantener disponibilidad superior al 99%. La forma de pago es dual: se paga por almacenamiento, aunque a mayores tamaos se paga una tasa menor por Gb. Tambin se paga por uso de la red. Para contratos pequeos se paga por request (PUT,COPY,POST, etc.) para contratos mayores se paga por uso de ancho de banda.

Relational Database Service (RDS)


RDS permite crear, escalar y utilizar bases de datos relacionales en la nube. Se trata de un servidor de base de datos MySql montado sobre una infraestructura escalable. Ofrece la creacin automtica de backups. Se puede acceder a los servicios a travs de cualquier herramienta diseada para mysql por lo que en lo general lo hace independiente a la plataforma de desarrollo. Se paga por la cantidad de almacenamiento utilizado, procesamiento y transferencia de datos utilizado de forma muy similar a las ECUs. De hecho cada tipo de Instancias de DB que Amazon ofrece tiene asociada una configuracin especfica de EC2, por ejemplo: Quadruple Extra Large DB Instance: 68 GB de memoria, 26 ECUs (8 virtual cores con 3.25 ECUs cada uno), plataforma de 64-bit.

Simple Queue Service (SQS)


SQS es un servicio de comunicaciones escalable entre aplicaciones mediante el paso de mensajes almacenados en una cola. Permite comunicaciones entre cualquier tipo de aplicacin en Internet, independientemente de la red en la que se encuentre o la tecnologa con la que est siendo desarrollado. Se trata de una pieza clave en la integracin de aplicaciones y presumiblemente su uso es ptimo cuando se trabaja con Instancias EC2 ya que utilizan la misma infraestructura. Al igual que los otros servicios, el almacenamiento de las colas pueden ser localizados en tres regiones distintas segn las necesidades de disponibilidad A nivel de desarrollo se pueden crear un nmero limitado de colas con un nmero ilimitado de mensajes de 8KB como mximo. Los mensajes son almacenados hasta 4 das. El acceso a estos servicios se realiza mediante una interfaz de operaciones a travs de un servicio web SOAP. La forma de pago est basada en la cantidad de datos transferidos y los precios propuestos son asequibles.

Simple DB
Simple DB es un servicio escalable, fiable y flexible de base de datos no relacional que ofrece precios
Pgina 17

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

econmicos. El acceso a esta base de datos se realiza mediante el protocolo HTTP y sus comandos bsicos. La forma de pago es por tasa de transferencia utilizada y almacenamiento. Al igual que la mayora de servicios de AWS se requiere la eleccin de una regin de trabajo acorde a las necesidades de disponibilidad.

Diagrama de conceptos del Cloud Computing con Amazon EC2


Tras la presentacin de los elementos que componen Amazon EC2 presentamos un diagrama que ilustra los elementos presentados de manera simplificada. En este diagrama se ha seguido el mismo proceso que en el diagrama de conceptos de Cloud Computing, se ha comenzado por un concepto central y se han ido situando aquellos conceptos relacionados a partir del mismo:

Ilustracin 8: Diagrama de conceptos de Cloud Computing con Amazon EC2

Crecimiento y futuro de EC2


Desde el lanzamiento de EC2 el inters por los servicios prestados por Amazon Web Services LLC no ha hecho mas que incrementar. Muestra de ello es la siguiente grfica publicada en el blog oficial de Amazon Web Services en la cual podemos notar el incremento en el trfico generado por las aplicaciones que usan el Cloud Computing de Amazon desde que se lanz el servicio en 2006 hasta finales de 2007[11]:

Pgina 18

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Ilustracin 9: Ancho de banda consumido por AWS respecto del resto de webs de Amazon Por otro lados otros datos[14] apuntan a que el uso de EC2 podra estar creciendo a un ritmo de un 10% mensual, pero no hay datos concretos actualizados publicados por Amazon.com como la anterior grfica. Lo que si est claro es que EC2 es un servicio muy demandado y que dadas las ampliaciones y rebajas en precios[13] se est consolidando como lder del sector, lo cual se refleja en la siguiente grfica[15]:

Ilustracin 10: Top 500k de sitios en Cloud - Marzo 2010


Pgina 19

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Caso de estudio
El presente caso de estudio persigue aportar un ejemplo bsico de aplicacin de los servicios ofrecidos por AWS sobre cloud computing. Primero detallaremos los requerimientos y caractersticas de un servicio de pelculas online que permite a sus usuarios ver pelculas a cualquier hora del da, para seguidamente aplicar los servicios de AWS (EC2 y otros) para describir una posible solucin al problema que ilustre y clarifique la funcin de cada servicio de AWS y la posible arquitectura final de un despliegue en la nube. El caso de estudio y la posible implementacin aqu presentados han sido creados con la idea de ilustrar de manera mas prctica los conceptos y servicios descritos, sin pretensin de optar a la categora de solucin real a un problema real.

Descripcin de la empresa y su servicio


La empresa es un videoclub que se dedica a despachar pelculas por streaming y el beneficio principal de la empresa esta basado en dos aspectos, la publicidad en su web e incrustada en los vdeos para los usuarios normales, y el pago por cuenta premium para los usuarios que no deseen publicidad. El hosting para la web es un hosting sencillo bsico que provee de una base de datos mysql y un servidor apache PHP. El hosting para el streaming consiste en un nmero de servidores esttico y un balanceador DNS. Cada servidor almacena todas las pelculas en un disco duro local para evitar el consumo del ancho de banda producido por un disco duro comn o SAAN. La infraestructura software responsable de suministrar el servicio de streaming de queda servidor es un Apache con un mdulo de streaming que se encarga de utilizar un archivo en algn dispositivo de almacenamiento y suministrarlo en forma de streaming al cliente concreto.

Definicin del problema


La empresa ha estado durante varios aos en un hosting y ha adquirido fama y ha tenido xito. El negocio ha sido rentable mientras ha habido un nmero de usuarios pequeo. Sin embargo a medida que ha ido creciendo la demanda, el servicio ofrecido por el sistema ha empeorado y en las horas puntas el hosting no ha sido capaz de responder con la calidad deseada a los usuarios. Desde ese momento, se han comenzado a perder usuarios, incluso en las horas de menor demanda, ya que el servicio est perdiendo popularidad. La decisin de la empresa es estudiar un sistema de hosting ms flexible: cloud computing con Amazon Web Services, que pueda ajustar los costes de mantenimiento de la infraestructura y responder a un eventual cambio significativo en la demanda. Durante los ltimos meses se ha hecho un anlisis de la demanda del servicio para tener una base de conocimiento que sirva para adquirir una nueva infraestructura que permita ofrecer un servicio de calidad a los usuarios. Como solucin, se ha planteado que esta infraestructura est mantenida sobre el paradigma de Cloud Computing con Amazon WebServices. Por otra parte, la potencia del servidor web comienza a quedarse limitado, especialmente el acceso a la base de datos actualmente constituye un cuello de botella y limita el correcto funcionamiento del sistema, por lo que la solucin planteada debe tener en cuenta este aspecto.

Estudio de demanda
En los datos se distinguen dos claros segmentos horarios en la demanda: Baja demanda: Matinal- Nocturno : 1:00 am 5:00 pm N de Usuarios medio: 700 usuarios Diversidad de pelculas: 50% Alta demanda: Tarde: 5:00 pm 1:00 am N de Usuarios medio: 3500 usuarios Diversidad de pelculas: 80%
Pgina 20

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Ilustracin 11: Grfica de la demanda segn horario del caso de estudio Los datos de consumo tambin ha sido estudiados: El porcentaje medio de duracin de una pelcula es de 120 minutos. La reproduccin de una pelcula con calidad media tiene un coste de 548 Kbps (buena calidad), por lo que cada segundo de visualizacin de una pelcula consume este ancho de banda (aproximadamente ya que hay ineficiencias en los protocolos de transporte que no se tienen en cuenta). El tamao de datos medio a transmitir por pelcula (pelcula completa) es de 470,35 MBytes. Actualmente hay unas 1000 pelculas en catlogo.

Propuesta de solucin con Amazon WebServices


Requisitos
No tener que cambiar la aplicacin web y el resto del desarrollo software. Capacidad de reaccionar ante los actuales cambios de demandas diarios. Flexibilidad para readaptar el sistema ante un eventual cambio de demanda a medio plazo.

Servicios involucrados
Servicio de almacenamiento de bloques EBS
Este servici permitir almacenar de forma permanente los archivos de las pelculas y ser accesible entre las distintas instancias de Amazon EC2. Otra posible opcin de sistema de almacenamiento elstico es Amazon S3. Sin embargo esta opcin se ha descartado ya que su uso de este servicio es a travs de servicios web por lo que es contrario a la opcin del uso del servidor de streaming. Por el contrario, EBS es percibido por cada instancia como un dispositivo de bloques propio lo que facilita el mantenimiento de la infraestructura software desarrollada hasta el momento.

Servicio de base de datos RDS


Este servicio permitir mantener el diseo e implementacin de la aplicacin web simplemente cambiando la cadena de conexin a la base de datos. Dado que se pretende que el mantenimiento

Pgina 21

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Amazon Auto-Scaling & Elastic Load Balancer


Para contratar Amazon Auto-Scaling es necesario contratar Amazon Cloud Watch. Este servicio tiene un coste de $0.015 por hora para cada instancia que se monitorice. Con Amazon Auto-Scaling, se agrega una condicin, si se detecta que se cumple la condicin, se agrega la cantidad de instancias que se ha seleccionado a un grupo de instancias. Es decir, este servicio permitir agregar nuevas instancias cuando aumente el nmero de usuarios, como ocurre a partir de las 17:00. De la misma manera, se agrega una condicin para ir apagando instancias, para que no sea necesario pagar por instancias que no se estn utilizando. Con Amazon Load Balancer ocurre algo similar, se le puede establecer una condicin a partir de la cual se realiza una nueva distribucin de carga entre las instancias que pueden recibir trfico. Ambos servicios se pueden utilizar conjuntamente sin ningn tipo de problemas.

Amazon EC2
Instancias que se van a contratar. Este servicio permitir alojar tanto servidores web como servidores de streaming. Adems, se podrn dar de baja y alta instancias segn las necesidades del sistema. Se contratarn diferentes tipos de instancias segn el tipo del servidor, consiguiendo as una mejor adaptacin al tipo de problemas que puede suponer tener dos tipos de servidores distintos.

Arquitectura
La arquitectura de la implementacin con servicios de AWS es la mostrada en el siguiente diagrama:

Ilustracin 12: Arquitectura de la solucin propuesta para el caso de estudio La carga generada por los usuarios ser distribuida entre las distintas instancias de EC2 activas (servidores) mediante el uso del servicio Elastic Load Balancing (ELB) [19]. Este servicio balancea la carga entre las instancias asignadas y se integra perfectamente con el Auto-Scaling. El propio servicio ELB es adems capaz de escalar en funcin de la carga evitando que el balanceador se convierta en un cuello de botella, esto es porque Amazon ha implementado un sistema de DNS Round Robin [20] que es transparente al usuario de este servicio. Si nosotros mismos usramos algn tipo de software para el balanceado de carga nos encontraramos con que el cuello de botella sera el ancho de banda de la instancia del balanceador que est en torno a los 35Mbps [21], aunque este es un dato es emprico y vara segn el tipo de instancia,
Pgina 22

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

mientras que AWS tiene este problema mas que resuelto. Los balanceadores de carga distribuirn las peticiones entre todos los servidores existentes los cuales ante un pico de peticiones comenzarn a saturarse. Es en este momento donde entra el servicio Auto-Scaling, el cual comenzar a lanzar nuevas instancias, de entre las contratadas por el cliente del servicio, para satisfacer el aumento de la carga. Podemos observar como se han separado los balanceadores en dos grupos, por un lado los que distribuyen la carga de la web y por otro los que distribuyen la carga del servicio de streaming ya que se han separado los servidores en dos grupos por tener diferentes requerimientos de ancho de banda y procesamiento de modo que podemos escoger el mejor tipo de instancia en cada caso. Claramente la mayor carga de trfico la soportarn las instancias de streaming y sus balanceadores debido a la masiva cantidad de datos que hay que transmitir. En esta arquitectura cada servidor de streaming se encarga de satisfacer las peticiones de los clientes accediendo a las pelculas, cacheandolas en memoria y sirvindolas a los clientes, de modo que sucesivas peticiones sobre al misma pelcula sern servidas mucho mas rpidamente, siendo el mejor aprovechamiento cuando la variabilidad entre pelculas es la mnima (50%). Al ser este un servicio bajo demanda es complicado organizar los servidores de manera que se maximice el uso de los datos cacheados y tal problema no es el objetivo de este trabajo, as que supondremos que esta estrategia es aceptable. Los servidores de streaming tienen como nica funcin el streaming de vdeo a los usuarios cacheando las pelculas para acelerar el proceso. El ancho de banda de cada instancia est limitado por lo que las pelculas a servir por cada instancia estar limitado por este ancho de banda. No conocemos cual este ancho de banda pero como ya comentamos antes para las instancias pequeas es de 35Mbps [21] , que tiene un rendimiento de IO inferior a otras instancias, as que para instancias mayores podemos suponer que es mayor. Por tanto podemos concluir que cada servidor de streaming puede sostener en torno a 70 conexiones concurrentes de streaming y dada esa cantidad de pelculas necesitamos una instancia con mucha memoria para el cacheo, que en base al nmero de conexiones superior anteriormente comentado sera una instancia High-Memory Double Extra Large ya que provee 43,2 GB de memoria RAM y tiene ECUs mas que de sobra para manejar el nmero de conexiones. Para los servidores de streaming necesitaremos siempre tener como mnimo la cantidad suficiente para atender a los usuarios del horario de baja demanda, esto es 700/70 = 10 instancias. Estas instancias van a estar funcionando de manera fija 24 horas al da as que se reservaran durante un perodo de tres aos para reducir su coste. Luego hemos de provisionar instancias para satisfacer la demanda en el horario de alta demanda y para hacer frente a posibles picos en el servicio. Para ello primero necesitamos cubrir el horario de baja demanda con 3500/70 - 10 = 40 instancias (restamos las instancias reservadas) ms otras 10 por si hay picos de demanda superiores a 3500 usuarios, lo cual permitira aguantar picos de hasta 4200 usuarios. El tener mas instancias bajo demanda no supone un coste adicional ya que si no se usan no se pagan. El criterio para el escalado ser el trfico de salida de las instancias que se relaciona con el nmero de clientes al que est sirviendo, de manera que si una instancia est sirviendo al 85% del mximo de clientes se arrancar una instancia, tambin si una instancia deja de servir peticiones ser apagada. Los servidores web alojan la web que es el punto de acceso al servicio por los usuarios. Esta web es la misma que se utilizaba en la anterior versin del servicio pero con un diseo ligeramente variado y configurada para funcionar en varias instancias a la vez. El tipo de instancia seleccionado es Standard Medium ya que la Standard Small tiene slo un ECU y su rendimiento de IO es medio, mientras que la Standard Medium tiene mejor rendimiento de IO, 4 ECUs y mas RAM para cachear contenidos. Los servidores web son capaces de aguantar muchas peticiones de los usuarios, pero para calcular costes necesitaremos suponer un nmero mximo de usuarios. Supongamos que cada servidor web es capaz de aguantar 800 peticiones por segundo, de modo que en perodo de baja demanda podramos funcionar con un slo servidor pero en perodos de alta demanda necesitaramos 5 servidores. El primero sera una instancia reservada por tres aos y los otros 4 seran instancias bajo demanda que seran arrancadas cuando el primer servidor sobrepasara las 700 peticiones por segundo. Todas las instancias comparten un volumen EBS donde se encuentran las pelculas a servir a los clientes y las instancias de los servidores web comparten el acceso a una base de datos RDB que contiene
Pgina 23

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

informacin sobre pelculas, usuarios y sesiones activas, de modo que los usuarios autenticados sern los que tendrn acceso a las pelculas, permitiendo adems controlar las pelculas que accede cada usuario entre otras posibles caractersticas del servicio. Para el servicio RDB se ha seleccionado la opcin Large Db Instance que tiene las siguientes caractersticas: 7.5 GB de RAM, 4 ECUs y plataforma de 64-bit. Adicionalmente para la base de datos se contar con 30 GB de almacenamiento. Para el servicio EBS se seleccionar un espacio de almacenamiento de 2 TB donde habr sitio mas que de sobra para almacenar las pelculas y los archivos comunes de la aplicacin.

Planificacin de costes de la propuesta con Amazon Web Services


Los costes de servicio se obtienen aplicando las tarifas expuestas por AWS a lo descrito anteriormente para la demanda especificada. Para ello vamos a calcular o estimar las cantidades de los conceptos por los cuales se factura para un perodo de 30 das. Instancias: El nmero de instancias de cada tipo ya se coment anteriormente, pero lo volveremos a detallar para que quede bien claro: Standard Large Reservadas: 1 Horas de uso: 720 (24h al da 30 das 1 instancia) Precio por hora: 0,16$ Coste de reserva: 1400$ 3 aos Coste horas: 115,2$ On-Demand: 4 Horas de uso: 960 (8h al da 30 das 4 instancias) Precio por hora: 0,38$ Coste horas: 364,8$ High-Memory Double Extra Large Reservadas: 10 Horas de uso: 7200 (24h al da 30 das 10 instancias) Precio por hora: 0,56$ Coste de reserva: 49000$ 3 aos (4900$ por instancia) Coste horas: 4032$ On-Demand: 40 (Hay otras 10, pero no se usan realmente, estn por si hay subidas repentinas en la demanda, pero no es lo esperado) Horas de uso: 9600 (8h al da 30 das 40 instancias) Precio por hora: 1,34$ Coste horas: 12864$ Ancho de banda: Respecto al ancho de banda tenemos que hacer ciertas suposiciones, pero el nico que podemos calcular directamente es el de salida de las instancias de streaming que est directamente relacionado con el nmero de usuarios. Para el resto haremos ciertas suposiciones: Web De salida: 19,5 GB al mes por servidor. 5 GB en baja demanda y 14,5 GB en alta demanda. De entrada: 1,75 GB al mes. 0,5 GB en baja demanda y 1,25 GB en alta demanda. Streaming: De salida: El volumen de datos de salida es el nmero de usuarios multiplicado por el bitrate (kbps) medio de las pelculas y por el nmero de segundos que hay en 30 das. El resultado hay que convertirlo de Kbps a MB. En baja demanda: Usuarios: 700 Tiempo: 12 horas al da, 30 das al mes. Bitrate: 548 Kbps Total (Kbps): 497145600000 Total (GB): 57875,4 Total (TB): 56,5 En alta demanda: Usuarios: 3500 Tiempo: 8 horas al da, 30 das al mes.
Pgina 24

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Bitrate: 548 Kbps Total (Kbps): 1657152000000 Total (GB): 192918 Total (TB): 188,4 En total: 244,9 TB De entrada: El volumen de entrada a los servidores de streaming es desconocido, pero podemos suponer 4 bytes por cada 8192 bytes de datos enviados. En baja demanda: 28,3 GB En alta demanda: 94,2 GB Totales: De salida: Total: 250812,9 GB Precio por GB: 0,08$ Coste: 20065,32$ De entrada: Total: 122,5 GB Precio por GB: 0,10$ Coste: 12,25$ Otros servicios de AWS utilizados: RDS: Horas de uso: 720 (24h al da 30 das) Precio por hora: 0,48$ Espacio de almacenamiento: 30GB Precio por GB: 0,11$ IO (millones): 18144 en baja demanda y 60480 en alta demanda (supuesto 20 operaciones de IO por usuario y segundo) Precio por milln de IO: 0,11$ Coste: 8997,54$ ELB: Se usarn dos balanceadores de carga, uno para la web y otro para el servicio de streaming. Balanceadores: 2 Horas: 1440 (24h al da, 30 das, 2 balanceadores) Precio hora: 0,028$ Trfico: 250812,9 GB Precio GB: 0,008$ Coste: 2046,82$ EBS: Se tendr un disco de 2 TB de capacidad donde caben de sobra las pelculas existentes en el catlogo mas otras nuevas que se vayan sumando. Para calcular el precio adems se necesita una estimacin del nmero de millones de operaciones de IO, el cual estimamos en una media de 20 por usuario y por segundo. IO Baja demanda: Usuarios: 700 Tiempo: 3600 * 12 * 30 Total IO (millones): 18144 Alta demanda: Usuarios: 3500 Tiempo: 3600 * 8 * 30 Total IO (millones): 60480 Espacio de almacenamiento: 2048 GB Precio por GB: 0,11$ Precio por IO (milln): 0,11$ Coste: 8873,92$ Cloud Watch: Horas de monitorizacin: 18480 (suma de las horas de todas las instancias) Precio hora: $0.015 Coste: 277,2$ En la siguiente tabla mostramos el resumen del coste mensual de los servicios:
Pgina 25

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Concepto Uso de instancias reservadas Uso de instancias bajo demanda Consumo de ancho de banda RDS Elastic Load Balancer Elastic Block Storage Cloud Watch Total de coste mensual: 57647,12$ (47219,54) Coste anual: 691765,44 (566504,04)

Coste 4147,2$ 13228,8$ 20077,57$ 8997,54$ 2046,82$ 8873,92$ 277,2$

A lo anterior hay que aadir el coste cada tres aos de las instancias reservadas que asciende a 50400$.

Conclusiones
Cloud Computing no es slo un Buzz Word y aunque ahora est de moda muchas empresas estn basando parte de su negocio en servicios como Amazon EC2, por lo que en un futuro, una vez haya pasado su mximo de popularidad, habr un nicho de negocio importante. Aunque, como suele pasar en estos casos, an hay cierta falta de consenso a la hora de definir que es exactamente Cloud Computing, con lo que nos podemos encontrar que segn a quin le preguntemos obtendremos definiciones con diferencias importantes. En nuestro trabajo hemos utilizado aquellas definiciones que parecan mas comunes a nuestro juicio. Tambin es importante destacar que las aplicaciones no pueden ejecutarse tal cual sobre Amazon EC2 ya que la arquitectura necesaria para sacar provecho al servicio EC2 y a los servicios relacionados puede ser distinta de la que pueda tener una aplicacin realizada sobre servidores privados, lo cual implica que es necesario aprender como funciona EC2 y como sacarle partido a los servicios antes de realizar ningn cambio. En el aspecto econmico EC2 es un servicio cuya viabilidad hay que estudiar antes de lanzarse ya que hay que tener en cuenta el diferente modelo de facturacin, hacer planes fiables sobre la cantidad de recursos a necesitar, adaptar la aplicacin para sacar provecho a EC2 y finalmente dimensionar el uso a lo que se necesite. Para un sitio pequeo o una aplicacin que no genera un gran trfico o en la cual no importa que durante los picos de actividad algunos usuarios queden sin atender satisfactoriamente Amazon EC2 puede no ser una opcin viable, ya que un hosting tradicional econmico podra servir perfectamente a los propsitos y a un precio muy inferior. Hay un aspecto negativo, comn a todos los servicios de este tipo, relacionado con la inseguridad que provoca en la empresa el depender de un proveedor externo para realizar parte de sus operaciones, si no es que dependen totalmente. Cuando una empresa migra sus procesos de negocio e infraestructura hacia una solucin de Cloud Computing est dejando una parte importante de sus activos en manos de un tercero, lo cual siempre genera ciertas reticencias ya que si el proveedor experimenta problemas o si hay un fallo en las redes de conexin a Internet, que a su vez dependen de uno o ms proveedores distintos, la empresa sufrira grandes prdidas. Esta claro que para asumir estos riesgos las empresas acuerdan niveles de servicio mnimos con los proveedores (SLAs), pero en el caso de Amazon EC2 el acuerdo que hay disponible en la web no nos parece suficiente indemnizacin para un servicio del cual puede depender el futuro de una empresa. En esta lnea tambin podemos comentar que igual de valiosos son los datos almacenados en el servicio que los procesos de negocio que sustenta. En este punto el cliente del servicio deber confiar en que las medidas de seguridad del proveedor evitarn que sus datos puedan ser robados y esto es algo que no hemos visto mencionado en ninguna parte acerca de EC2. Por tanto, dado lo anterior y el hecho de que las aplicaciones necesitan adaptaciones para funcionar en
Pgina 26

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

EC2, podemos concluir que se genera una dependencia bastante fuerte entre el cliente de EC2 y el proveedor del servicio, de modo que es mucho mas difcil cambiar a otro proveedor o una vuelta a una solucin de hosting tradicional que antes de adoptar EC2. Finalmente, un ltimo punto negativo, es el hecho de que a pesar de que Cloud Computing promueve la idea de que las aplicaciones pueden ir incrementando la cantidad de recursos que tienen asignados de manera infinita esto en la prctica no es totalmente cierto. EC2 por ejemplo permite un incremento en la contratacin mximo de 20 instancias por zona de disponibilidad y por da. En la realidad bajo la nube hay un hardware concreto y un servicio de mantenimiento que tiene que luchar por conseguir que se cumplan los acuerdos de nivel de servicio y de disponibilidad, donde tanto el hardware como la capacidad de crecimiento en un momento dado son finitos, por lo que podra llegarse al momento en el que el proveedor tuviera que poner lmites mas estrictos a la adquisicin de nuevos recursos para mantener los niveles de servicio.

Pgina 27

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

FAQ
Para realizar esta FAQ, se han escogido profesionales del mundo de la informtica que no tenan conocimientos de este paradigma, se les ha explicado brevemente lo que significa Cloud Computing, y se han apuntado las dudas que les han ido surgiendo. Despus, se ha completado con una serie de cuestiones que se nos han ido presentado. Las preguntas y sus respuestas son las siguientes:

- Qu es Cloud Computing?
Es una forma de computacin a travs de Internet usando recursos compartidos de muchos ordenadores en lugar de usar los recursos hardware y software de una mquina local, lo cual suele permitir una mayor escalabilidad al no estar sujetos a unos recursos hardware fijos y una mayor eficiencia ya que se aprovecha mejor el hardware que hay bajo la nube.

- Qu ventajas ofrece Cloud Computing?


La principales ventajas del Cloud Computing son: Escalabilidad: La nube proporciona recursos virtualmente "ilimitados", permitiendo incrementar o decrementar los recursos disponibles a medida que se necesiten e incluso puede realizarse automticamente. Simplicidad: El cliente se ve liberado de tareas de gestin y mantenimiento de infraestructuras o plataformas, con lo que se puede centrar en su negocio. Ahorro: El Cloud Computing permite a las empresas ahorrar en costes ya que no tienen que invertir en hardware ni gastar dinero en el mantenimiento y gestin de la infraestructura. Adems permite pagar slo por los recursos consumidos por las aplicaciones. Uno de los puntos en los que ms se ahorra es a la hora de hacer las pruebas de capacidad, ya que no es necesario duplicar la infraestructura ni parar los sistemas de produccin para utilizar los recursos que stos estaban utilizando. Ubicuidad: Acceso a los recursos desde cualquier punto con conexin a Internet

- Todo son ventajas?


No. Tambin tiene sus desventajas, como todo en la vida. Las principales desventajas son: Sensacin de Inseguridad: La empresa sita activos importantes para su actividad (datos, lgica de negocio) en la nube, sobre la cual no tiene ningn control por pertenecer a un tercero, por lo cual no puede controlar totalmente las polticas de seguridad en los servicios y debe confiar absolutamente en el proveedor de servicios. Integracin: No suele ser fcil integrar los sistemas que funcionan en la nube con sistemas que ya estuvieran en funcionamiento en la organizacin. Fallos: Existen dos puntos de fallo externos a la infraestructura de la organizacin, uno es el proveedor de conexin a Internet y el otro es el proveedor de servicios de Cloud Computing. Si cayera un proveedor de servicios de Cloud Computing todos los que usen ese servicio quedaran en una muy mala situacin, de igual manera si un proveedor de Internet o parte de la red cae se estara en la misma situacin. Disponibilidad: El proveedor de Cloud Computing puede realizar paradas del servicio por cuestiones varias (como mantenimiento) en contra de la voluntad del cliente.

- Qu perspectivas de futuro tiene el Cloud Computing? Ser la forma de alojamiento del futuro?
Actualmente el cloud computing se est empezando a explotar masivamente como SaaS debido en parte a que es la nueva Buzz word de moda y en parte a las ventajas ya mencionadas. En el futuro con la tendencia a usar cada vez mas servicios online y el aumento de la inversin en desarrollo de aplicaciones bajo el modelo SaaS el Cloud Computing se muestra una pieza fundamental para aquellas organizaciones que no pueden costearse su propia infraestructura para atender cientos de peticiones por segundo, satisfacer sus enormes necesidades de clculo o permitirles responder a picos espontneos de trfico con las garantas de fiabilidad y disponibilidad necesarias.
Pgina 28

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

- Que empresas ofrecen servicios basados en Cloud Computing?


Extranjeras Microsoft Google Amazon Salesforce Soho IBM Rackspace Espaolas ASPGems. Ilion sistemas. Litebi

- Que tipo de aplicaciones son las mejores candidatas para cloud computing?
Aquellas que aprovechan todas sus ventajas y que no se ven afectadas mayormente por las desventajas. Aplicaciones que en determinados momentos pueden experimentar grandes cargas, sin que ello justifique una nueva inversin en recursos para controlarlas. Aplicaciones que para su despliegue requieren una infraestructura en los que la organizacin no quiere o no puede invertir. Aplicaciones que tengan que ser accesible desde mltiples localizaciones geogrficas distantes entre s. Aplicaciones crticas que requieran una fiabilidad y una disponibilidad para las cuales la organizacin no est preparada para afrontar. Aplicaciones que resultan mas baratas de ejecutar en la nube que en una infraestructura privada de hardware.

- Qu es Amazon EC2?
Es un servicio de Cloud Computing de tipo IaaS principalmente. Amazon EC2 (Elastic Compute Cloud) se basa en la utilizacin de sistemas operativos virtualizados, que se suben en forma de imgenes de instalacin de dichos sistemas operativos, denominados AMIs (Amazon Machine Image), que corren sobre la infraestructura de Cloud Computing de Amazon.

- Qu otros servicios ofrece Amazon relacionados con EC2?


Amazon EC2 es parte de un conjunto mucho mayor de servicios que se ofrecen bajo una divisin especfica de la compaa conocida como Amazon Web Services. Los servicios que nos interesan a nosotros por estar basados en los conceptos de Cloud Computing son: Amazon Virtual Private Cloud: Permite extender la VPN de una organizacin a instancias en la nube. Amazon Elastic Block Store (EBS): Almacenamiento de datos persistente independiente del espacio de almacenamiento de la instancia de EC2. Servicio complementario a EC2. Auto Scaling: El nmero de instancias asignadas pueden incrementarse automticamente cuando ocurre un pico de uso o bajo peticin de la propia aplicacin. Este servicio es totalmente configurable por el usuario. Elastic Load Balancing: Balanceo de la carga automtico entre las instancias disponibles. CloudWath: Monitorizacin de las instancias de EC2. Amazon Simple Storage Service: Amazon S3 es un servicio de almacenamiento de archivos que proporciona de manera sencilla un medio para almacenar y recuperar cualquier cantidad de datos. La diferencia entre S3 y EC2 es que mientras que S3 es un sistema de almacenamiento EC2 ofrece capacidad de procesamiento, aunque dispone de cierta capacidad de almacenamiento para archivos de la aplicacin pero que no es accesible desde Internet como lo son los archivos almacenados en S3.

- Ejemplos reales de empresas u organizaciones que hayan migrado a Amazon EC2? (a ser posible espaolas)
Pgina 29

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Mename: Sitio web espaol de noticias al estilo de Digg que han migrado a Amazon EC2 a finales de 2009. VivaReal: Empresa inmobiliaria que opera en el continente americano que cre y despleg una web de gestin inmobiliaria sobre Amazon EC2. Monografas: Monografias.com es un sitio de Internet con publicaciones, ensayos, tesis y trabajos universitarios aportados por autores independientes

- Qu criterios usa Amazon a la hora de facturar por el uso de sus servicios?


En EC2 se factura por horas completas de uso de las instancias (horas que la instancia est activa) y por ancho de banda de subida y bajada consumido. Los precios de cada hora de uso varan en funcin del tipo de instancia y de otras opciones de contratacin. En los dems servicios se factura por: Elastic Block Storage (EBS) Espacio reservado Millones de operaciones de IO Simple Storage Service (S3) Ancho de banda consumido Espacio reservado Simple Query Service (SQS) Simple Data Service (SDS) Consultas realizadas (se factura un precio por cada tipo, por lo que no se cobra lo mismo por inserciones en la base de datos que por lecturas).

- Qu es una hora de uso de instancia?


Es una hora durante la cual una instancia de EC2 est activada ("encendida" por as decirlo). En Ec2 las horas se pagan completas as que si la instancia est activa 40 o 50 minutos se paga lo mismo.

- Tengo una aplicacin que quiero migrar a Amazon EC2 Cmo puedo medir las horas de uso para saber cuando podra costar?
La hora de uso corresponde con el tiempo que una instancia est activada, es decir "encendida". De modo que si la aplicacin actualmente funciona sobre servidores que estn encendidos las 24 horas se podra extrapolar ese nmero de horas para calcular el coste mensual aproximado. Hay que tener en cuenta que al tener libertad para aadir y quitar instancias bajo demanda se debera estudiar cuales instancias deberan estar activas en un momento dado, con lo cual se podra ahorrar en costes.

- Es rentable para Amazon proveer estos servicios?


Los datos econmicos de Amazon.com en el ltimo cuarto de 2009[13] arrojan un incremento de un 41% en beneficios y que Amazon est invirtiendo en alquiler de espacio para datacenters adems de que han bajado el precio de alguno de sus servicios, como S3. Por tanto, los servicios que presta Amazon Web Services tienen que estar dando beneficios a la compaa ya que se est invirtiendo en ampliar el servicio y en hacerlo mas asequible.

- Qu se debe tener en cuenta a la hora de realizar una aplicacin si se quiere alojar en los servicios de Cloud Computing que ofrece Amazon?
Si la aplicacin puede correr sobre una sola instancia de EC2 no hay mucha diferencia. En otro caso se tendr que tener en cuenta que no todos los recursos de la aplicacin van a tener los mismos requerimientos de escalabilidad, consumo de CPU y ancho de banda por lo que convendr separarlos. Por ejemplo, una web puede tener una serie de instancias sirviendo peticiones Http sobre contenido dinmico, estando configurado el servicio para crear instancias extras durante los picos de actividad, pero tambin tener una instancia para los contenidos estticos que no est configurada para escalar ya que servir contenido esttico provoca una carga muy inferior a servir contenido dinmico.

Pgina 30

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Tambin hay que tener en cuenta que si se tienen diferentes instancias de la misma aplicacin corriendo a la vez en diferentes mquinas de la nube hay que preparar la aplicacin para que funcione correctamente y que se tendr que usar un balanceador de carga (Amazon lo proporciona) que distribuya las peticiones entre las diferentes instancias, adems Amazon proporciona un monitor que decide, en base a una configuracin previa, cuando hay que lanzar las instancias de refuerzo ante un incremento de la carga en las instancias activas.

- Como se realizan las indemnizaciones en caso de incumplimiento de contrato?


Amazon reembolsa el 10% sobre la factura del prximo mes de facturacin en caso de que la regin en la que se encuentra la instancia afectada no estuviera disponible el tiempo suficiente como para que no se pueda llegar al 99.95% de disponibilidad en el ao de servicio, lo cual significa que no se pueda acceder a la zona donde se tiene la instancia durante 5 minutos en los 365 das posteriores al contrato/renovacin del servicio. El incumplimiento de contrato excluye aquellas causas fuera del control de Amazon, como desastres naturales o fallos en los proveedores de Internet, por los cuales Amazon no indemnizar al cliente.

- Cual podra ser el coste de correr una aplicacin web corriente en Amazon EC2?
Usando la herramienta de clculo que provee Amazon Web Services[8] podemos poner un ejemplo de clculo de costes sobre los siguientes supuestos: Instancias: 1 instancia pequea en la regin de Europa. Uso mensual de la instancia: 100%. Asumimos que la instancia no se para nunca, por lo que est continuamente en activo. Instancias extra para cubrir picos de uso: Ninguna. Asumimos que el trfico nunca sobrepasa lo que la instancia puede dar de si. Trfico de subida mensual: 2 GB. Trfico de bajada mensual: 10 GB. Sistema operativo: Linux (es mas barato porque no hay que pagar licencias). Con estas suposiciones el tipo de contrato que interesa es la instancia reservada, ya que se va a usar el 100% del tiempo. Los totales por cada ao de uso, repartiendo el coste de la reserva entre cada ao de uso, seran: Tipo Instancia reservada por 1 ao Instancia reservada por 3 aos Coste mensual($) 29,28$ Pago por reserva Coste anual($) 227,50$ 578,86$ Coste anual() 428,772

21,96$

350$

380,18$

281.573

- Qu tipo de aplicaciones se obtienen un mayor beneficio gracias a Amazon EC2?


Aquellas que requieren muchos recursos, tienen mucho trfico, altas necesidades de computacin, muchos usuarios y en general todo lo que termine requiriendo la escalabilidad bajo demanda que provee la nube. Las pequeas aplicaciones que apenas consumen recursos o que no son crticas no se benefician de esto, ya que en muchos casos los precios de un hosting compartido o virtual son mucho mas pequeos que los costes de EC2 (ver pregunta anterior).

Pgina 31

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

- Cmo se gestionan las instancias?


Hay muchas maneras. Desde un API para integracin con aplicaciones, desde un panel de control que provee Amazon en la zona de usuarios de su sitio web o incluso desde el propio navegador Firefox mediante una extensin. En todos los casos el usuario puede comprobar el estado de las instancias que estn funcionando y el uso de recursos que se est realizando.

- Qu es una AMI?
AMI es el acrnimo de Amazon Machine Image. Cada AMI es una imagen de una instalacin de un sistema operativo, de manera similar a como se trabaja en virtualizacin. Bsicamente estn compuestas de una serie ficheros de datos que conforman la imagen y luego un XML que especifica ciertos valores necesarios para que sea una imagen vlida para Amazon y que se especifican en un fichero llamado image.manifest.xml. Amazon proporciona varias AMIs listas para ejecutar pero tambin hay una gran variedad de imgenes pblicas creadas por terceros con diferentes configuraciones listas para usar, donde las mas populares son las realizadas totalmente con software libre aunque tambin existen AMIs realizadas con sistemas propietarios.

- Qu es una ECU?
ECU es el acrnimo de Elastic Compute Unit y es el "procesador virtual" de las instancias de EC2. Cada ECU equivale en potencia de computo a un procesador Opteron o Xeon del ao 2007 a 1-1,2 Ghz de frecuencia de reloj.

- Qu es Utility Computing?
Utility Computing se denomina al servicio que provee acceso a recursos de computacin al cliente para que ste haga uso de ellos de igual modo que un cliente de la red elctrica tiene acceso a una lnea elctrica para alimentar aparatos elctricos y poder hacer uso de ellos.

Pgina 32

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Resumen de esfuerzo
En este apartado resumiremos el esfuerzo por parte de los miembros del grupo en la realizacin del trabajo.

Pablo Iigo Blasco


Tarea Primera tutora Segunda tutora Tercera tutora Cuarta tutora Quinta tutora Estructura inicial del documento y formato Bsqueda de referencias y lectura Introduccin y resumen Servicios de Amazon WS Preparacin de transparencias Preparacin de presentacin Redaccin de trabajo FAQ Revisin del trabajo Reunin en grupo de semana santa Reunin con Miguel e Ignacio Reunin con Ignacio Documentacin y presentacin Reunin con Migue Reunin con Ignacio Reunin con Miguel e Ignacio (Presentacin) Revisin de formato de trasparencias y documentacin Tiempo 01:00 01:00 01:00 01:00 01:00 00:30 05:00 01:30 03:22 01:00 03:00 03:00 00:45 03:30 05:00 02:00 01:00 03:00 02:00 01:00 05:00 01:00

Ignacio Trevilla Garca


Tarea Primera tutora Segunda tutora Tercera tutora Cuarta tutora Quinta tutora Presentacin Buscar informacin de Cloud Computing y Amazon EC2 Buscar informacin de los aspectos econmicos de Amazon EC2 Redaccin de trabajo Redaccin de preguntas de examen Tiempo 01:00 01:00 01:00 01:00 01:00 02:14 04:11 03:17 07:18 01:12
Pgina 33

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Tarea FAQ Lectura y Revisin de trabajo Lectura de casos de estudio Reunin de grupo de semana santa Reunin con Pablo Reunin con Miguel y Pablo Reunin con Pablo Bsqueda Informacin AWS Caso de uso y Revisin de documentos Reunin con Pablo y Migue Revisin documentacin y presentacin

Tiempo 03:46 03:17 00:32 05:00 02:00 01:25 01:00 03:00 05:00 04:00 03:15

Miguel ngel Prez Valencia


Tarea Buscar informacin sobre Cloud Computing y Amazon EC2 FAQ Diagramas de conceptos y otros diagramas Lectura de casos de estudio Presentacin Redaccin de trabajo Segunda tutora Tercera tutora Cuarta tutora Reunin de grupo de semana santa Reunin de grupo Quinta tutora Reunin con Pablo Bsqueda informacin para resolver algunas dudas sobre streaming Aadir tablas de precios, diferencias entre tipos de instancias y otras modificaciones del documento. Inicio de traspas para presentacin. Aadir tabla de tipos de instancia y creacin de grfica para ilustrar precios Revisin de las preguntas del FAQ y aadida la nueva zona de disponibilidad en Asia Esquema de arquitectura, bsqueda de datos para resolver dudas y redaccin de la explicacin Finalizacin redaccin arquitectura y reunin de grupo. Revisin diagrama arquitectura, correcciones, clculos del coste, modificacin de presentacin Tiempo 4:48 4:56 4:12 0:46 2:35 9:42 1:00 1:00 1:00 5:00 1:25 00:35 01:25 01:32 1:30

0:50 0:23 1:50 2:00 3:45

Pgina 34

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

Referencias
[1] Web de Amazon
http://aws.amazon.com/ec2/faqs http://aws.amazon.com/ec2-sla http://aws.amazon.com/economics http://aws.amazon.com/ec2/#pricing

[2] Empresas espaolas que prestan servicios basados en Cloud Computing


http://www.aspgems.com http://www.ilionsistemas.com http://www.litebi.com

[3] Ejemplos reales de uso de Amazon EC2


http://aws.amazon.com/solutions/case-studies/vivareal-spanish http://gallir.wordpress.com/2009/12/30/como-montamos-meneame-en-amazon-ec2

[4] Carga del sistema en Unix


http://en.wikipedia.org/wiki/Load_%28computing%29

[5] Crecimiento del Cloud Computing


http://itknowledgeexchange.techtarget.com/cloud-computing/measuring-the-growth-of-cloud-computing

[6] Midiendo eficiencia en la nube


http://www.niallkennedy.com/blog/2009/03/measuring-cloud-efficiency.htm

[7] Grfica de aumento de ofertas de trabajo con las palabras 'cloud' y 'computing' en ellas
http://www.indeed.com/jobtrends?q=cloud+computing

[8] Herramienta web de Amazon Web Services para calculo de costes de los servicios
http://calculator.s3.amazonaws.com/calc5.html

[9] Gua paso a paso para montar una aplicacin con Amazon EC2
http://es.debugmodeon.com/articulo/primeros-pasos-con-amazon-ec2-i

[10] Google Trends: Tendencias de bsquedas sobre cloud computing


http://www.google.es/trends?q=cloud+computing

[11] Aumento del uso de ancho de banda de los servicios ofrecidos por Amazon Web Services LLC respecto al ancho de banda utilizado por el resto de sitios de Amazon
http://aws.typepad.com/aws/2008/05/lots-of-bits.html

[12] Above the clouds: A Berkeley View of Cloud Computing. Informe tcnico elaborado en la universidad de Berckeley sobre Cloud Computing.
http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html

[13] Resultados financieros de Amazon.com


http://finance.yahoo.com/news/Amazoncom-Announces-Fourth-bw-319363362.html?x=0&.v=1 http://www.informationweek.com/cloud-computing/blog/archives/2009/07/amazon_web_serv_2.html http://blog.auctionbytes.com/cgi-bin/blog/blog.pl?/pl/2010/1/1264713943.html https://www.xing.com/net/comercio-electronico/quieres-montar-tu-comercio-aqui-te-ayudaremos93585/amazon-vence-a-la-contraccion-del-consumo-18130706/18130706/#18130706

Pgina 35

Cloud Computing con Amazon EC2 - AWS 09-10

Licencia Creative Commons By-Nc-Sa

[14] Incremento en el uso de los servicios prestados por Amazon Web Services
http://www.informationweek.com/cloud-computing/blog/archives/2009/07/amazon_web_serv_2.html

[15] Grfico comparativo de la distribucin de sitios web por proveedor de servicios en la nube
http://www.jackofallclouds.com/2010/03/state-of-the-cloud-march-2010

[16] Diagramas sobre Cloud Computing


http://www.cloudtweaks.com/cloud-diagrams

[17] Atributos del Cloud Computing


http://www.webwire.com/ViewPressRel.asp?aId=97756

[18] Streaming de vdeo


http://www.netromedia.com/Pricing/Calculators.aspx http://www.planetstream.net/information/bandwidth-calculator.html?source=old-bandwidth http://en.wikipedia.org/wiki/Streaming_media#Streaming_bandwidth_and_storage

[19] Balanceo de carga entre instancias EC2


http://www.shlomoswidler.com/2009/07/elastic-in-elastic-load-balancing-elb.html http://serktools.com/2009/05/20/amazon-elastic-load-balancer-setup http://developer.amazonwebservices.com/connect/message.jspa?messageID=129721

[20] DNS Round Robin


http://en.wikipedia.org/wiki/Round_robin_DNS

[21] Ancho de banda de una instancia de EC2


http://dailyawswtf.com/post/157140960/elastic-load-balancer-and-ec2-instance-bandwidth

Otros
http://www.saasmania.com/faq-sobre-cloud-computing/#Pregunta1-1 http://www.saasmania.com/2009/04/17/amazon-ec2-reserved-en-europa http://en.wikipedia.org/wiki/Cloud_computing http://www.ibm.com/ibm/cloud/smart_business http://communication.howstuffworks.com/cloud-computing2.htmhttp://blogs.zdnet.com/SAAS/?p=552 http://www.keithpij.com/Home/tabid/36/EntryID/27/Default.aspx http://www.cloudtweaks.com/cloud-diagrams

Pgina 36