SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Proyecto sobre el tema de interés

           AWS - 2009/2010

Cloud Computing con Amazon EC2




                    Pablo Iñigo Blasco
                    Ignacio Trevilla García
                    Miguel Ángel Pérez 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 además mantenga la licencia y no use la obra con
            fines comerciales.
            El propósito 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
            crédito por el esfuerzo realizado y que futuras versiones sigan los
            mismos términos.
            Copyright y algunos derechos reservados por:
                •   Pablo Iñigo Blasco
                •   Ignacio Trevilla García
                •   Miguel Ángel Pérez Valencia




                                              Página 1
Cloud Computing con Amazon EC2 - AWS 09-10                         Licencia Creative Commons By-Nc-Sa




                                             Versión
         1.0            Junio 2010           Versión inicial del trabajo
         1.1         Septiembre 2010         Inclusión de los términos de licencia CC By-
                                             Nc-Sa y algunos cambios en el formato




                                               Página 2
Cloud Computing con Amazon EC2 - AWS 09-10                                                                     Licencia Creative Commons By-Nc-Sa



Índice de contenido
Resumen.......................................................................................................................................................... 7
Introducción...................................................................................................................................................... 7
El paradigma Cloud Computing........................................................................................................................ 8
    Cloud Hosting.............................................................................................................................................. 9
    Diagrama de Conceptos del Cloud Computing ......................................................................................... 10
    Interés actual en Cloud Computing............................................................................................................ 10
Descripción de Amazon EC2 ......................................................................................................................... 11
    Aspectos técnicos...................................................................................................................................... 12
        Instancia............................................................................................................................................... 12
        Potencia de cómputo (ECU)................................................................................................................. 12
        Zonas de disponibilidad........................................................................................................................ 12
        Gestión del servicio.............................................................................................................................. 13
        Escalabilidad, elasticidad y distribución de carga.................................................................................13
    Aspectos económicos................................................................................................................................ 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
    Descripción de la empresa y su servicio.................................................................................................... 21
    Definición del problema ............................................................................................................................ 21
    Estudio de demanda.................................................................................................................................. 21
    Propuesta de solución 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
        Planificación de costes de la propuesta con Amazon Web Services....................................................25
Conclusiones.................................................................................................................................................. 27
FAQ................................................................................................................................................................ 29
Resumen de esfuerzo..................................................................................................................................... 34
Referencias..................................................................................................................................................... 36




                                                                            Página 3
Cloud Computing con Amazon EC2 - AWS 09-10                                                             Licencia Creative Commons By-Nc-Sa



Índice de ilustraciones
Ilustración 1: SaaS sobre servicios de Cloud Computing.................................................................................8
Ilustración 2: Evolución del hosting................................................................................................................... 9
Ilustración 3: Diagrama de conceptos del Cloud Computing..........................................................................10
Ilustración 4: Gráfica sobre porcentaje de ofertas de empleo con el termino "cloud computing"....................11
Ilustración 5: Gráfica de Google Trends para el término "cloud computing"...................................................11
Ilustración 6: Precio/hora por tipo de instancia y modo de contratación.........................................................15
Ilustración 7: Gráfica de monitorización de instancias en Cloud Watch..........................................................17
Ilustración 8: Diagrama de conceptos de Cloud Computing con Amazon EC2...............................................19
Ilustración 9: Ancho de banda consumido por AWS respecto del resto de webs de Amazon.........................20
Ilustración 10: Top 500k de sitios en Cloud - Marzo 2010...............................................................................20
Ilustración 11: Gráfica de la demanda según horario del caso de estudio .....................................................22
Ilustración 12: Arquitectura de la solución propuesta para el caso de estudio................................................23




                                                                      Página 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
españolas) ..................................................................................................................................................... 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 aplicación que quiero migrar a Amazon EC2 ¿Cómo puedo medir las horas de uso para saber
cuando podría costar?.................................................................................................................................... 31
- ¿Es rentable para Amazon proveer estos servicios? ...................................................................................31
- ¿Qué se debe tener en cuenta a la hora de realizar una aplicación 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 podría ser el coste de correr una aplicación web corriente en Amazon EC2? ..................................32
- ¿Qué tipo de aplicaciones se obtienen un mayor beneficio gracias a Amazon EC2? .................................32
- ¿Cómo se gestionan las instancias? ........................................................................................................... 33
- ¿Qué es una AMI?........................................................................................................................................ 33
- ¿Qué es una ECU?...................................................................................................................................... 33
- ¿Qué es Utility Computing?.......................................................................................................................... 33




                                                                           Página 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 históricos
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 añadir funcionalidades al vuelo en sus servicios en Internet sin tener que realizar
una inversión y planificación en una nueva infraestructura, entrenar a nuevo personal o cambiar el software
existente en toda la infraestructura.

El presente trabajo pretende abordar la explicación de los conceptos básicos de lo que se conoce como
Cloud Computing, pero sobre todo pretende analizar y detallar como está siendo abordado dicho paradigma
por Amazon centrándose en el servicio conocido como Amazon Elastic Cloud Computing (Amazon EC2).


Introducción
En este apartado se realiza una introducción al contexto de trabajo, la web, la web orientada a servicios, la
situación empresarial y los problemas potenciales de escalabilidad con los que se enfrenta hoy día.

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 aplicación o servicio para que sea capaz de
soportar mayor número de usuarios o picos de demanda mayores. Existen muchos servicios basados en
Cloud públicos en Internet con amplio reconocimiento. Algunos ejemplos de aplicaciones web que se
sustentan en este paradigma son Tweeter, Google Docs o Menéame. Se trata de servicios que están 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 están 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 difícil encontrar definiciones de conceptos totalmente aceptadas.
Además "Cloud computing" son palabras que actualmente están de moda (Buzz Words) ya que actualmente
representan un nicho de mercado muy potente y en crecimiento por lo que cada organización enfoca los
conceptos de este paradigma desde un punto de vista propio según sus intereses.

El presente estudio ofrece una vista general flexible y abierta de los conceptos básicos de Cloud Computing
centrándose 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 comprensión el trabajo se ha dividido en varias secciones. En la primera sección se
realizará una introducción al contexto del trabajo en la situación empresarial actual y a los problemas que se
presentan. En la segunda sección se comentará de que trata el paradigma del Cloud Computing y que
utilidad tiene, en el contexto mencionado en la sección 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 sección se
explicará como se han aplicado los conceptos del paradigma para en el caso de los servicios ofrecidos por
Amazon y más concretamente el servicio Amazon EC2. En la cuarta sección presentaremos un caso de
estudio que permita, de una manera práctica, comprender mejor que es lo que ofrece Amazon EC2 y las
diferencias respecto a una solución no basada en Cloud Computing. En la quinta sección realizaremos un
análisis sobre los resultados comparativos del caso de estudio de la sección anterior dando relevancia sobre
todo al factor coste. En la sexta y última sección se expondrán algunas conclusiones que han obtenido los
miembros del grupo tras la realización de este trabajo.




                                                   Página 6
Cloud Computing con Amazon EC2 - AWS 09-10                                 Licencia Creative Commons By-Nc-Sa


El paradigma Cloud Computing
Se podría definir el término Cloud Computing como el ofrecer un servicio a través de Internet consistente en
prestar acceso a recursos de computación, de modo que el cliente no tiene que preocuparse de la gestión y
mantenimiento de la infraestructura subyacente que se usa para prestar esos servicios, si no sólo de usar
los recursos contratados para realizar sus actividades. Por la parte del proveedor el prestar servicios de esta
manera le permite optimizar su inversión en hardware y mantenimiento, ya que aprovecha el hardware al
máximo al distribuir esos recursos entre todos sus usuarios minimizando el desperdicio. Por la parte del
cliente el no depender de un hardware o infraestructura física concreta le permite centrase en el uso que
hace de ella ahorrándose los costes de mantenimiento, además de que siempre que necesite mas recursos
simplemente deberá contratarlos al proveedor que los pondrá rápidamente a su disposición, con lo que se
permite una gran escalabilidad y una optimización del gasto al tener siempre contratado lo que se necesita y
al pagar sólo 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 aplicación del cliente esté siempre funcionando de manera óptima.
    ● Software as a Service (SaaS): El servicio que se ofrece es una aplicación orientada al usuario final, el
        cual la accede a través de Internet, y cuyo uso es lo que los clientes contratan al proveedor. Este
        tipo ya existía actualmente y se ha estado explotando sin relación con Cloud Computing, pero en
        nuestro caso cuando mencionamos SaaS nos referimos específicamente a aquellas aplicaciones
        que funcionan sobre servicios de alguno de los otros dos tipos (IaaS o PaaS), dejando para otro
        momento una definición más precisa del término. La mayoría de aplicaciones que funcionan sobre
        un Cloud son aplicaciones que entran en este tipo de servicio, convirtiendo al proveedor de la
        aplicación en proveedor de SaaS a la vez que es usuario del proveedor de servicios de Cloud, tal y
        como ilustra la siguiente figura[12]:




                      Ilustración 1: SaaS sobre servicios de Cloud Computing

El Cloud Computing se basa en recursos de computación 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 pública
        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 límites de una

                                                   Página 7
Cloud Computing con Amazon EC2 - AWS 09-10                                Licencia Creative Commons By-Nc-Sa

        organización pero cuya explotación no es comercializada públicamente como en el caso de Public
        Cloud.

Cloud Hosting
Cloud Hosting no es mas que la aplicación 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 evolución,
desde el punto de vista de los proveedores de servicio de hosting, de la tecnología sobre la que realizaban
sus servicios tendiéndose siempre hacia un mejor aprovechamiento de los recursos hardware disponible en
el lado del proveedor y a una mayor economía en el gasto por servicios contratados, pero con mejores
prestaciones, en la parte del cliente. Esto se ilustra en el siguiente gráfico[16]:




                Ilustración 2: Evolución 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 tecnología lo permite y las empresas están 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 detrás
        (hardware, infraestructura, mantenimiento, disponibilidad, ...). Las características del servicio se
        rigen por las necesidades concretas del cliente y por niveles de servicio que por cuestiones
        tecnológicas.
    ● Escalable y elástico: La escalabilidad se refiere a la habilidad de añadir o eliminar recursos del
        servicio y es una característica que tiene que proveer la infraestructura subyacente. Entre tanto la

                                                   Página 8
Cloud Computing con Amazon EC2 - AWS 09-10                                Licencia Creative Commons By-Nc-Sa

       elasticidad está mas relacionada con el modelo económico 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 economías de
       escala y maximizar el uso de esos recursos ya que estarán siendo utilizados a la vez por múltiples
       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 tecnologías de Internet: Los servicios llegan a los clientes a través de tecnologías de Internet
       sobre protocolos como HTTP, REST y otras tecnologías de la web.

Nosotros por nuestra parte añadiríamos un atributo mas para caracterizar la abundancia de los recursos que
necesita el servicio para escalar de manera elástica. Tal es la abundancia y la facilidad para incrementar el
uso de recursos que da la impresión de no tener límite y por ello denominamos al atributo Recursos
virtualmente ilimitados.

Diagrama de Conceptos del Cloud Computing
Para ilustrar los conceptos y facilitar su comprensión se ha preparado un diagrama con los conceptos más
importantes involucrados en el paradigma de Cloud Computing. En el diagrama se representan los
conceptos relacionados entre sí comenzando por la definición principal del Cloud Computing y extendiendo
las relaciones por los conceptos adyacentes.




   Ilustración 3: Diagrama de conceptos del Cloud Computing



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




                                                   Página 9
Cloud Computing con Amazon EC2 - AWS 09-10                               Licencia Creative Commons By-Nc-Sa




        Ilustración 4: Gráfica sobre porcentaje de ofertas de empleo con el termino "cloud
        computing"

También podemos usar google trends para obtener una gráfica que nos muestre la tendencia en cuanto a
las búsquedas sobre estos términos:




     Ilustración 5: Gráfica de Google Trends para el término "cloud computing"

En la cual podemos observar como a partir de finales de 2007 comienza a generarse más búsquedas y
noticias sobre estos dos términos y como en la actualidad parece mantenerse cierta tendencia al alza en el
número de búsquedas, lo que ratifica el interés actual sobre este tema y como las noticias atraen un mayor
interés sobre el.


Descripción de Amazon EC2
La empresa Amazon ofrece desde hace tiempos ciertos servicios a través 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.



                                                 Página 10
Cloud Computing con Amazon EC2 - AWS 09-10                                 Licencia Creative Commons By-Nc-Sa


