Sei sulla pagina 1di 13

UNIVERSIDAD CATLICA DE COSTA RICA

ESCUELA DE INGENIERA DE SISTEMAS

PROF. JOSE CABEZAS JAIKEL

ARNOLD ARTAVIA CERDAS DANIEL CHAVARRIA BOLAOS

SEDE CENTRAL DICIEMBRE, 2012

Tabla de Contenido
Amazon DynamoDB ........................................................................................................ 2 Aspectos destacados del servicio ...................................................................................... 6 Escalable ....................................................................................................................... 6 Rendimiento rpido y predecible .................................................................................. 7 Administracin sencilla ................................................................................................ 7 Tolerancia a fallos integrada......................................................................................... 7 Flexible ......................................................................................................................... 8 Coherencia alta y contadores atmicos ........................................................................ 8 Rentable ........................................................................................................................ 8 Seguro ........................................................................................................................... 8 Supervisin integrada ................................................................................................... 8 Integracin de Elastic MapReduce ............................................................................... 9 Integracin de Amazon Elastic MapReduce ................................................................ 9 Cundo debera usar DynamoDB? ............................................................................... 10 En qu se diferencia Amazon DynamoDB de Amazon SimpleDB? Cul de estos servicios debo utilizar? ................................................................................................... 11 Conclusin ...................................................................................................................... 13

3 Amazon DynamoDB Amazon DynamoDB es un servicio diseado para abordar los problemas principales relativos a la gestin, el rendimiento, la escalabilidad y la fiabilidad de la base de datos. Los desarrolladores pueden crear una tabla de base de datos capaz de almacenar y recuperar cualquier cantidad de datos, as como de satisfacer cualquier nivel de trfico de solicitud. DynamoDB distribuye automticamente los datos y el trfico de la tabla por una cantidad suficiente de servidores como para gestionar la capacidad de solicitud especificada por el cliente y la cantidad de datos almacenados, al mismo tiempo que mantiene un rendimiento uniforme y rpido. Todos los elementos de datos se almacenan en unidades de estado slido y se replican automticamente por tres zonas de disponibilidad de una regin a fin de ofrecer las prestaciones integradas de alta disponibilidad y durabilidad de los datos. Amazon DynamoDB permite a los clientes evitar las cargas administrativas que suponen la puesta en marcha y el ajuste de escalas de un clster de base de datos distribuida de alta disponibilidad pagando solamente un bajo precio variable por los recursos consumidos. Funcionalidad de Amazon DynamoDB Para utilizar Amazon DynamoDB, simplemente necesita: AWS Management Console Esta sera la interfaz basada en web para gestionar todos los servicios web de Amazon, esta proporciona un manejo cmodo de los recursos informticos, de almacenamiento y en nube. API de Amazon DynamoDB Estas son las siguientes:

CreateTable: Crea una tabla y especifica el ndice principal utilizado para acceder a los datos. UpdateTable: Actualiza los valores de rendimiento previsto para una tabla concreta. DeleteTable: Elimina una tabla.

DescribeTable: Devuelve el tamao, el estado y la informacin del ndice de la tabla. PutItem: Crea un nuevo elemento o reemplaza un elemento anterior por otro nuevo (incluidos todos los atributos). Si en la tabla especificada ya existe un elemento con la misma clave principal, el nuevo elemento reemplazar totalmente al existente. Tambin puede utilizar operadores condicionales para reemplazar un elemento solo si los valores de los atributos cumplen determinadas condiciones, o bien para insertar un nuevo elemento solo en caso de que este no exista todava. BatchWriteItem: Inserta, sustituye y elimina varios elementos de diversas tablas en una nica solicitud, pero no como una transaccin nica. Admite lotes de hasta 25 elementos para Put o Delete, con un tamao de solicitud mximo y total de 1 MB. UpdateItem: Edita los atributos de un elemento existente. Tambin puede utilizar operadores condicionales para realizar una actualizacin solo si los valores de los atributos del elemento cumplen determinadas condiciones. DeleteItem: Elimina un nico elemento de una tabla mediante la clave principal. Tambin puede utilizar operadores condicionales para realizar una eliminacin solo si los valores de los atributos del elemento cumplen determinadas condiciones. GetItem: La operacin GetItem devuelve un conjunto de atributos de un elemento que coincide con la clave principal. La operacin GetItem, de forma predeterminada, ofrece una lectura de coherencia eventual. Si las lecturas de coherencia eventual no son aceptables para su aplicacin, utilice ConsistentRead. BatchGetItem: La operacin BatchGetItem devuelve los atributos de varios elementos de varias tablas mediante la utilizacin de sus claves principales. Una nica respuesta tiene un lmite de tamao de 1 MB y devuelve una cantidad mxima de 100 elementos. Admite tanto la coherencia firme como la final. Query: Recibe uno o ms elementos en funcin de su clave principal. Admite tanto la coherencia firme como la final. Esta API se utiliza en tablas que tienen una clave compuesta de rango hash. Scan: Obtiene uno o varios elementos y atributos mediante la realizacin de un anlisis completo de la tabla. Los elementos devueltos pueden ser limitados si especifica filtros para uno o varios atributos. Por tanto, la API puede utilizarse para habilitar las consultas ad-hoc de una tabla de los atributos que no se encuentren en la clave principal de la tabla. Sin embargo, habida cuenta de que se trata de un anlisis completo de la tabla sin un ndice, no debe utilizarse para cualquier consulta de la aplicacin que requiera un rendimiento predecible. El conjunto de resultados de una solicitud de la API Scan tendr una coherencia eventual. Puede considerar la API de anlisis Scan como un iterador. Si el tamao agregado de los elementos analizados para una solicitud de la API Scan determinada supera el lmite de 1 MB, la solicitud terminar y los resultados encontrados se devolvern junto con una API LastEvaluatedKey

Amazon CloudWatch Amazon CloudWatch proporciona la supervisin de los recursos de la nube de AWS y de las aplicaciones que los clientes ejecutan en AWS. Los desarrolladores y administradores de sistema la utilizan para recopilar mtricas y realizar su seguimiento, obtener conocimientos y reaccionar inmediatamente para que sus aplicaciones y empresas sigan funcionando sin problemas. Amazon CloudWatch supervisa recursos de AWS como las instancias de bases de datos de Amazon EC2 y Amazon RDS, y tambin puede supervisar mtricas personalizadas generadas por las aplicaciones y los servicios de un clientes. Con Amazon CloudWatch, obtendr una visibilidad para todo el sistema de la utilizacin de recursos, el rendimiento de las aplicaciones y el estado de funcionamiento. Amazon CloudWatch proporciona una solucin de supervisin fiable, ampliable y flexible que podr iniciar en unos minutos. Ya no tendr que configurar, gestionar o escalar sus propios sistemas de supervisin ni su propia infraestructura. Con Amazon CloudWatch, podr supervisar fcilmente la proporcin de datos mtricos que necesite. Amazon CloudWatch le permite recuperar mediante programacin sus datos de supervisin, ver grficos y establecer alarmas que le ayuden a resolver problemas, reconocer tendencias y realizar acciones automatizadas en funcin del estado de su entorno de nube. Funciones de Amazon CloudWatch

Amazon CloudWatch le permite supervisar algunas de las instancias de AWS, y la bases de datos de Amazon RDS en tiempo real. Mtricas como la utilizacin de la CPU, la latencia y los recuentos de solicitudes se proporcionan automticamente para estos recursos de AWS. Tambin puede suministrar sus propias mtricas personalizadas sobre sistemas y aplicaciones, como el uso de memoria, los volmenes de transacciones o los porcentajes de error y Amazon CloudWatch tambin los supervisar. Con Amazon

6 CloudWatch, puede acceder a estadsticas actualizadas al minuto, ver grficos y establecer alarmas para los datos de mtrica. Se puede acceder a las funciones de Amazon CloudWatch a travs de la API, las herramientas de lnea de comandos, el SDK de AWS y la AWS Management Console. Otras funciones son: Supervisar los recursos de AWS automticamente, sin necesidad de instalar software adicional. Enviar mtricas personalizadas generadas por sus propias aplicaciones (o por los recursos de AWS no mencionados anteriormente) y que Amazon CloudWatch las supervise. Puede enviar estas mtricas a Amazon CloudWatch a travs de una simple solicitud a la API Put. Establecer alarmas en cualquiera de sus mtricas para recibir notificaciones o realizar otras acciones automatizadas cuando su mtrica cruce el umbral especificado. Tambin puede establecer alarmas para detectar y cerrar instancias de Amazon EC2 que no se utilicen o se utilicen por debajo de su capacidad. Ver grficos y estadsticas de cualquiera de sus mtricas, y obtener una descripcin general rpida de todas sus alarmas y de todos los recursos de AWS supervisados en una ubicacin del panel de Amazon CloudWatch.