Aspectos técnicos
Técnicamente no se conocen los detalles internos de como funciona el Cloud de Amazon, pero si se
conocen los detalles técnicos del servicio que ofrece, que son los que importan a los clientes ya que Cloud
Computing, entre otras cosas, trata de la abstracción respecto a los detalles técnicos 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 término instancia como un conjunto de recursos de computación que estarán
disponibles para una imagen en ejecución y es el símil de lo que sería 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 máximos disponibles para esa instancia. Por ejemplo una instancia estándar 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, computación y el espacio de disco que usa la instancia están 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 recibirán 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
pequeñas, afectando esto por tanto al rendimiento de las aplicaciones.

Las instancias de por si no incluyen ningún software, al igual que un pc recién 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 imágenes 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, término que usaremos de ahora en adelante.
Los tipos de sistemas operativos soportados son Windows y Linux (prácticamente cualquier distribución),
pero para usar un sistema operativo en EC2 es necesario incluir en el kernel del sistema extensiones de
virtualización que permitan la ejecución en el Cloud de Amazon.

Potencia de cómputo (ECU)
En las instancias el recurso que modela lo que sería 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 año 2007. Esta definición 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
características se comentarán en el apartado dedicado a los detalles económicos 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 región se las denomina zona de
disponibilidad y cuando se contrata una instancia para una de esas zonas ya no se puede cambiar su
ubicación. Lo habitual es contratar las instancias en la zona de disponibilidad mas próxima 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.


                                                   Página 11
Cloud Computing con Amazon EC2 - AWS 09-10                                Licencia Creative Commons By-Nc-Sa


Gestión del servicio
El control de la contratación de instancias, la gestión 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 extensión de Firefox o desde una aplicación a medida realizada por terceros ya que existe una API en
forma de servicio web REST que permite realizar la gestión 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 teóricamente permitiría
que las aplicaciones funcionando en el Cloud de Amazon pudieran gestionar ellas mismas algunos aspectos
de manera automática.

Escalabilidad, elasticidad y distribución 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 añadir 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 automática mediante un servicio adicional
denominado Amazon Cloud Watch, que se encarga de monitorizar las instancias y que además 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 harán que se creen nuevas instancias o que se detengan
algunas de las existentes, manteniendo así el número de instancias activas a medida de las necesidades de
la aplicación de manera transparente.

También existe un servicio adicional de interés, denominado Amazon Elastic Load Balancer, que permite
la distribución de la carga entre varias instancias para una mayor seguridad y tolerancia a fallos, dado que
también es capaz de detectar instancias que no funcionan correctamente y redirigir el tráfico 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 permitiría a los desarrolladores que la propia aplicación gestionara la escalada de recursos.

Aspectos económicos
Amazon ofrece 3 formas de contratación de instancias, contratación de instancia bajo demanda,
contratación de instancia reservada (por uno o tres años) y contratación de instancia SPOT.

Además, Amazon ofrece distintas características 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 según donde nos encontremos, la latencia sea menor. Además, ofrece distintas
características 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 función del "tamaño" (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, High-
Memory 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 características de las instancias se resumen en la
siguiente tabla:

      Tamaño                         Standard                  High-Memory       High-CPU
                                     RAM: 1,7 GB
      Small                          ECUS: 1
                                     HD: 160 GB
      Medium                         RAM: 7,5 GB                                 RAM: 1,7 GB



                                                   Página 12
Cloud Computing con Amazon EC2 - AWS 09-10                                     Licencia Creative Commons By-Nc-Sa

                                      ECUS: 4                                         ECUS: 5
                                      HD: 850 GB                                      HD: 350 GB
                                      RAM: 15 GB
      Large                           ECUS: 8
                                      HD: 1960 GB
                                                                RAM: 17,1 GB          RAM: 7 GB
      Extra Large                                               ECUS: 6,5             ECUS: 20
                                                                HD: 420 GB            HD: 1960 GB
                                                                RAM: 34,2 GB
      Double Extra Large                                        ECUS: 13
                                                                HD: 850 GB
                                                                RAM: 68,4 GB
      Quadruple Extra Large                                     ECUS: 26
                                                                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 sólo 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 varía en función del tipo de instancia y la forma de contratación. 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 después además 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 día esta opción permite ahorrar dinero.

En las instancias SPOT, el usuario determina cuanto desea pagar por una hora de uso una instancia de
unas determinadas características en una determinada región. En EC2 en un momento dado pueden haber
muchos recursos libres que no estén 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 máximo que está dispuesto a pagar por una hora de uso
de instancia SPOT, su instancia (o instancias) se ejecutarán cuando el precio especificado esté por encima
del precio por hora de las instancias SPOT, precio que varía dinámicamente en función 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 asignación. 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 máximo especificado por el usuario quede por debajo del precio/hora de la instancia SPOT o
que el usuario detenga la ejecución 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 comparación) al inicio de cada hora de
ejecución, no el máximo especificado por el usuario. Además si es Amazon la que termina la instancia
porque el precio ha subido por encima del límite máximo del usuario el tiempo de la hora de ejecución actual
no se factura al cliente como una hora completa.

A fin de facilitar una comparación en la siguiente tabla se muestran los precios por hora de los diferentes
tipos de instancia para las tres modalidades de contratación. 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 varían en función de los recursos y la
demanda. Todos los precios son para la zona situada en Europa (Irlanda) y para instancias con Linux.


                               Precio/hora On-
      Tipo/Tamaño                                       Precio/hora Reserved Precio/hora SPOT
                               Demand
      Standard Small           0,095$                   0,04$                       0,042$
      Standard Large           0,38$                    0,16$                       0,165$
      Standard Extra Large     0,76$                    0,32$                       0,313$


                                                    Página 13
Cloud Computing con Amazon EC2 - AWS 09-10                                 Licencia Creative Commons By-Nc-Sa


      High-Memory Extra
                               0,57$                   0,24$                    0,246$
      Large
      High-Memory Double
                               1,34$                   0,56$                    0,585$
      Extra Large
      High-Memory
                               2,68$                   1,12$                    1,171$
      Quadruple Extra Large
      High-CPU Medium          0,19$                   0,08$                    0,079$
      High-CPU Extra Large     0,76$                   0,32$                    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/Tamaño                      Reserva 1 año                   Reserva 3 años
      Standard Small                   227,50$                         350$
      Standard Large                   910$                            1400$
      Standard Extra Large             1820$                           2800$
      High-Memory Extra Large          1325$                           2000$
      High-Memory Double Extra
                                       3185$                           4900$
      Large
      High-Memory Quadruple Extra
                                       6370$                           9800$
      Large
      High-CPU Medium                  455$                            700$
      High-CPU Extra Large             1820$                           2800$

En la siguiente gráfica mostramos una comparación del precio por hora según el modo de contratación de
instancias y el tipo de instancia.




 Ilustración 6: Precio/hora por tipo de instancia y modo de contratación
Si se necesita que una aplicación web esté activa las 24 horas del día, lo conveniente es contratar
instancias reservadas (reservar la instancia), en las cuales se obtiene un mejor precio/hora al pagar una


                                                  Página 14
Cloud Computing con Amazon EC2 - AWS 09-10                                     Licencia Creative Commons By-Nc-Sa