Aspectos destacados del servicio Escalable Amazon DynamoDB es un servicio diseado para ofrecer un rendimiento perfecto y escalabilidad de almacenamiento.

Rendimiento previsto Al crear una tabla, solo tiene que especificar cunta capacidad de solicitud necesita. DynamoDB asigna recursos especficos a su tabla a fin de satisfacer sus necesidades de rendimiento y, de forma automtica, realiza las particiones de los datos entre un nmero suficiente de servidores como para cubrir la capacidad de solicitud que necesita. Si cambian sus necesidades de rendimiento, simplemente tiene

7 que actualizar la capacidad de solicitud de la tabla mediante AWS Management Console o con las API de Amazon DynamoDB. Adems, puede continuar alcanzando sus niveles de rendimiento anteriores mientras el proceso de escalabilidad est en curso.

Escalabilidad automtica de almacenamiento No existe ningn lmite para la cantidad de datos que puede almacenar en una tabla de DynamoDB. Adems, el servicio asigna automticamente ms almacenamiento a medida que almacena ms datos mediante la utilizacin de las API de escritura de DynamoDB.

Arquitectura no compartida y totalmente distribuida Amazon DynamoDB realiza la escalabilidad de forma horizontal y puede escalar perfectamente una nica tabla en cientos de servidores. Rendimiento rpido y predecible El promedio de latencias de servicio de Amazon DynamoDB suele ser de milisegundos de un solo dgito. El servicio se ejecuta en unidades de estado slido y est pensado para mantener latencias siempre rpidas a cualquier escala. Administracin sencilla Amazon DynamoDB es un servicio totalmente gestionado; solo tiene que crear una base de datos y el servicio se encargar del resto. No tiene que preocuparse por el aprovisionamiento del hardware o del software, ni por la configuracin y la instalacin, las revisiones del software, el funcionamiento de un clster de base de datos distribuido y fiable, o la particin de los datos entre varias instancias a medida que se ejecuta el proceso de escalabilidad. Tolerancia a fallos integrada Amazon DynamoDB dispone de la funcin integrada de tolerancia a fallos, de forma que replica los datos de manera automtica y sincronizada entre tres zonas de disponibilidad de una regin a fin de ofrecer un alto nivel de disponibilidad y para ayudar a proteger sus datos frente a fallos de la mquina individual o incluso de la instalacin.

8 Flexible Amazon DynamoDB no tiene una estructura fija. En su lugar, cada elemento de datos puede tener un nmero distinto de atributos. La existencia de varios tipos de datos (cadenas, nmeros, datos binarios y conjuntos) aporta riqueza al modelo de datos.

Coherencia alta y contadores atmicos A diferencia de muchas bases de datos no relacionales, Amazon DynamoDB hace del desarrollo una tarea sencilla, ya que le permite realizar lecturas de coherencia alta a fin de garantizar que se lean los valores ms actualizados. Amazon DynamoDB admite varios tipos de datos nativos (nmeros, cadenas, datos binarios y atributos de varios valores). Este servicio tambin admite de forma nativa los contadores atmicos, de forma que le permite aumentar o reducir automticamente los atributos numricos con una nica solicitud a la API.

Rentable Amazon DynamoDB es una solucin diseada para ofrecer la mxima rentabilidad para las cargas de trabajo de cualquier escala. Puede empezar con un nivel gratuito que permite realizar ms de 40 millones de operaciones al mes en la base de datos; solo tendr que pagar tarifas reducidas contabilizadas por horas por los recursos que consuma por encima de dicho lmite. Gracias a una administracin sencilla y a un precio de solicitud rentable, DynamoDB puede ofrecer un coste total de propiedad significativamente ms reducido para su carga de trabajo con respecto al coste que le supone gestionar una base de datos relacional o no relacional por su propia cuenta. Seguro Amazon DynamoDB utiliza mtodos criptogrficos probados para autenticar a los usuarios y prevenir el acceso no autorizado a los datos. Tambin se integra con AWS Identity and Access Management (IAM) a fin de ofrecer un control de acceso personalizado para los usuarios dentro de su organizacin. Supervisin integrada Amazon DynamoDB muestra mtricas operativas clave sobre su tabla en AWS Management Console. El servicio tambin se integra con Amazon CloudWatch a fin de que pueda ver la latencia y el rendimiento de solicitud de cada tabla de Amazon