cantidad fija cada 1 o 3 años. Si tu aplicación va a estar siendo utilizada las 24 horas del día durante al
menos 254 días al año, esta modalidad es mas barata que una instancia bajo demanda. Este servicio
premia a los clientes que hagan una buena planificación del consumo de recursos que van a realizar. Este
ahorro, que puede parecer un poco escaso a primera vista, es muy significativo en máquinas de altas
prestaciones que debamos tener activas 24/7 todos los días del año. Veamos un ejemplo:

    ● Las instancias del tipo High-CPU Extra Large Tienen un coste de 0.76 $/hora (para Unix/Linux) en la
        antigua fórmula de contratación. Con estos datos el coste anual de esta máquina si nunca la
        detuviéramos sería de: 0.76 $/h * 24 h/día * 365 días/año = 6,657 $/año (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 máquina sería el siguiente: 0.32 $/h * 24h/día * 365
        días/año + 1,820 $/año = 4,623 $/año (3,423 euros aprox.)

Cabe destacar que en las instancias bajo demanda la hora cada vez está más barata (en el mismo ejemplo
anterior, la máquina Linux costaba 0.80$ en Marzo de 2.009) mientras que el precio de las instancias
reservadas el precio por hora es más 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 aplicación en una
instancia reservada, activarla y controlar a través de la propia aplicación 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 réplica 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 más
adecuada de utilizar los servicios que nos ofrece Amazon

Uno de los puntos a destacar es que además de pagar por estos servicios, se debe pagar también por el
tráfico 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 aplicación. Por ejemplo, el coste actual del tráfico de salida, si se tiene un tráfico
de entre 10 y 40GB es de 0.11$ cada GB

Destacar también que Amazon suele ofrecer ofertas por sus servicios, por lo que es conveniente estar
pendiente de las ofertas vigentes. Por ejemplo, hoy en día 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 región

Tipos de servicios adicionales
Amazon ofrece además 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 diseño 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 estándar de una unidad EC2. Se trata de un servicio de almacenamiento de
alta disponibilidad, fiabilidad típicamente en aplicaciones que necesitan una base de datos o un sistema de

                                                     Página 15
Cloud Computing con Amazon EC2 - AWS 09-10                                 Licencia Creative Commons By-Nc-Sa

archivos estable.

EBS permite creación de volúmenes de almacenamiento desde 1GB hasta 1TB pudiéndose asociar
múltiples volúmenes a una ECU. Se pueden formatear particiones con distintos sistemas de
almacenamiento. Los volúmenes se crean en una zona de disponibilidad determinada y la información del
volumen es automáticamente replicada dentro de la misma zona para evitar perdidas en caso de fallo de un
componente hardware. Además se pueden crear copias de seguridad a través del servicio S3. El sistema de
pago es tanto por volumen de almacenamiento como por número 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 automático del
número de instancias en uso según un conjunto de reglas definidas. Con este sistema se puede asegurar la
capacidad de respuesta en picos de demanda además de una mayor tolerancia a fallos si se utiliza junto
con el Elastic Load Balancing.




   Ilustración 7: Gráfica de monitorización de instancias en Cloud Watch

Cloud Watch es un servicio de monitorización de recursos Amazon EC2. Permite visualizar el estado de uso
de recursos, el rendimiento operacional y los patrones de demanda existentes. Métricas interesantes que
incluye son: uso de CPU, lecturas y escrituras en disco, tráfico en la red. Se integra con los servicios de
Auto Scaling y Elastic Load Balancing, permitiendo también monitorizar el funcionamiento de estos
servicios. La forma de pago es por el número 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
tráfico entre múltiples instancias EC2. El balanceo permite tener una alta capacidad de tolerancia a errores
en las aplicaciones independientemente de la capacidad de carga de la aplicación o de que alguna
instancia caiga en un fallo crítico. El balanceador puede detectar "el estado de salud" (EC2 instance health)
y deja de enrutar tráfico hacia ella. Se trata de una herramienta fácil de gestionar a través de línea de
comandos.


                                                  Página 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 compañía 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 según las necesidades de la compañía.
La forma de pago es por número de conexiones-VPN a la hora y por la tasa de transferencia utilizada. Es
útil cuando se desea aumentar la disponibilidad de algún servicio crítico en la empresa. Un ejemplo de uso
típico puede ser cuando se desea mover, poco a poco una aplicación 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 básico accesible desde Internet que sirve como herramienta
para diseñar sitios web con almacenamiento mas escalable, fiable, rápido, barato y sencillo. Ofrece un
conjunto de funcionalidades básicas 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 tamaños desde 1 byte a 5 Gigabytes. Los datos son almacenados en una región geográfica llamada
bucket que deben ser elegidos para definir la latencia óptima del sistema. Hay tres bucket US-Standard, US-
Western y EU. Los datos nunca almacenan su bucket, aunque pueden ser copiados a otros buckets.
También dispone de servicios de autenticación 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
tamaños se paga una tasa menor por Gb. También se paga por uso de la red. Para contratos pequeños 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 creación automática de backups. Se
puede acceder a los servicios a través de cualquier herramienta diseñada 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 configuración específica 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 aplicación en Internet,
independientemente de la red en la que se encuentre o la tecnología con la que esté siendo desarrollado.
Se trata de una pieza clave en la integración 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 según las necesidades de
disponibilidad

A nivel de desarrollo se pueden crear un número limitado de colas con un número ilimitado de mensajes de
8KB como máximo. Los mensajes son almacenados hasta 4 días. El acceso a estos servicios se realiza
mediante una interfaz de operaciones a través 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

                                                  Página 17
Cloud Computing con Amazon EC2 - AWS 09-10                              Licencia Creative Commons By-Nc-Sa

económicos. El acceso a esta base de datos se realiza mediante el protocolo HTTP y sus comandos
básicos. La forma de pago es por tasa de transferencia utilizada y almacenamiento. Al igual que la mayoría
de servicios de AWS se requiere la elección de una región de trabajo acorde a las necesidades de
disponibilidad.

Diagrama de conceptos del Cloud Computing con Amazon
   EC2
Tras la presentación 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:




   Ilustración 8: Diagrama de conceptos de Cloud Computing con Amazon EC2


Crecimiento y futuro de EC2
Desde el lanzamiento de EC2 el interés por los servicios prestados por Amazon Web Services LLC no ha
hecho mas que incrementar. Muestra de ello es la siguiente gráfica publicada en el blog oficial de Amazon
Web Services en la cual podemos notar el incremento en el tráfico generado por las aplicaciones que usan
el Cloud Computing de Amazon desde que se lanzó el servicio en 2006 hasta finales de 2007[11]:




                                                 Página 18
Cloud Computing con Amazon EC2 - AWS 09-10                            Licencia Creative Commons By-Nc-Sa




          Ilustración 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 podría estar creciendo a un ritmo de un 10%
mensual, pero no hay datos concretos actualizados publicados por Amazon.com como la anterior gráfica. 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 líder del sector, lo cual se refleja en la siguiente gráfica[15]:




      Ilustración 10: Top 500k de sitios en Cloud - Marzo 2010

                                                Página 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 básico de aplicación de los servicios ofrecidos por
AWS sobre cloud computing. Primero detallaremos los requerimientos y características de un servicio de
películas online que permite a sus usuarios ver películas a cualquier hora del día, para seguidamente aplicar
los servicios de AWS (EC2 y otros) para describir una posible solución al problema que ilustre y clarifique la
función de cada servicio de AWS y la posible arquitectura final de un despliegue en la nube.
El caso de estudio y la posible implementación aquí presentados han sido creados con la idea de ilustrar de
manera mas práctica los conceptos y servicios descritos, sin pretensión de optar a la categoría de solución
real a un problema real.

Descripción de la empresa y su servicio
La empresa es un videoclub que se dedica a despachar películas por streaming y el beneficio principal de la
empresa esta basado en dos aspectos, la publicidad en su web e incrustada en los vídeos 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 básico que provee de una base de datos mysql y un
        servidor apache PHP.
    ● El hosting para el streaming consiste en un número de servidores estático y un balanceador DNS.
        Cada servidor almacena todas las películas en un disco duro local para evitar el consumo del ancho
        de banda producido por un disco duro común o SAAN.
    ● La infraestructura software responsable de suministrar el servicio de streaming de queda servidor es
        un Apache con un módulo de streaming que se encarga de utilizar un archivo en algún dispositivo
        de almacenamiento y suministrarlo en forma de streaming al cliente concreto.

Definición del problema
La empresa ha estado durante varios años en un hosting y ha adquirido fama y ha tenido éxito. El negocio
ha sido rentable mientras ha habido un número de usuarios pequeño. 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 decisión de la empresa es estudiar un sistema de hosting más 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 análisis 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 solución, 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 solución 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 películas: 50%
    ● Alta demanda:
        ○ Tarde: 5:00 pm – 1:00 am
        ○ Nº de Usuarios medio: 3500 usuarios
        ○ Diversidad de películas: 80%

                                                  Página 20
Cloud Computing con Amazon EC2 - AWS 09-10                                Licencia Creative Commons By-Nc-Sa




      Ilustración 11: Gráfica de la demanda según horario del caso de estudio

Los datos de consumo también ha sido estudiados:
    ● El porcentaje medio de duración de una película es de 120 minutos.
    ● La reproducción de una película con calidad media tiene un coste de 548 Kbps (buena calidad), por lo
        que cada segundo de visualización de una película consume este ancho de banda
        (aproximadamente ya que hay ineficiencias en los protocolos de transporte que no se tienen en
        cuenta).
    ● El tamaño de datos medio a transmitir por película (película completa) es de 470,35 MBytes.
    ● Actualmente hay unas 1000 películas en catálogo.

Propuesta de solución con Amazon WebServices

Requisitos
    ● No tener que cambiar la aplicación 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 películas y será accesible entre
las distintas instancias de Amazon EC2. Otra posible opción de sistema de almacenamiento elástico es
Amazon S3. Sin embargo esta opción se ha descartado ya que su uso de este servicio es a través de
servicios web por lo que es contrario a la opción 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 diseño e implementación de la aplicación web simplemente cambiando la
cadena de conexión a la base de datos. Dado que se pretende que el mantenimiento




                                                  Página 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
condición, si se detecta que se cumple la condición, 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 número de usuarios, como ocurre a partir de las 17:00. De la misma manera, se agrega una
condición para ir apagando instancias, para que no sea necesario pagar por instancias que no se están
utilizando.

Con Amazon Load Balancer ocurre algo similar, se le puede establecer una condición a partir de la cual se
realiza una nueva distribución de carga entre las instancias que pueden recibir tráfico. Ambos servicios se
pueden utilizar conjuntamente sin ningún tipo de problemas.

Amazon EC2
Instancias que se van a contratar. Este servicio permitirá alojar tanto servidores web como servidores de
streaming. Además, se podrán dar de baja y alta instancias según las necesidades del sistema. Se
contratarán diferentes tipos de instancias según el tipo del servidor, consiguiendo así una mejor adaptación
al tipo de problemas que puede suponer tener dos tipos de servidores distintos.

Arquitectura
La arquitectura de la implementación con servicios de AWS es la mostrada en el siguiente diagrama:




Ilustración 12: Arquitectura de la solución 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 además
capaz de escalar en función 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 usáramos algún tipo de software para el balanceado de carga
nos encontraríamos con que el cuello de botella sería el ancho de banda de la instancia del balanceador
que está en torno a los 35Mbps [21], aunque este es un dato es empírico y varía según el tipo de instancia,


                                                  Página 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 distribuirán las peticiones entre todos los servidores existentes los cuales ante
un pico de peticiones comenzarán 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 tráfico la soportarán 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 películas, cacheandolas en memoria y sirviéndolas a los clientes, de modo que sucesivas
peticiones sobre al misma película serán servidas mucho mas rápidamente, siendo el mejor
aprovechamiento cuando la variabilidad entre películas es la mínima (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 función el streaming de vídeo a los usuarios cacheando las
películas para acelerar el proceso. El ancho de banda de cada instancia está limitado por lo que las
películas 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 pequeñas 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 películas necesitamos una instancia con
mucha memoria para el cacheo, que en base al número de conexiones superior anteriormente comentado
sería 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 número de conexiones.

Para los servidores de streaming necesitaremos siempre tener como mínimo 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 día así que se reservaran durante un período de tres años 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) más otras 10 por si hay picos de
demanda superiores a 3500 usuarios, lo cual permitiría 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 tráfico de salida de las instancias que se relaciona con el número de clientes al que está
sirviendo, de manera que si una instancia está sirviendo al 85% del máximo de clientes se arrancará una
instancia, también 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 versión del servicio pero con un diseño 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 sólo 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 número máximo de usuarios. Supongamos que cada servidor web es capaz de
aguantar 800 peticiones por segundo, de modo que en período de baja demanda podríamos funcionar con
un sólo servidor pero en períodos de alta demanda necesitaríamos 5 servidores. El primero sería una
instancia reservada por tres años y los otros 4 serían instancias bajo demanda que serían arrancadas
cuando el primer servidor sobrepasara las 700 peticiones por segundo.

Todas las instancias comparten un volumen EBS donde se encuentran las películas a servir a los clientes y
las instancias de los servidores web comparten el acceso a una base de datos RDB que contiene

                                                   Página 23
Cloud Computing con Amazon EC2 - AWS 09-10                              Licencia Creative Commons By-Nc-Sa

información sobre películas, usuarios y sesiones activas, de modo que los usuarios autenticados serán los
que tendrán acceso a las películas, permitiendo además controlar las películas que accede cada usuario
entre otras posibles características del servicio.

Para el servicio RDB se ha seleccionado la opción Large Db Instance que tiene las siguientes
características: 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 películas y los archivos
comunes de la aplicación.

Planificación 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 período de 30 días.

    ● Instancias: El número 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 día 30 días 1 instancia)
                 □ Precio por hora: 0,16$
                 □ Coste de reserva: 1400$ 3 años
                 □ Coste horas: 115,2$
            ■ On-Demand: 4
                 □ Horas de uso: 960 (8h al día 30 días 4 instancias)
                 □ Precio por hora: 0,38$
                 □ Coste horas: 364,8$
        ○ High-Memory Double Extra Large
            ■ Reservadas: 10
                 □ Horas de uso: 7200 (24h al día 30 días 10 instancias)
                 □ Precio por hora: 0,56$
                 □ Coste de reserva: 49000$ 3 años (4900$ por instancia)
                 □ Coste horas: 4032$
            ■ On-Demand: 40 (Hay otras 10, pero no se usan realmente, están por si hay subidas
                 repentinas en la demanda, pero no es lo esperado)
                 □ Horas de uso: 9600 (8h al día 30 días 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 número 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 número de usuarios multiplicado por el bitrate
                 (kbps) medio de las películas y por el número de segundos que hay en 30 días. El resultado
                 hay que convertirlo de Kbps a MB.
                 □ En baja demanda:
                     ► Usuarios: 700
                     ► Tiempo: 12 horas al día, 30 días 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 día, 30 días al mes.

                                                 Página 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 día 30 días)
                   ► 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 millón de IO: 0,11$
                   ► Coste: 8997,54$
               □ ELB: Se usarán dos balanceadores de carga, uno para la web y otro para el servicio de
                   streaming.
                   ► Balanceadores: 2
                   ► Horas: 1440 (24h al día, 30 días, 2 balanceadores)
                   ► Precio hora: 0,028$
                   ► Tráfico: 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 películas
                   existentes en el catálogo mas otras nuevas que se vayan sumando. Para calcular el
                   precio además se necesita una estimación del número 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 (millón): 0,11$
                             ▫ Coste: 8873,92$
                   ► Cloud Watch:
                        ▪ Horas de monitorización: 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:

                                                Página 25
Cloud Computing con Amazon EC2 - AWS 09-10                               Licencia Creative Commons By-Nc-Sa




      Concepto                                        Coste
      Uso de instancias reservadas                    4147,2$
      Uso de instancias bajo demanda                  13228,8$
      Consumo de ancho de banda                       20077,57$
      RDS                                             8997,54$
      Elastic Load Balancer                           2046,82$
      Elastic Block Storage                           8873,92$
      Cloud Watch                                     277,2$

Total de coste mensual: 57647,12$ (47219,54€)
Coste anual: 691765,44 (566504,04€)

A lo anterior hay que añadir el coste cada tres años de las instancias reservadas que asciende a 50400$.


Conclusiones
Cloud Computing no es sólo un Buzz Word y aunque ahora esté de moda muchas empresas están basando
parte de su negocio en servicios como Amazon EC2, por lo que en un futuro, una vez haya pasado su
máximo de popularidad, habrá un nicho de negocio importante. Aunque, como suele pasar en estos casos,
aún hay cierta falta de consenso a la hora de definir que es exactamente Cloud Computing, con lo que nos
podemos encontrar que según a quién le preguntemos obtendremos definiciones con diferencias
importantes. En nuestro trabajo hemos utilizado aquellas definiciones que parecían mas comunes a nuestro
juicio.

También 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 aplicación realizada sobre servidores privados, lo cual implica que es
necesario aprender como funciona EC2 y como sacarle partido a los servicios antes de realizar ningún
cambio.

En el aspecto económico EC2 es un servicio cuya viabilidad hay que estudiar antes de lanzarse ya que hay
que tener en cuenta el diferente modelo de facturación, hacer planes fiables sobre la cantidad de recursos a
necesitar, adaptar la aplicación para sacar provecho a EC2 y finalmente dimensionar el uso a lo que se
necesite. Para un sitio pequeño o una aplicación que no genera un gran tráfico o en la cual no importa que
durante los picos de actividad algunos usuarios queden sin atender satisfactoriamente Amazon EC2 puede
no ser una opción viable, ya que un hosting tradicional económico podría servir perfectamente a los
propósitos y a un precio muy inferior.

Hay un aspecto negativo, común 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 solución 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 conexión a Internet, que a su vez dependen de uno o más proveedores distintos, la
empresa sufriría grandes pérdidas. Esta claro que para asumir estos riesgos las empresas acuerdan niveles
de servicio mínimos con los proveedores (SLAs), pero en el caso de Amazon EC2 el acuerdo que hay
disponible en la web no nos parece suficiente indemnización para un servicio del cual puede depender el
futuro de una empresa.

En esta línea también 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 evitarán 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

                                                 Página 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 difícil cambiar a otro proveedor o una vuelta a una
solución 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 práctica no es totalmente cierto. EC2 por ejemplo permite un incremento en la
contratación máximo de 20 instancias por zona de disponibilidad y por día. 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 podría llegarse al momento en el que el proveedor
tuviera que poner límites mas estrictos a la adquisición de nuevos recursos para mantener los niveles de
servicio.




                                                 Página 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 informática que no tenían
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. Después, 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 computación a través de Internet usando recursos compartidos de muchos ordenadores en
lugar de usar los recursos hardware y software de una máquina 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
        automáticamente.
    ● Simplicidad: El cliente se ve liberado de tareas de gestión 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 gestión de la infraestructura. Además permite
        pagar sólo por los recursos consumidos por las aplicaciones. Uno de los puntos en los que más 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 producción para utilizar los recursos que éstos estaban
        utilizando.
    ● Ubicuidad: Acceso a los recursos desde cualquier punto con conexión a Internet

- ¿Todo son ventajas?
No. También tiene sus desventajas, como todo en la vida. Las principales desventajas son:
    ● Sensación de Inseguridad: La empresa sitúa activos importantes para su actividad (datos, lógica de
        negocio) en la nube, sobre la cual no tiene ningún control por pertenecer a un tercero, por lo cual no
        puede controlar totalmente las políticas de seguridad en los servicios y debe confiar absolutamente
        en el proveedor de servicios.
    ● Integración: No suele ser fácil integrar los sistemas que funcionan en la nube con sistemas que ya
        estuvieran en funcionamiento en la organización.
    ● Fallos: Existen dos puntos de fallo externos a la infraestructura de la organización, uno es el
        proveedor de conexión 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 quedarían en
        una muy mala situación, de igual manera si un proveedor de Internet o parte de la red cae se estaría
        en la misma situación.
    ● 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 inversión 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 cálculo o permitirles responder a picos espontáneos de
tráfico con las garantías de fiabilidad y disponibilidad necesarias.


                                                  Página 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
    ● Españolas
        ○ 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 inversión en recursos para controlarlas.
   ● Aplicaciones que para su despliegue requieren una infraestructura en los que la organización no
        quiere o no puede invertir.
   ● Aplicaciones que tengan que ser accesible desde múltiples localizaciones geográficas distantes entre
        sí.
   ● Aplicaciones críticas que requieran una fiabilidad y una disponibilidad para las cuales la organización
        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 utilización de sistemas operativos virtualizados, que se suben en forma de imágenes de
instalación 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 división específica
de la compañía 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 organización 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 número de instancias asignadas pueden incrementarse automáticamente cuando
        ocurre un pico de uso o bajo petición de la propia aplicación. Este servicio es totalmente
        configurable por el usuario.
    ● Elastic Load Balancing: Balanceo de la carga automático entre las instancias disponibles.
    ● CloudWath: Monitorización 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 aplicación 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 españolas)

                                                  Página 29
Cloud Computing con Amazon EC2 - AWS 09-10                                Licencia Creative Commons By-Nc-Sa

    ● Menéame: Sitio web español 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 gestión inmobiliaria sobre Amazon EC2.
    ● Monografías: 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 varían en
       función del tipo de instancia y de otras opciones de contratación.
    ● En los demás 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 aplicación que quiero migrar a Amazon EC2 ¿Cómo puedo
medir las horas de uso para saber cuando podría costar?
La hora de uso corresponde con el tiempo que una instancia está activada, es decir "encendida". De modo
que si la aplicación actualmente funciona sobre servidores que están encendidos las 24 horas se podría
extrapolar ese número de horas para calcular el coste mensual aproximado. Hay que tener en cuenta que al
tener libertad para añadir y quitar instancias bajo demanda se debería estudiar cuales instancias deberían
estar activas en un momento dado, con lo cual se podría ahorrar en costes.

- ¿Es rentable para Amazon proveer estos servicios?
Los datos económicos 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 además 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 compañía 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 aplicación si se
quiere alojar en los servicios de Cloud Computing que ofrece Amazon?
Si la aplicación 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 aplicación 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
dinámico, estando configurado el servicio para crear instancias extras durante los picos de actividad, pero
también tener una instancia para los contenidos estáticos que no esté configurada para escalar ya que
servir contenido estático provoca una carga muy inferior a servir contenido dinámico.



                                                  Página 30
Cloud Computing con Amazon EC2 - AWS 09-10                                 Licencia Creative Commons By-Nc-Sa

También hay que tener en cuenta que si se tienen diferentes instancias de la misma aplicación corriendo a
la vez en diferentes máquinas de la nube hay que preparar la aplicación 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, además Amazon proporciona un monitor que decide, en base a una
configuración 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 próximo mes de facturación en caso de que la región 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 año de servicio, lo cual significa que no se pueda acceder a la
zona donde se tiene la instancia durante 5 minutos en los 365 días posteriores al contrato/renovación 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 podría ser el coste de correr una aplicación web corriente en
Amazon EC2?
Usando la herramienta de cálculo que provee Amazon Web Services[8] podemos poner un ejemplo de
cálculo de costes sobre los siguientes supuestos:

    ● Instancias: 1 instancia pequeña en la región 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 tráfico nunca sobrepasa lo que la
        instancia puede dar de si.
    ● Tráfico de subida mensual: 2 GB.
    ● Tráfico 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 año de uso, repartiendo el coste de la reserva entre cada año de uso,
serían:

                          Coste
      Tipo                                   Pago por reserva Coste anual($)         Coste anual(€)
                          mensual($)
      Instancia
      reservada por 1     29,28$             227,50$             578,86$             428,772€
      año
      Instancia
      reservada por 3     21,96$             350$                380,18$             281.573€
      años



- ¿Qué tipo de aplicaciones se obtienen un mayor beneficio gracias a
Amazon EC2?
Aquellas que requieren muchos recursos, tienen mucho tráfico, altas necesidades de computación, muchos
usuarios y en general todo lo que termine requiriendo la escalabilidad bajo demanda que provee la nube.
Las pequeñas aplicaciones que apenas consumen recursos o que no son críticas no se benefician de esto,
ya que en muchos casos los precios de un hosting compartido o virtual son mucho mas pequeños que los
costes de EC2 (ver pregunta anterior).



                                                  Página 31
Cloud Computing con Amazon EC2 - AWS 09-10                              Licencia Creative Commons By-Nc-Sa


- ¿Cómo se gestionan las instancias?
Hay muchas maneras. Desde un API para integración 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 extensión.
En todos los casos el usuario puede comprobar el estado de las instancias que están funcionando y el uso
de recursos que se está realizando.

- ¿Qué es una AMI?
AMI es el acrónimo de Amazon Machine Image. Cada AMI es una imagen de una instalación de un sistema
operativo, de manera similar a como se trabaja en virtualización. Básicamente están 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 válida para Amazon y que se especifican en un fichero llamado
image.manifest.xml.
Amazon proporciona varias AMIs listas para ejecutar pero también hay una gran variedad de imágenes
públicas creadas por terceros con diferentes configuraciones listas para usar, donde las mas populares son
las realizadas totalmente con software libre aunque también existen AMIs realizadas con sistemas
propietarios.

- ¿Qué es una ECU?
ECU es el acrónimo 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 año 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 computación al cliente para que
éste haga uso de ellos de igual modo que un cliente de la red eléctrica tiene acceso a una línea eléctrica
para alimentar aparatos eléctricos y poder hacer uso de ellos.




                                                 Página 32
Computación en la Nube con Amazon EC2
Computación en la Nube con Amazon EC2
Computación en la Nube con Amazon EC2
Computación en la Nube con Amazon EC2

Más contenido relacionado

La actualidad más candente

1 la arquitectura cloud computing
1   la arquitectura cloud computing1   la arquitectura cloud computing
1 la arquitectura cloud computingOmega Peripherals
 
Cloud computing
Cloud computingCloud computing
Cloud computingTensor
 
Acens Cloud Hosting 2013
Acens Cloud Hosting 2013Acens Cloud Hosting 2013
Acens Cloud Hosting 2013Red Auti
 
WhyFLOSS - Como evitar caer cautivo de las Nubes Propietarias
WhyFLOSS - Como evitar caer cautivo de las Nubes PropietariasWhyFLOSS - Como evitar caer cautivo de las Nubes Propietarias
WhyFLOSS - Como evitar caer cautivo de las Nubes PropietariasAbiquo, Inc.
 
Cloud arquitectura
Cloud arquitecturaCloud arquitectura
Cloud arquitecturawil villa
 
Cloud computing - eDays 2014
Cloud computing - eDays 2014Cloud computing - eDays 2014
Cloud computing - eDays 2014Luis Toscano
 
Desarrollo de una infraestructura de Cloud Computing. Ahora las empresas cons...
Desarrollo de una infraestructura de Cloud Computing. Ahora las empresas cons...Desarrollo de una infraestructura de Cloud Computing. Ahora las empresas cons...
Desarrollo de una infraestructura de Cloud Computing. Ahora las empresas cons...Mundo Contact
 
Generalidades de la Computacion en la nube
Generalidades de la Computacion en la nubeGeneralidades de la Computacion en la nube
Generalidades de la Computacion en la nubeprofecesde
 
1.1 Conceptos básicos del Cloud.
1.1 Conceptos básicos del Cloud.1.1 Conceptos básicos del Cloud.
1.1 Conceptos básicos del Cloud.Brox Technology
 
Cloud computing[11]
Cloud computing[11]Cloud computing[11]
Cloud computing[11]heidymarquez
 
Cloud Hosting: la nueva generación del hosting
Cloud Hosting: la nueva generación del hostingCloud Hosting: la nueva generación del hosting
Cloud Hosting: la nueva generación del hostingArsys
 
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Mario Jose Villamizar Cano
 
Computacion en la nube y web 2.O
Computacion en la nube y web 2.OComputacion en la nube y web 2.O
Computacion en la nube y web 2.OCESDE S.A
 
Web 2 y computacion en la nube
Web 2 y computacion en la nube Web 2 y computacion en la nube
Web 2 y computacion en la nube loreand97
 
Computación en la nube cristian ortegas
Computación en la nube cristian ortegasComputación en la nube cristian ortegas
Computación en la nube cristian ortegascristiano_mj_93
 

La actualidad más candente (19)

Cloud computing es co blue
Cloud computing es co blueCloud computing es co blue
Cloud computing es co blue
 
1 la arquitectura cloud computing
1   la arquitectura cloud computing1   la arquitectura cloud computing
1 la arquitectura cloud computing
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Acens Cloud Hosting 2013
Acens Cloud Hosting 2013Acens Cloud Hosting 2013
Acens Cloud Hosting 2013
 
WhyFLOSS - Como evitar caer cautivo de las Nubes Propietarias
WhyFLOSS - Como evitar caer cautivo de las Nubes PropietariasWhyFLOSS - Como evitar caer cautivo de las Nubes Propietarias
WhyFLOSS - Como evitar caer cautivo de las Nubes Propietarias
 
Cloud arquitectura
Cloud arquitecturaCloud arquitectura
Cloud arquitectura
 
Cloud
CloudCloud
Cloud
 
Cloud computing - eDays 2014
Cloud computing - eDays 2014Cloud computing - eDays 2014
Cloud computing - eDays 2014
 
Desarrollo de una infraestructura de Cloud Computing. Ahora las empresas cons...
Desarrollo de una infraestructura de Cloud Computing. Ahora las empresas cons...Desarrollo de una infraestructura de Cloud Computing. Ahora las empresas cons...
Desarrollo de una infraestructura de Cloud Computing. Ahora las empresas cons...
 
Generalidades de la Computacion en la nube
Generalidades de la Computacion en la nubeGeneralidades de la Computacion en la nube
Generalidades de la Computacion en la nube
 
1.1 Conceptos básicos del Cloud.
1.1 Conceptos básicos del Cloud.1.1 Conceptos básicos del Cloud.
1.1 Conceptos básicos del Cloud.
 
Cloud computing[11]
Cloud computing[11]Cloud computing[11]
Cloud computing[11]
 
Cloud Hosting: la nueva generación del hosting
Cloud Hosting: la nueva generación del hostingCloud Hosting: la nueva generación del hosting
Cloud Hosting: la nueva generación del hosting
 
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
 
CLOUD COMPUTING HOY: Todo como Servicio.
CLOUD COMPUTING HOY: Todo como Servicio.CLOUD COMPUTING HOY: Todo como Servicio.
CLOUD COMPUTING HOY: Todo como Servicio.
 
Computacion en la nube y web 2.O
Computacion en la nube y web 2.OComputacion en la nube y web 2.O
Computacion en la nube y web 2.O
 
Web 2 y computacion en la nube
Web 2 y computacion en la nube Web 2 y computacion en la nube
Web 2 y computacion en la nube
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Computación en la nube cristian ortegas
Computación en la nube cristian ortegasComputación en la nube cristian ortegas
Computación en la nube cristian ortegas
 

Destacado (9)

Amazon
AmazonAmazon
Amazon
 