9 DynamoDB, as como para que pueda realizar un seguimiento del consumo de los recursos de forma sencilla. Integracin de Elastic MapReduce Amazon DynamoDB tambin se integra con Amazon Elastic MapReduce (Amazon EMR). Amazon EMR permite a las empresas realizar anlisis complejos de sus grandes conjuntos de datos mediante la utilizacin de un marco Hadoop alojado en AWS de pago segn consumo. Gracias al lanzamiento de Amazon DynamoDB, para los clientes resulta fcil utilizar Amazon EMR para analizar conjuntos de datos almacenados en DynamoDB y archivar los resultados en Amazon Simple Storage Service (Amazon S3), mientras mantiene el conjunto de datos original intacto en DynamoDB. Las empresas tambin pueden utilizar Amazon EMR para acceder a los datos de varias ubicaciones (por ejemplo, Amazon DynamoDB, Amazon RDS y Amazon S3), realizar anlisis complejos de este conjunto de datos combinados y almacenar los resultados de este proceso en Amazon S3.

Integracin de Amazon Elastic MapReduce Amazon DynamoDB tambin se integra con Amazon Elastic MapReduce (Amazon EMR). Amazon EMR tambin permite a las empresas realizar anlisis complejos sobre grandes conjuntos de datos mediante la utilizacin de un marco Hadoop alojado en AWS de pago segn consumo. A continuacin, se describen algunas de las formas en que puede utilizarse EMR con DynamoDB: 1. Los clientes pueden analizar los datos almacenados en DynamoDB con EMR y almacenar los resultados del anlisis en S3, dejando los datos originales en DynamoDB. Por ejemplo, si utiliza Amazon DynamoDB para almacenar los pedidos de los clientes, puede crear una nueva tabla de pedidos cada mes y, con la funcin de consulta de varias tablas de EMR, puede unir diferentes tablas en DynamoDB para responder a preguntas tales como "Cules son los pedidos realizados por un cliente concreto en los ltimos 3 meses?". A continuacin, puede utilizar EMR para almacenar los resultados de estas preguntas en S3 para consultas posteriores, mientras conserva los datos en tablas intactas de pedidos mensuales de clientes en DynamoDB.

10 2. Los clientes pueden realizar una copia de seguridad de los datos en S3 desde DynamoDB con la utilizacin de EMR. Remitindonos al ejemplo anterior de los pedidos de los clientes, cuando deje de escribir datos en una tabla de pedidos mensuales, puede realizar una copia de seguridad de dicha tabla en S3 y eliminarla de DynamoDB para beneficiarse del coste de almacenamiento ms reducido que ofrece S3. Los datos almacenados en S3 podrn consultarse con facilidad para realizar anlisis, tal como se describe a continuacin. 3. Los clientes tambin pueden utilizar Amazon EMR para acceder a los datos de varias ubicaciones (por ejemplo, Amazon DynamoDB, Amazon RDS y Amazon S3), realizar anlisis complejos de este conjunto de datos combinados y almacenar los resultados de este proceso en Amazon S3. Por ejemplo, si utiliza Amazon DynamoDB para almacenar pedidos de clientes, puede crear una nueva tabla de pedidos cada mes y, al final de cada mes, archivar los pedidos con una antigedad de 6 meses en Amazon S3 mediante la utilizacin de Amazon EMR. Esto le permite archivar en Amazon S3 los pedidos a los que no suele acceder para reducir gastos y conservar en DynamoDB solo aquellos pedidos a los que accede con frecuencia. Puede utilizar EMR para realizar anlisis de los pedidos actuales almacenados en DynamoDB y de las tablas de pedidos archivados almacenadas en Amazon S3 para responder a preguntas tales como: "Cuntos pedidos del widget X ha realizado el cliente Y en los ltimos 48 meses?". Cundo debera usar DynamoDB? Las aplicaciones web de hoy en da generan y consumen grandes volmenes de datos. Por ejemplo, un juego en lnea podra comenzar solo con unos miles de usuarios y poca carga de trabajo en la base de datos de 10 escrituras por segundo y 50 lecturas por segundo. No obstante, si el juego tiene xito, puede pasar a tener millones de usuarios y generar decenas (o incluso centenares) de miles de escrituras y lecturas por segundo. Incluso puede llegar a generar terabytes de datos al da. Desarrollar aplicaciones con Amazon DynamoDB le permite partir desde lo bsico y sencillamente ir reclamando capacidad de solicitud para una tabla a medida que escalan sus