Caso amazon
Caso amazonCaso amazon
Caso amazon
 
Caso amazon
Caso amazonCaso amazon
Caso amazon
 
Caso de Estudio Amazon
Caso de Estudio AmazonCaso de Estudio Amazon
Caso de Estudio Amazon
 
Caso Walmart
Caso WalmartCaso Walmart
Caso Walmart
 
Casos de exito wallmart
Casos de exito wallmartCasos de exito wallmart
Casos de exito wallmart
 
Amazon ppt
Amazon pptAmazon ppt
Amazon ppt
 
Amazon - Brand Management
Amazon - Brand ManagementAmazon - Brand Management
Amazon - Brand Management
 
Amazon
AmazonAmazon
Amazon
 

Similar a Computación en la Nube con Amazon EC2

Proyecto Cloud Computing_OpenStack
Proyecto Cloud Computing_OpenStackProyecto Cloud Computing_OpenStack
Proyecto Cloud Computing_OpenStackJordi Rodriguez
 
Almacenamiento en Windows Azure - Parte 2
Almacenamiento en Windows Azure - Parte 2Almacenamiento en Windows Azure - Parte 2
Almacenamiento en Windows Azure - Parte 2Jhoan Gonzales
 
Súbete a la nube de Microsoft (2/4) - Almacenamiento en Windows Azure
Súbete a la nube de Microsoft (2/4) - Almacenamiento en Windows AzureSúbete a la nube de Microsoft (2/4) - Almacenamiento en Windows Azure
Súbete a la nube de Microsoft (2/4) - Almacenamiento en Windows AzureEnrique Ramos Ortiz
 
Introduccion a Windows Azure - Parte 1
Introduccion a Windows Azure - Parte 1 Introduccion a Windows Azure - Parte 1
Introduccion a Windows Azure - Parte 1 Jhoan Gonzales
 
Súbete a la nube de Microsoft (1/4) - Introducción a Windows Azure
Súbete a la nube de Microsoft (1/4) - Introducción a Windows AzureSúbete a la nube de Microsoft (1/4) - Introducción a Windows Azure
Súbete a la nube de Microsoft (1/4) - Introducción a Windows AzureEnrique Ramos Ortiz
 
Santiago Trujillo Piter Marcelino.pdf
Santiago Trujillo Piter Marcelino.pdfSantiago Trujillo Piter Marcelino.pdf
Santiago Trujillo Piter Marcelino.pdfronald flores
 
Migrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows AzureMigrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows AzureOSSE
 
Webinar: introduction to cloud computing
Webinar:  introduction to cloud computingWebinar:  introduction to cloud computing
Webinar: introduction to cloud computingAmazon Web Services
 
[CSA] Recomendaciones de Seguridad en Cloud Computing para Empresas
[CSA] Recomendaciones de Seguridad en Cloud Computing para Empresas[CSA] Recomendaciones de Seguridad en Cloud Computing para Empresas
[CSA] Recomendaciones de Seguridad en Cloud Computing para Empresascloudsa_arg
 
Optimización de costos en migraciones a la nube AWS
Optimización de costos en migraciones a la nube AWSOptimización de costos en migraciones a la nube AWS
Optimización de costos en migraciones a la nube AWSAmazon Web Services LATAM
 
[CSA] Recomendaciones de Seguridad en Cloud Computing para Usuarios
[CSA] Recomendaciones de Seguridad en Cloud Computing para Usuarios[CSA] Recomendaciones de Seguridad en Cloud Computing para Usuarios
[CSA] Recomendaciones de Seguridad en Cloud Computing para Usuarioscloudsa_arg
 
PFC - Migración de un entorno web a Cloud Computing Amazon EC2 6
PFC - Migración de un entorno web a Cloud Computing Amazon EC2 6PFC - Migración de un entorno web a Cloud Computing Amazon EC2 6
PFC - Migración de un entorno web a Cloud Computing Amazon EC2 6David Fernandez
 
Cloud computing
Cloud computingCloud computing
Cloud computingcarcass316
 
Provisionamiento de un RAC de 2 nodos en la nube de Oracle.
Provisionamiento de un RAC de 2 nodos en la nube de Oracle.Provisionamiento de un RAC de 2 nodos en la nube de Oracle.
Provisionamiento de un RAC de 2 nodos en la nube de Oracle.Lorenzo Jose Mota Garcia
 
Abiquo.pdf
Abiquo.pdfAbiquo.pdf
Abiquo.pdfRodCaAp
 

Similar a Computación en la Nube con Amazon EC2 (20)

Proyecto Cloud Computing OpenStack
Proyecto Cloud Computing OpenStackProyecto Cloud Computing OpenStack
Proyecto Cloud Computing OpenStack
 
Proyecto Cloud Computing_OpenStack
Proyecto Cloud Computing_OpenStackProyecto Cloud Computing_OpenStack
Proyecto Cloud Computing_OpenStack
 
Almacenamiento en Windows Azure - Parte 2
Almacenamiento en Windows Azure - Parte 2Almacenamiento en Windows Azure - Parte 2
Almacenamiento en Windows Azure - Parte 2
 
Súbete a la nube de Microsoft (2/4) - Almacenamiento en Windows Azure
Súbete a la nube de Microsoft (2/4) - Almacenamiento en Windows AzureSúbete a la nube de Microsoft (2/4) - Almacenamiento en Windows Azure
Súbete a la nube de Microsoft (2/4) - Almacenamiento en Windows Azure
 
Introduccion a Windows Azure - Parte 1
Introduccion a Windows Azure - Parte 1 Introduccion a Windows Azure - Parte 1
Introduccion a Windows Azure - Parte 1
 
Súbete a la nube de Microsoft (1/4) - Introducción a Windows Azure
Súbete a la nube de Microsoft (1/4) - Introducción a Windows AzureSúbete a la nube de Microsoft (1/4) - Introducción a Windows Azure
Súbete a la nube de Microsoft (1/4) - Introducción a Windows Azure
 
web hosting
web hostingweb hosting
web hosting
 
Santiago Trujillo Piter Marcelino.pdf
Santiago Trujillo Piter Marcelino.pdfSantiago Trujillo Piter Marcelino.pdf
Santiago Trujillo Piter Marcelino.pdf
 
Migrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows AzureMigrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows Azure
 
Webinar: introduction to cloud computing
Webinar:  introduction to cloud computingWebinar:  introduction to cloud computing
Webinar: introduction to cloud computing
 
[CSA] Recomendaciones de Seguridad en Cloud Computing para Empresas
[CSA] Recomendaciones de Seguridad en Cloud Computing para Empresas[CSA] Recomendaciones de Seguridad en Cloud Computing para Empresas
[CSA] Recomendaciones de Seguridad en Cloud Computing para Empresas
 
Optimización de costos en migraciones a la nube AWS
Optimización de costos en migraciones a la nube AWSOptimización de costos en migraciones a la nube AWS
Optimización de costos en migraciones a la nube AWS
 
[CSA] Recomendaciones de Seguridad en Cloud Computing para Usuarios
[CSA] Recomendaciones de Seguridad en Cloud Computing para Usuarios[CSA] Recomendaciones de Seguridad en Cloud Computing para Usuarios
[CSA] Recomendaciones de Seguridad en Cloud Computing para Usuarios
 
Azure SQL
Azure SQLAzure SQL
Azure SQL
 
PFC - Migración de un entorno web a Cloud Computing Amazon EC2 6
PFC - Migración de un entorno web a Cloud Computing Amazon EC2 6PFC - Migración de un entorno web a Cloud Computing Amazon EC2 6
PFC - Migración de un entorno web a Cloud Computing Amazon EC2 6
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Abigail vasquez ...
Abigail vasquez ...Abigail vasquez ...
Abigail vasquez ...
 
Provisionamiento de un RAC de 2 nodos en la nube de Oracle.
Provisionamiento de un RAC de 2 nodos en la nube de Oracle.Provisionamiento de un RAC de 2 nodos en la nube de Oracle.
Provisionamiento de un RAC de 2 nodos en la nube de Oracle.
 
Business case
Business caseBusiness case
Business case
 
Abiquo.pdf
Abiquo.pdfAbiquo.pdf
Abiquo.pdf
 

Más de Pablo Iñigo Blasco

Más de Pablo Iñigo Blasco (8)

Introducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentesIntroducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentes
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
 
Ros platform overview
Ros platform overviewRos platform overview
Ros platform overview
 
ROS Overview - Málaga 2012
ROS Overview - Málaga 2012ROS Overview - Málaga 2012
ROS Overview - Málaga 2012
 
Ros y sistemas multi agentes
Ros y sistemas multi agentesRos y sistemas multi agentes
Ros y sistemas multi agentes
 
ROS - Jornadas de la ingeniería cádiz-2011
ROS - Jornadas de la ingeniería cádiz-2011ROS - Jornadas de la ingeniería cádiz-2011
ROS - Jornadas de la ingeniería cádiz-2011
 
Introducción a ROS
Introducción a ROSIntroducción a ROS
Introducción a ROS
 
Simulation in Robotics
Simulation in RoboticsSimulation in Robotics
Simulation in Robotics
 

Último

Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 

Último (20)

Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 

Computación en la Nube con Amazon EC2

  • 1. Proyecto sobre el tema de interés AWS - 2009/2010 Cloud Computing con Amazon EC2 Pablo Iñigo Blasco Ignacio Trevilla García Miguel Ángel Pérez Valencia
  • 2. 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 además mantenga la licencia y no use la obra con fines comerciales. El propósito 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 crédito por el esfuerzo realizado y que futuras versiones sigan los mismos términos. Copyright y algunos derechos reservados por: • Pablo Iñigo Blasco • Ignacio Trevilla García • Miguel Ángel Pérez Valencia Página 1
  • 3. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Versión 1.0 Junio 2010 Versión inicial del trabajo 1.1 Septiembre 2010 Inclusión de los términos de licencia CC By- Nc-Sa y algunos cambios en el formato Página 2
  • 4. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Índice de contenido Resumen.......................................................................................................................................................... 7 Introducción...................................................................................................................................................... 7 El paradigma Cloud Computing........................................................................................................................ 8 Cloud Hosting.............................................................................................................................................. 9 Diagrama de Conceptos del Cloud Computing ......................................................................................... 10 Interés actual en Cloud Computing............................................................................................................ 10 Descripción de Amazon EC2 ......................................................................................................................... 11 Aspectos técnicos...................................................................................................................................... 12 Instancia............................................................................................................................................... 12 Potencia de cómputo (ECU)................................................................................................................. 12 Zonas de disponibilidad........................................................................................................................ 12 Gestión del servicio.............................................................................................................................. 13 Escalabilidad, elasticidad y distribución de carga.................................................................................13 Aspectos económicos................................................................................................................................ 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 Descripción de la empresa y su servicio.................................................................................................... 21 Definición del problema ............................................................................................................................ 21 Estudio de demanda.................................................................................................................................. 21 Propuesta de solución 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 Planificación de costes de la propuesta con Amazon Web Services....................................................25 Conclusiones.................................................................................................................................................. 27 FAQ................................................................................................................................................................ 29 Resumen de esfuerzo..................................................................................................................................... 34 Referencias..................................................................................................................................................... 36 Página 3
  • 5. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Índice de ilustraciones Ilustración 1: SaaS sobre servicios de Cloud Computing.................................................................................8 Ilustración 2: Evolución del hosting................................................................................................................... 9 Ilustración 3: Diagrama de conceptos del Cloud Computing..........................................................................10 Ilustración 4: Gráfica sobre porcentaje de ofertas de empleo con el termino "cloud computing"....................11 Ilustración 5: Gráfica de Google Trends para el término "cloud computing"...................................................11 Ilustración 6: Precio/hora por tipo de instancia y modo de contratación.........................................................15 Ilustración 7: Gráfica de monitorización de instancias en Cloud Watch..........................................................17 Ilustración 8: Diagrama de conceptos de Cloud Computing con Amazon EC2...............................................19 Ilustración 9: Ancho de banda consumido por AWS respecto del resto de webs de Amazon.........................20 Ilustración 10: Top 500k de sitios en Cloud - Marzo 2010...............................................................................20 Ilustración 11: Gráfica de la demanda según horario del caso de estudio .....................................................22 Ilustración 12: Arquitectura de la solución propuesta para el caso de estudio................................................23 Página 4
  • 6. 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 españolas) ..................................................................................................................................................... 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 aplicación que quiero migrar a Amazon EC2 ¿Cómo puedo medir las horas de uso para saber cuando podría costar?.................................................................................................................................... 31 - ¿Es rentable para Amazon proveer estos servicios? ...................................................................................31 - ¿Qué se debe tener en cuenta a la hora de realizar una aplicación 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 podría ser el coste de correr una aplicación web corriente en Amazon EC2? ..................................32 - ¿Qué tipo de aplicaciones se obtienen un mayor beneficio gracias a Amazon EC2? .................................32 - ¿Cómo se gestionan las instancias? ........................................................................................................... 33 - ¿Qué es una AMI?........................................................................................................................................ 33 - ¿Qué es una ECU?...................................................................................................................................... 33 - ¿Qué es Utility Computing?.......................................................................................................................... 33 Página 5
  • 7. 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 históricos 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 añadir funcionalidades al vuelo en sus servicios en Internet sin tener que realizar una inversión y planificación en una nueva infraestructura, entrenar a nuevo personal o cambiar el software existente en toda la infraestructura. El presente trabajo pretende abordar la explicación de los conceptos básicos de lo que se conoce como Cloud Computing, pero sobre todo pretende analizar y detallar como está siendo abordado dicho paradigma por Amazon centrándose en el servicio conocido como Amazon Elastic Cloud Computing (Amazon EC2). Introducción En este apartado se realiza una introducción al contexto de trabajo, la web, la web orientada a servicios, la situación empresarial y los problemas potenciales de escalabilidad con los que se enfrenta hoy día. 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 aplicación o servicio para que sea capaz de soportar mayor número de usuarios o picos de demanda mayores. Existen muchos servicios basados en Cloud públicos en Internet con amplio reconocimiento. Algunos ejemplos de aplicaciones web que se sustentan en este paradigma son Tweeter, Google Docs o Menéame. Se trata de servicios que están 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 están 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 difícil encontrar definiciones de conceptos totalmente aceptadas. Además "Cloud computing" son palabras que actualmente están de moda (Buzz Words) ya que actualmente representan un nicho de mercado muy potente y en crecimiento por lo que cada organización enfoca los conceptos de este paradigma desde un punto de vista propio según sus intereses. El presente estudio ofrece una vista general flexible y abierta de los conceptos básicos de Cloud Computing centrándose 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 comprensión el trabajo se ha dividido en varias secciones. En la primera sección se realizará una introducción al contexto del trabajo en la situación empresarial actual y a los problemas que se presentan. En la segunda sección se comentará de que trata el paradigma del Cloud Computing y que utilidad tiene, en el contexto mencionado en la sección 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 sección se explicará como se han aplicado los conceptos del paradigma para en el caso de los servicios ofrecidos por Amazon y más concretamente el servicio Amazon EC2. En la cuarta sección presentaremos un caso de estudio que permita, de una manera práctica, comprender mejor que es lo que ofrece Amazon EC2 y las diferencias respecto a una solución no basada en Cloud Computing. En la quinta sección realizaremos un análisis sobre los resultados comparativos del caso de estudio de la sección anterior dando relevancia sobre todo al factor coste. En la sexta y última sección se expondrán algunas conclusiones que han obtenido los miembros del grupo tras la realización de este trabajo. Página 6
  • 8. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa El paradigma Cloud Computing Se podría definir el término Cloud Computing como el ofrecer un servicio a través de Internet consistente en prestar acceso a recursos de computación, de modo que el cliente no tiene que preocuparse de la gestión y mantenimiento de la infraestructura subyacente que se usa para prestar esos servicios, si no sólo de usar los recursos contratados para realizar sus actividades. Por la parte del proveedor el prestar servicios de esta manera le permite optimizar su inversión en hardware y mantenimiento, ya que aprovecha el hardware al máximo al distribuir esos recursos entre todos sus usuarios minimizando el desperdicio. Por la parte del cliente el no depender de un hardware o infraestructura física concreta le permite centrase en el uso que hace de ella ahorrándose los costes de mantenimiento, además de que siempre que necesite mas recursos simplemente deberá contratarlos al proveedor que los pondrá rápidamente a su disposición, con lo que se permite una gran escalabilidad y una optimización del gasto al tener siempre contratado lo que se necesita y al pagar sólo 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 aplicación del cliente esté siempre funcionando de manera óptima. ● Software as a Service (SaaS): El servicio que se ofrece es una aplicación orientada al usuario final, el cual la accede a través de Internet, y cuyo uso es lo que los clientes contratan al proveedor. Este tipo ya existía actualmente y se ha estado explotando sin relación con Cloud Computing, pero en nuestro caso cuando mencionamos SaaS nos referimos específicamente a aquellas aplicaciones que funcionan sobre servicios de alguno de los otros dos tipos (IaaS o PaaS), dejando para otro momento una definición más precisa del término. La mayoría de aplicaciones que funcionan sobre un Cloud son aplicaciones que entran en este tipo de servicio, convirtiendo al proveedor de la aplicación en proveedor de SaaS a la vez que es usuario del proveedor de servicios de Cloud, tal y como ilustra la siguiente figura[12]: Ilustración 1: SaaS sobre servicios de Cloud Computing El Cloud Computing se basa en recursos de computación 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 pública 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 límites de una Página 7
  • 9. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa organización pero cuya explotación no es comercializada públicamente como en el caso de Public Cloud. Cloud Hosting Cloud Hosting no es mas que la aplicación 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 evolución, desde el punto de vista de los proveedores de servicio de hosting, de la tecnología sobre la que realizaban sus servicios tendiéndose siempre hacia un mejor aprovechamiento de los recursos hardware disponible en el lado del proveedor y a una mayor economía en el gasto por servicios contratados, pero con mejores prestaciones, en la parte del cliente. Esto se ilustra en el siguiente gráfico[16]: Ilustración 2: Evolución 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 tecnología lo permite y las empresas están 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 detrás (hardware, infraestructura, mantenimiento, disponibilidad, ...). Las características del servicio se rigen por las necesidades concretas del cliente y por niveles de servicio que por cuestiones tecnológicas. ● Escalable y elástico: La escalabilidad se refiere a la habilidad de añadir o eliminar recursos del servicio y es una característica que tiene que proveer la infraestructura subyacente. Entre tanto la Página 8
  • 10. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa elasticidad está mas relacionada con el modelo económico 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 economías de escala y maximizar el uso de esos recursos ya que estarán siendo utilizados a la vez por múltiples 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 tecnologías de Internet: Los servicios llegan a los clientes a través de tecnologías de Internet sobre protocolos como HTTP, REST y otras tecnologías de la web. Nosotros por nuestra parte añadiríamos un atributo mas para caracterizar la abundancia de los recursos que necesita el servicio para escalar de manera elástica. Tal es la abundancia y la facilidad para incrementar el uso de recursos que da la impresión de no tener límite y por ello denominamos al atributo Recursos virtualmente ilimitados. Diagrama de Conceptos del Cloud Computing Para ilustrar los conceptos y facilitar su comprensión se ha preparado un diagrama con los conceptos más importantes involucrados en el paradigma de Cloud Computing. En el diagrama se representan los conceptos relacionados entre sí comenzando por la definición principal del Cloud Computing y extendiendo las relaciones por los conceptos adyacentes. Ilustración 3: Diagrama de conceptos del Cloud Computing Interés actual en Cloud Computing El Cloud Computing y el SaaS están de moda actualmente, lo que significa que hay mucho buzz alrededor de esos conceptos y los sectores involucrados comienzan a buscar empleados que estén preparados para atacar las posibilidades que ofrece. Esta tendencia la podemos observar en las ocurrencias de las palabras 'cloud' y 'computing' en sitios de publicación de ofertas de empleo como indeed.com[7], observándose como hay un notable incremento desde enero del 2008 hasta enero del 2010. Página 9
  • 11. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Ilustración 4: Gráfica sobre porcentaje de ofertas de empleo con el termino "cloud computing" También podemos usar google trends para obtener una gráfica que nos muestre la tendencia en cuanto a las búsquedas sobre estos términos: Ilustración 5: Gráfica de Google Trends para el término "cloud computing" En la cual podemos observar como a partir de finales de 2007 comienza a generarse más búsquedas y noticias sobre estos dos términos y como en la actualidad parece mantenerse cierta tendencia al alza en el número de búsquedas, lo que ratifica el interés actual sobre este tema y como las noticias atraen un mayor interés sobre el. Descripción de Amazon EC2 La empresa Amazon ofrece desde hace tiempos ciertos servicios a través 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. Página 10
  • 12. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Aspectos técnicos Técnicamente no se conocen los detalles internos de como funciona el Cloud de Amazon, pero si se conocen los detalles técnicos del servicio que ofrece, que son los que importan a los clientes ya que Cloud Computing, entre otras cosas, trata de la abstracción respecto a los detalles técnicos 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 término instancia como un conjunto de recursos de computación que estarán disponibles para una imagen en ejecución y es el símil de lo que sería 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 máximos disponibles para esa instancia. Por ejemplo una instancia estándar 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, computación y el espacio de disco que usa la instancia están 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 recibirán 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 pequeñas, afectando esto por tanto al rendimiento de las aplicaciones. Las instancias de por si no incluyen ningún software, al igual que un pc recién 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 imágenes 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, término que usaremos de ahora en adelante. Los tipos de sistemas operativos soportados son Windows y Linux (prácticamente cualquier distribución), pero para usar un sistema operativo en EC2 es necesario incluir en el kernel del sistema extensiones de virtualización que permitan la ejecución en el Cloud de Amazon. Potencia de cómputo (ECU) En las instancias el recurso que modela lo que sería 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 año 2007. Esta definición 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 características se comentarán en el apartado dedicado a los detalles económicos 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 región se las denomina zona de disponibilidad y cuando se contrata una instancia para una de esas zonas ya no se puede cambiar su ubicación. Lo habitual es contratar las instancias en la zona de disponibilidad mas próxima 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. Página 11
  • 13. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Gestión del servicio El control de la contratación de instancias, la gestión 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 extensión de Firefox o desde una aplicación a medida realizada por terceros ya que existe una API en forma de servicio web REST que permite realizar la gestión 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 teóricamente permitiría que las aplicaciones funcionando en el Cloud de Amazon pudieran gestionar ellas mismas algunos aspectos de manera automática. Escalabilidad, elasticidad y distribución 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 añadir 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 automática mediante un servicio adicional denominado Amazon Cloud Watch, que se encarga de monitorizar las instancias y que además 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 harán que se creen nuevas instancias o que se detengan algunas de las existentes, manteniendo así el número de instancias activas a medida de las necesidades de la aplicación de manera transparente. También existe un servicio adicional de interés, denominado Amazon Elastic Load Balancer, que permite la distribución de la carga entre varias instancias para una mayor seguridad y tolerancia a fallos, dado que también es capaz de detectar instancias que no funcionan correctamente y redirigir el tráfico 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 permitiría a los desarrolladores que la propia aplicación gestionara la escalada de recursos. Aspectos económicos Amazon ofrece 3 formas de contratación de instancias, contratación de instancia bajo demanda, contratación de instancia reservada (por uno o tres años) y contratación de instancia SPOT. Además, Amazon ofrece distintas características 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 según donde nos encontremos, la latencia sea menor. Además, ofrece distintas características 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 función del "tamaño" (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, High- Memory 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 características de las instancias se resumen en la siguiente tabla: Tamaño Standard High-Memory High-CPU RAM: 1,7 GB Small ECUS: 1 HD: 160 GB Medium RAM: 7,5 GB RAM: 1,7 GB Página 12
  • 14. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa ECUS: 4 ECUS: 5 HD: 850 GB HD: 350 GB RAM: 15 GB Large ECUS: 8 HD: 1960 GB RAM: 17,1 GB RAM: 7 GB Extra Large ECUS: 6,5 ECUS: 20 HD: 420 GB HD: 1960 GB RAM: 34,2 GB Double Extra Large ECUS: 13 HD: 850 GB RAM: 68,4 GB Quadruple Extra Large ECUS: 26 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 sólo 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 varía en función del tipo de instancia y la forma de contratación. 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 después además 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 día esta opción permite ahorrar dinero. En las instancias SPOT, el usuario determina cuanto desea pagar por una hora de uso una instancia de unas determinadas características en una determinada región. En EC2 en un momento dado pueden haber muchos recursos libres que no estén 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 máximo que está dispuesto a pagar por una hora de uso de instancia SPOT, su instancia (o instancias) se ejecutarán cuando el precio especificado esté por encima del precio por hora de las instancias SPOT, precio que varía dinámicamente en función 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 asignación. 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 máximo especificado por el usuario quede por debajo del precio/hora de la instancia SPOT o que el usuario detenga la ejecución 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 comparación) al inicio de cada hora de ejecución, no el máximo especificado por el usuario. Además si es Amazon la que termina la instancia porque el precio ha subido por encima del límite máximo del usuario el tiempo de la hora de ejecución actual no se factura al cliente como una hora completa. A fin de facilitar una comparación en la siguiente tabla se muestran los precios por hora de los diferentes tipos de instancia para las tres modalidades de contratación. 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 varían en función de los recursos y la demanda. Todos los precios son para la zona situada en Europa (Irlanda) y para instancias con Linux. Precio/hora On- Tipo/Tamaño Precio/hora Reserved Precio/hora SPOT Demand Standard Small 0,095$ 0,04$ 0,042$ Standard Large 0,38$ 0,16$ 0,165$ Standard Extra Large 0,76$ 0,32$ 0,313$ Página 13
  • 15. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa High-Memory Extra 0,57$ 0,24$ 0,246$ Large High-Memory Double 1,34$ 0,56$ 0,585$ Extra Large High-Memory 2,68$ 1,12$ 1,171$ Quadruple Extra Large High-CPU Medium 0,19$ 0,08$ 0,079$ High-CPU Extra Large 0,76$ 0,32$ 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/Tamaño Reserva 1 año Reserva 3 años Standard Small 227,50$ 350$ Standard Large 910$ 1400$ Standard Extra Large 1820$ 2800$ High-Memory Extra Large 1325$ 2000$ High-Memory Double Extra 3185$ 4900$ Large High-Memory Quadruple Extra 6370$ 9800$ Large High-CPU Medium 455$ 700$ High-CPU Extra Large 1820$ 2800$ En la siguiente gráfica mostramos una comparación del precio por hora según el modo de contratación de instancias y el tipo de instancia. Ilustración 6: Precio/hora por tipo de instancia y modo de contratación Si se necesita que una aplicación web esté activa las 24 horas del día, lo conveniente es contratar instancias reservadas (reservar la instancia), en las cuales se obtiene un mejor precio/hora al pagar una Página 14
  • 16. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa cantidad fija cada 1 o 3 años. Si tu aplicación va a estar siendo utilizada las 24 horas del día durante al menos 254 días al año, esta modalidad es mas barata que una instancia bajo demanda. Este servicio premia a los clientes que hagan una buena planificación del consumo de recursos que van a realizar. Este ahorro, que puede parecer un poco escaso a primera vista, es muy significativo en máquinas de altas prestaciones que debamos tener activas 24/7 todos los días del año. Veamos un ejemplo: ● Las instancias del tipo High-CPU Extra Large Tienen un coste de 0.76 $/hora (para Unix/Linux) en la antigua fórmula de contratación. Con estos datos el coste anual de esta máquina si nunca la detuviéramos sería de: 0.76 $/h * 24 h/día * 365 días/año = 6,657 $/año (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 máquina sería el siguiente: 0.32 $/h * 24h/día * 365 días/año + 1,820 $/año = 4,623 $/año (3,423 euros aprox.) Cabe destacar que en las instancias bajo demanda la hora cada vez está más barata (en el mismo ejemplo anterior, la máquina Linux costaba 0.80$ en Marzo de 2.009) mientras que el precio de las instancias reservadas el precio por hora es más 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 aplicación en una instancia reservada, activarla y controlar a través de la propia aplicación 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 réplica 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 más adecuada de utilizar los servicios que nos ofrece Amazon Uno de los puntos a destacar es que además de pagar por estos servicios, se debe pagar también por el tráfico 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 aplicación. Por ejemplo, el coste actual del tráfico de salida, si se tiene un tráfico de entre 10 y 40GB es de 0.11$ cada GB Destacar también que Amazon suele ofrecer ofertas por sus servicios, por lo que es conveniente estar pendiente de las ofertas vigentes. Por ejemplo, hoy en día 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 región Tipos de servicios adicionales Amazon ofrece además 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 diseño 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 estándar de una unidad EC2. Se trata de un servicio de almacenamiento de alta disponibilidad, fiabilidad típicamente en aplicaciones que necesitan una base de datos o un sistema de Página 15
  • 17. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa archivos estable. EBS permite creación de volúmenes de almacenamiento desde 1GB hasta 1TB pudiéndose asociar múltiples volúmenes a una ECU. Se pueden formatear particiones con distintos sistemas de almacenamiento. Los volúmenes se crean en una zona de disponibilidad determinada y la información del volumen es automáticamente replicada dentro de la misma zona para evitar perdidas en caso de fallo de un componente hardware. Además se pueden crear copias de seguridad a través del servicio S3. El sistema de pago es tanto por volumen de almacenamiento como por número 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 automático del número de instancias en uso según un conjunto de reglas definidas. Con este sistema se puede asegurar la capacidad de respuesta en picos de demanda además de una mayor tolerancia a fallos si se utiliza junto con el Elastic Load Balancing. Ilustración 7: Gráfica de monitorización de instancias en Cloud Watch Cloud Watch es un servicio de monitorización de recursos Amazon EC2. Permite visualizar el estado de uso de recursos, el rendimiento operacional y los patrones de demanda existentes. Métricas interesantes que incluye son: uso de CPU, lecturas y escrituras en disco, tráfico en la red. Se integra con los servicios de Auto Scaling y Elastic Load Balancing, permitiendo también monitorizar el funcionamiento de estos servicios. La forma de pago es por el número 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 tráfico entre múltiples instancias EC2. El balanceo permite tener una alta capacidad de tolerancia a errores en las aplicaciones independientemente de la capacidad de carga de la aplicación o de que alguna instancia caiga en un fallo crítico. El balanceador puede detectar "el estado de salud" (EC2 instance health) y deja de enrutar tráfico hacia ella. Se trata de una herramienta fácil de gestionar a través de línea de comandos. Página 16
  • 18. 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 compañía 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 según las necesidades de la compañía. La forma de pago es por número de conexiones-VPN a la hora y por la tasa de transferencia utilizada. Es útil cuando se desea aumentar la disponibilidad de algún servicio crítico en la empresa. Un ejemplo de uso típico puede ser cuando se desea mover, poco a poco una aplicación 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 básico accesible desde Internet que sirve como herramienta para diseñar sitios web con almacenamiento mas escalable, fiable, rápido, barato y sencillo. Ofrece un conjunto de funcionalidades básicas 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 tamaños desde 1 byte a 5 Gigabytes. Los datos son almacenados en una región geográfica llamada bucket que deben ser elegidos para definir la latencia óptima del sistema. Hay tres bucket US-Standard, US- Western y EU. Los datos nunca almacenan su bucket, aunque pueden ser copiados a otros buckets. También dispone de servicios de autenticación 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 tamaños se paga una tasa menor por Gb. También se paga por uso de la red. Para contratos pequeños 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 creación automática de backups. Se puede acceder a los servicios a través de cualquier herramienta diseñada 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 configuración específica 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 aplicación en Internet, independientemente de la red en la que se encuentre o la tecnología con la que esté siendo desarrollado. Se trata de una pieza clave en la integración 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 según las necesidades de disponibilidad A nivel de desarrollo se pueden crear un número limitado de colas con un número ilimitado de mensajes de 8KB como máximo. Los mensajes son almacenados hasta 4 días. El acceso a estos servicios se realiza mediante una interfaz de operaciones a través 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 Página 17
  • 19. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa económicos. El acceso a esta base de datos se realiza mediante el protocolo HTTP y sus comandos básicos. La forma de pago es por tasa de transferencia utilizada y almacenamiento. Al igual que la mayoría de servicios de AWS se requiere la elección de una región de trabajo acorde a las necesidades de disponibilidad. Diagrama de conceptos del Cloud Computing con Amazon EC2 Tras la presentación 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: Ilustración 8: Diagrama de conceptos de Cloud Computing con Amazon EC2 Crecimiento y futuro de EC2 Desde el lanzamiento de EC2 el interés por los servicios prestados por Amazon Web Services LLC no ha hecho mas que incrementar. Muestra de ello es la siguiente gráfica publicada en el blog oficial de Amazon Web Services en la cual podemos notar el incremento en el tráfico generado por las aplicaciones que usan el Cloud Computing de Amazon desde que se lanzó el servicio en 2006 hasta finales de 2007[11]: Página 18
  • 20. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Ilustración 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 podría estar creciendo a un ritmo de un 10% mensual, pero no hay datos concretos actualizados publicados por Amazon.com como la anterior gráfica. 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 líder del sector, lo cual se refleja en la siguiente gráfica[15]: Ilustración 10: Top 500k de sitios en Cloud - Marzo 2010 Página 19
  • 21. 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 básico de aplicación de los servicios ofrecidos por AWS sobre cloud computing. Primero detallaremos los requerimientos y características de un servicio de películas online que permite a sus usuarios ver películas a cualquier hora del día, para seguidamente aplicar los servicios de AWS (EC2 y otros) para describir una posible solución al problema que ilustre y clarifique la función de cada servicio de AWS y la posible arquitectura final de un despliegue en la nube. El caso de estudio y la posible implementación aquí presentados han sido creados con la idea de ilustrar de manera mas práctica los conceptos y servicios descritos, sin pretensión de optar a la categoría de solución real a un problema real. Descripción de la empresa y su servicio La empresa es un videoclub que se dedica a despachar películas por streaming y el beneficio principal de la empresa esta basado en dos aspectos, la publicidad en su web e incrustada en los vídeos 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 básico que provee de una base de datos mysql y un servidor apache PHP. ● El hosting para el streaming consiste en un número de servidores estático y un balanceador DNS. Cada servidor almacena todas las películas en un disco duro local para evitar el consumo del ancho de banda producido por un disco duro común o SAAN. ● La infraestructura software responsable de suministrar el servicio de streaming de queda servidor es un Apache con un módulo de streaming que se encarga de utilizar un archivo en algún dispositivo de almacenamiento y suministrarlo en forma de streaming al cliente concreto. Definición del problema La empresa ha estado durante varios años en un hosting y ha adquirido fama y ha tenido éxito. El negocio ha sido rentable mientras ha habido un número de usuarios pequeño. 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 decisión de la empresa es estudiar un sistema de hosting más 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 análisis 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 solución, 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 solución 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 películas: 50% ● Alta demanda: ○ Tarde: 5:00 pm – 1:00 am ○ Nº de Usuarios medio: 3500 usuarios ○ Diversidad de películas: 80% Página 20
  • 22. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Ilustración 11: Gráfica de la demanda según horario del caso de estudio Los datos de consumo también ha sido estudiados: ● El porcentaje medio de duración de una película es de 120 minutos. ● La reproducción de una película con calidad media tiene un coste de 548 Kbps (buena calidad), por lo que cada segundo de visualización de una película consume este ancho de banda (aproximadamente ya que hay ineficiencias en los protocolos de transporte que no se tienen en cuenta). ● El tamaño de datos medio a transmitir por película (película completa) es de 470,35 MBytes. ● Actualmente hay unas 1000 películas en catálogo. Propuesta de solución con Amazon WebServices Requisitos ● No tener que cambiar la aplicación 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 películas y será accesible entre las distintas instancias de Amazon EC2. Otra posible opción de sistema de almacenamiento elástico es Amazon S3. Sin embargo esta opción se ha descartado ya que su uso de este servicio es a través de servicios web por lo que es contrario a la opción 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 diseño e implementación de la aplicación web simplemente cambiando la cadena de conexión a la base de datos. Dado que se pretende que el mantenimiento Página 21
  • 23. 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 condición, si se detecta que se cumple la condición, 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 número de usuarios, como ocurre a partir de las 17:00. De la misma manera, se agrega una condición para ir apagando instancias, para que no sea necesario pagar por instancias que no se están utilizando. Con Amazon Load Balancer ocurre algo similar, se le puede establecer una condición a partir de la cual se realiza una nueva distribución de carga entre las instancias que pueden recibir tráfico. Ambos servicios se pueden utilizar conjuntamente sin ningún tipo de problemas. Amazon EC2 Instancias que se van a contratar. Este servicio permitirá alojar tanto servidores web como servidores de streaming. Además, se podrán dar de baja y alta instancias según las necesidades del sistema. Se contratarán diferentes tipos de instancias según el tipo del servidor, consiguiendo así una mejor adaptación al tipo de problemas que puede suponer tener dos tipos de servidores distintos. Arquitectura La arquitectura de la implementación con servicios de AWS es la mostrada en el siguiente diagrama: Ilustración 12: Arquitectura de la solución 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 además capaz de escalar en función 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 usáramos algún tipo de software para el balanceado de carga nos encontraríamos con que el cuello de botella sería el ancho de banda de la instancia del balanceador que está en torno a los 35Mbps [21], aunque este es un dato es empírico y varía según el tipo de instancia, Página 22
  • 24. 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 distribuirán las peticiones entre todos los servidores existentes los cuales ante un pico de peticiones comenzarán 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 tráfico la soportarán 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 películas, cacheandolas en memoria y sirviéndolas a los clientes, de modo que sucesivas peticiones sobre al misma película serán servidas mucho mas rápidamente, siendo el mejor aprovechamiento cuando la variabilidad entre películas es la mínima (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 función el streaming de vídeo a los usuarios cacheando las películas para acelerar el proceso. El ancho de banda de cada instancia está limitado por lo que las películas 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 pequeñas 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 películas necesitamos una instancia con mucha memoria para el cacheo, que en base al número de conexiones superior anteriormente comentado sería 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 número de conexiones. Para los servidores de streaming necesitaremos siempre tener como mínimo 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 día así que se reservaran durante un período de tres años 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) más otras 10 por si hay picos de demanda superiores a 3500 usuarios, lo cual permitiría 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 tráfico de salida de las instancias que se relaciona con el número de clientes al que está sirviendo, de manera que si una instancia está sirviendo al 85% del máximo de clientes se arrancará una instancia, también 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 versión del servicio pero con un diseño 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 sólo 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 número máximo de usuarios. Supongamos que cada servidor web es capaz de aguantar 800 peticiones por segundo, de modo que en período de baja demanda podríamos funcionar con un sólo servidor pero en períodos de alta demanda necesitaríamos 5 servidores. El primero sería una instancia reservada por tres años y los otros 4 serían instancias bajo demanda que serían arrancadas cuando el primer servidor sobrepasara las 700 peticiones por segundo. Todas las instancias comparten un volumen EBS donde se encuentran las películas a servir a los clientes y las instancias de los servidores web comparten el acceso a una base de datos RDB que contiene Página 23
  • 25. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa información sobre películas, usuarios y sesiones activas, de modo que los usuarios autenticados serán los que tendrán acceso a las películas, permitiendo además controlar las películas que accede cada usuario entre otras posibles características del servicio. Para el servicio RDB se ha seleccionado la opción Large Db Instance que tiene las siguientes características: 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 películas y los archivos comunes de la aplicación. Planificación 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 período de 30 días. ● Instancias: El número 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 día 30 días 1 instancia) □ Precio por hora: 0,16$ □ Coste de reserva: 1400$ 3 años □ Coste horas: 115,2$ ■ On-Demand: 4 □ Horas de uso: 960 (8h al día 30 días 4 instancias) □ Precio por hora: 0,38$ □ Coste horas: 364,8$ ○ High-Memory Double Extra Large ■ Reservadas: 10 □ Horas de uso: 7200 (24h al día 30 días 10 instancias) □ Precio por hora: 0,56$ □ Coste de reserva: 49000$ 3 años (4900$ por instancia) □ Coste horas: 4032$ ■ On-Demand: 40 (Hay otras 10, pero no se usan realmente, están por si hay subidas repentinas en la demanda, pero no es lo esperado) □ Horas de uso: 9600 (8h al día 30 días 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 número 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 número de usuarios multiplicado por el bitrate (kbps) medio de las películas y por el número de segundos que hay en 30 días. El resultado hay que convertirlo de Kbps a MB. □ En baja demanda: ► Usuarios: 700 ► Tiempo: 12 horas al día, 30 días 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 día, 30 días al mes. Página 24
  • 26. 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 día 30 días) ► 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 millón de IO: 0,11$ ► Coste: 8997,54$ □ ELB: Se usarán dos balanceadores de carga, uno para la web y otro para el servicio de streaming. ► Balanceadores: 2 ► Horas: 1440 (24h al día, 30 días, 2 balanceadores) ► Precio hora: 0,028$ ► Tráfico: 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 películas existentes en el catálogo mas otras nuevas que se vayan sumando. Para calcular el precio además se necesita una estimación del número 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 (millón): 0,11$ ▫ Coste: 8873,92$ ► Cloud Watch: ▪ Horas de monitorización: 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: Página 25
  • 27. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa Concepto Coste Uso de instancias reservadas 4147,2$ Uso de instancias bajo demanda 13228,8$ Consumo de ancho de banda 20077,57$ RDS 8997,54$ Elastic Load Balancer 2046,82$ Elastic Block Storage 8873,92$ Cloud Watch 277,2$ Total de coste mensual: 57647,12$ (47219,54€) Coste anual: 691765,44 (566504,04€) A lo anterior hay que añadir el coste cada tres años de las instancias reservadas que asciende a 50400$. Conclusiones Cloud Computing no es sólo un Buzz Word y aunque ahora esté de moda muchas empresas están basando parte de su negocio en servicios como Amazon EC2, por lo que en un futuro, una vez haya pasado su máximo de popularidad, habrá un nicho de negocio importante. Aunque, como suele pasar en estos casos, aún hay cierta falta de consenso a la hora de definir que es exactamente Cloud Computing, con lo que nos podemos encontrar que según a quién le preguntemos obtendremos definiciones con diferencias importantes. En nuestro trabajo hemos utilizado aquellas definiciones que parecían mas comunes a nuestro juicio. También 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 aplicación realizada sobre servidores privados, lo cual implica que es necesario aprender como funciona EC2 y como sacarle partido a los servicios antes de realizar ningún cambio. En el aspecto económico EC2 es un servicio cuya viabilidad hay que estudiar antes de lanzarse ya que hay que tener en cuenta el diferente modelo de facturación, hacer planes fiables sobre la cantidad de recursos a necesitar, adaptar la aplicación para sacar provecho a EC2 y finalmente dimensionar el uso a lo que se necesite. Para un sitio pequeño o una aplicación que no genera un gran tráfico o en la cual no importa que durante los picos de actividad algunos usuarios queden sin atender satisfactoriamente Amazon EC2 puede no ser una opción viable, ya que un hosting tradicional económico podría servir perfectamente a los propósitos y a un precio muy inferior. Hay un aspecto negativo, común 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 solución 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 conexión a Internet, que a su vez dependen de uno o más proveedores distintos, la empresa sufriría grandes pérdidas. Esta claro que para asumir estos riesgos las empresas acuerdan niveles de servicio mínimos con los proveedores (SLAs), pero en el caso de Amazon EC2 el acuerdo que hay disponible en la web no nos parece suficiente indemnización para un servicio del cual puede depender el futuro de una empresa. En esta línea también 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 evitarán 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 Página 26
  • 28. 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 difícil cambiar a otro proveedor o una vuelta a una solución 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 práctica no es totalmente cierto. EC2 por ejemplo permite un incremento en la contratación máximo de 20 instancias por zona de disponibilidad y por día. 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 podría llegarse al momento en el que el proveedor tuviera que poner límites mas estrictos a la adquisición de nuevos recursos para mantener los niveles de servicio. Página 27
  • 29. 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 informática que no tenían 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. Después, 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 computación a través de Internet usando recursos compartidos de muchos ordenadores en lugar de usar los recursos hardware y software de una máquina 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 automáticamente. ● Simplicidad: El cliente se ve liberado de tareas de gestión 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 gestión de la infraestructura. Además permite pagar sólo por los recursos consumidos por las aplicaciones. Uno de los puntos en los que más 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 producción para utilizar los recursos que éstos estaban utilizando. ● Ubicuidad: Acceso a los recursos desde cualquier punto con conexión a Internet - ¿Todo son ventajas? No. También tiene sus desventajas, como todo en la vida. Las principales desventajas son: ● Sensación de Inseguridad: La empresa sitúa activos importantes para su actividad (datos, lógica de negocio) en la nube, sobre la cual no tiene ningún control por pertenecer a un tercero, por lo cual no puede controlar totalmente las políticas de seguridad en los servicios y debe confiar absolutamente en el proveedor de servicios. ● Integración: No suele ser fácil integrar los sistemas que funcionan en la nube con sistemas que ya estuvieran en funcionamiento en la organización. ● Fallos: Existen dos puntos de fallo externos a la infraestructura de la organización, uno es el proveedor de conexión 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 quedarían en una muy mala situación, de igual manera si un proveedor de Internet o parte de la red cae se estaría en la misma situación. ● 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 inversión 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 cálculo o permitirles responder a picos espontáneos de tráfico con las garantías de fiabilidad y disponibilidad necesarias. Página 28
  • 30. 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 ● Españolas ○ 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 inversión en recursos para controlarlas. ● Aplicaciones que para su despliegue requieren una infraestructura en los que la organización no quiere o no puede invertir. ● Aplicaciones que tengan que ser accesible desde múltiples localizaciones geográficas distantes entre sí. ● Aplicaciones críticas que requieran una fiabilidad y una disponibilidad para las cuales la organización 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 utilización de sistemas operativos virtualizados, que se suben en forma de imágenes de instalación 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 división específica de la compañía 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 organización 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 número de instancias asignadas pueden incrementarse automáticamente cuando ocurre un pico de uso o bajo petición de la propia aplicación. Este servicio es totalmente configurable por el usuario. ● Elastic Load Balancing: Balanceo de la carga automático entre las instancias disponibles. ● CloudWath: Monitorización 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 aplicación 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 españolas) Página 29
  • 31. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa ● Menéame: Sitio web español 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 gestión inmobiliaria sobre Amazon EC2. ● Monografías: 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 varían en función del tipo de instancia y de otras opciones de contratación. ● En los demás 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 aplicación que quiero migrar a Amazon EC2 ¿Cómo puedo medir las horas de uso para saber cuando podría costar? La hora de uso corresponde con el tiempo que una instancia está activada, es decir "encendida". De modo que si la aplicación actualmente funciona sobre servidores que están encendidos las 24 horas se podría extrapolar ese número de horas para calcular el coste mensual aproximado. Hay que tener en cuenta que al tener libertad para añadir y quitar instancias bajo demanda se debería estudiar cuales instancias deberían estar activas en un momento dado, con lo cual se podría ahorrar en costes. - ¿Es rentable para Amazon proveer estos servicios? Los datos económicos 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 además 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 compañía 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 aplicación si se quiere alojar en los servicios de Cloud Computing que ofrece Amazon? Si la aplicación 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 aplicación 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 dinámico, estando configurado el servicio para crear instancias extras durante los picos de actividad, pero también tener una instancia para los contenidos estáticos que no esté configurada para escalar ya que servir contenido estático provoca una carga muy inferior a servir contenido dinámico. Página 30
  • 32. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa También hay que tener en cuenta que si se tienen diferentes instancias de la misma aplicación corriendo a la vez en diferentes máquinas de la nube hay que preparar la aplicación 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, además Amazon proporciona un monitor que decide, en base a una configuración 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 próximo mes de facturación en caso de que la región 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 año de servicio, lo cual significa que no se pueda acceder a la zona donde se tiene la instancia durante 5 minutos en los 365 días posteriores al contrato/renovación 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 podría ser el coste de correr una aplicación web corriente en Amazon EC2? Usando la herramienta de cálculo que provee Amazon Web Services[8] podemos poner un ejemplo de cálculo de costes sobre los siguientes supuestos: ● Instancias: 1 instancia pequeña en la región 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 tráfico nunca sobrepasa lo que la instancia puede dar de si. ● Tráfico de subida mensual: 2 GB. ● Tráfico 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 año de uso, repartiendo el coste de la reserva entre cada año de uso, serían: Coste Tipo Pago por reserva Coste anual($) Coste anual(€) mensual($) Instancia reservada por 1 29,28$ 227,50$ 578,86$ 428,772€ año Instancia reservada por 3 21,96$ 350$ 380,18$ 281.573€ años - ¿Qué tipo de aplicaciones se obtienen un mayor beneficio gracias a Amazon EC2? Aquellas que requieren muchos recursos, tienen mucho tráfico, altas necesidades de computación, muchos usuarios y en general todo lo que termine requiriendo la escalabilidad bajo demanda que provee la nube. Las pequeñas aplicaciones que apenas consumen recursos o que no son críticas no se benefician de esto, ya que en muchos casos los precios de un hosting compartido o virtual son mucho mas pequeños que los costes de EC2 (ver pregunta anterior). Página 31
  • 33. Cloud Computing con Amazon EC2 - AWS 09-10 Licencia Creative Commons By-Nc-Sa - ¿Cómo se gestionan las instancias? Hay muchas maneras. Desde un API para integración 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 extensión. En todos los casos el usuario puede comprobar el estado de las instancias que están funcionando y el uso de recursos que se está realizando. - ¿Qué es una AMI? AMI es el acrónimo de Amazon Machine Image. Cada AMI es una imagen de una instalación de un sistema operativo, de manera similar a como se trabaja en virtualización. Básicamente están 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 válida para Amazon y que se especifican en un fichero llamado image.manifest.xml. Amazon proporciona varias AMIs listas para ejecutar pero también hay una gran variedad de imágenes públicas creadas por terceros con diferentes configuraciones listas para usar, donde las mas populares son las realizadas totalmente con software libre aunque también existen AMIs realizadas con sistemas propietarios. - ¿Qué es una ECU? ECU es el acrónimo 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 año 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 computación al cliente para que éste haga uso de ellos de igual modo que un cliente de la red eléctrica tiene acceso a una línea eléctrica para alimentar aparatos eléctricos y poder hacer uso de ellos. Página 32