11 necesidades, sin necesidad de que existan tiempos de inactividad ni sin tener que escribir ni cambiar ni una sola lnea de cdigo. Amazon DynamoDB ofrece una experiencia totalmente gestionada a cualquier escala. Aunque Amazon DynamoDB aborda todos los problemas principales relacionados con la escalabilidad, la gestin, el rendimiento y la fiabilidad de la base de datos, no es una base de datos relacional y, por tanto, no admite consultas relacionales (como, por ejemplo, uniones) ni transacciones complejas. Por tanto, si su carga de trabajo precisa de esta funcin o si busca compatibilidad con un motor relacional existente, pruebe Amazon Relational Database Service (RDS). Tambin puede ejecutar su propia base de datos relacional en Amazon EC2. Aunque los motores de bases de datos relacionales ofrecen caractersticas y funciones enriquecidas, las cargas de trabajo que precisan de escalabilidad pueden requerir que gestione las particiones y las reparticiones de los datos entre varias instancias. Esta puede resultar una tarea complicada. Por tanto, si prev necesidades significativas en trminos de ajuste de escala para su nueva aplicacin y no precisa de caractersticas relacionales, Amazon DynamoDB ser la mejor opcin. En qu se diferencia Amazon DynamoDB de Amazon SimpleDB? Cul de estos servicios debo utilizar? Ambos servicios se corresponden con bases de datos no relacionales que suprimen el trabajo que conlleva la administracin de una base de datos. El objetivo de Amazon DynamoDB consiste en ofrecer una escalabilidad perfecta, as como un rendimiento rpido y predecible. Amazon DynamoDB gestiona automticamente la distribucin de los datos y de la carga de trabajo entre un nmero suficiente de servidores como para satisfacer sus necesidades en trminos de escalabilidad. No existe ningn lmite en cuanto a la cantidad de datos que puede almacenar en una tabla de Amazon DynamoDB y, adems, puede aumentar su capacidad de solicitud al nivel que necesite. Por otra parte, Amazon SimpleDB es una buena opcin para cargas de trabajo de menor escala que precisan de flexibilidad en las consultas. Amazon SimpleDB indiza automticamente todos los atributos de los elementos y admite funciones de consultas ms amplias que Amazon DynamoDB. No obstante, en Amazon SimpleDB, una tabla tiene un lmite de tamao de 10 GB y, adems, est limitada en la capacidad de solicitud que puede conseguir. Si necesita escalabilidad adicional, puede realizar particiones

12 manuales de los datos entre tablas adicionales de SimpleDB. En la entrada del blog sobre DynamoDB del director de tecnologa de Amazon, Werner Vogels, se expone un contexto adicional acerca de la evolucin de la tecnologa de las bases de datos no relacionales en Amazon.

Forma de Pago en Amazon DynamoDB Cada tabla de AmazonDynamoDB tiene un rendimiento de escritura y de escritura previsto asociado con ella, hay que tener en cuenta que la capacidad de rendimiento para su tabla se le cobrar por horas, esto luego de que exceda la capa gratuita del servicio, independientemente de que enve o no solicitudes a dicha tabla. Por ejemplo: Si crea una tabla y solicita 10 unidades de capacidad de escritura y 200 unidades de capacidad de lectura en trminos de rendimiento previsto, se le cargarn las siguientes cantidades: 0,01 USD + (4 x 0,01 USD) = 0,05 USD por hora Si necesita cambiar el rendimiento y ha aumentado su necesidad de reserva de rendimiento a 10.000 unidades de capacidad de escritura y a 50.000 unidades de capacidad de lectura, se le cargar lo siguiente: (1.000 x 0,01 USD) + (1.000 x 0,01 USD) = 20 USD/hora Tambien se acota que si se desea cambiar la capacidad de rendimiento previsto de las tablas, se puede hacer por medio del AWS Management Console o de la API UpdateTable; adems, Amazon DynamoDB cobra tambin por almacenamiento de datos indizados, as como la tarifa de transferencia de datos estndar de Internet.

13

Conclusin El motor de base de datos Amazon DynamoDB es una posibilidad bastante accesible en el manejo de bases de datos sin embargo es un modelo que esta aun en pleno desarrollo y no se explica bien el posible alcance o las limitacin que puede tener a la hora de ser compatible con mltiples plataformas ya sea de programacin o reportera, adems un pas como Costa Rica no est preparado para hacer una implementacin de una base de datos de este tipo ya que no cuenta con la infraestructura a nivel de telecomunicaciones como para dar un soporte de alta disponibilidad as como no cuenta con un personal capacitado en esta plataforma como para poder dar mantenimiento o implementar una solucin de este tipo.

Potrebbero piacerti anche