Amazon SimpleDB es un almacén de datos no relacionales de alta disponibilidad y flexible que descarga el trabajo de administración de bases de datos. Los desarrolladores simplemente almacenan elementos de datos y los consultan mediante solicitudes de servicios Web; Amazon SimpleDB se encarga del resto.
Sin las limitaciones impuestas por las bases de datos relacionales, Amazon SimpleDB está optimizado para ofrecer alta disponibilidad y flexibilidad con poca o ninguna carga administrativa. La labor de Amazon SimpleDB pasa inadvertida: se encarga de crear y gestionar varias réplicas de sus datos y las distribuye geográficamente para permitir alta disponibilidad y capacidad de duración. El servicio sólo le cobra los recursos realmente consumidos en almacenamiento de los datos y en distribución de las solicitudes. Es posible cambiar el modelo de datos sobre la marcha, y el sistema indexa los datos automáticamente por usted. Con Amazon SimpleDB, usted podrá centrarse en el desarrollo de aplicaciones sin preocuparse por las infraestructuras, la alta disponibilidad, el mantenimiento del software, la gestión de esquemas e índices, o el ajuste de las prestaciones.
Amazon SimpleDB ofrece una interfaz de servicios Web simple para crear y almacenar varios conjuntos de datos, consultar fácilmente los datos y obtener los resultados de dichas consultas. Los datos se indexan automáticamente, de forma que es fácil y rápido encontrar la información necesaria. No es necesario predefinir ni cambiar esquemas si se añaden datos posteriormente. Y la ampliación es muy sencilla; basta con crear nuevos dominios en lugar de construir nuevos servidores.
Para utilizar Amazon SimpleDB:
Poca intervención – El servicio le permite centrarse completamente en el desarrollo de aplicaciones que añadan valor, en lugar de dedicar mucho tiempo a arduas tareas de administración de bases de datos. Amazon SimpleDB gestiona automáticamente el suministro de la infraestructura, el mantenimiento del hardware y del software, la duplicación e indexación de elementos de datos y el ajuste del rendimiento.
Alta disponibilidad – Amazon SimpleDB crea automáticamente varias copias de cada elemento almacenado y las distribuye geográficamente. De esta forma se ofrece alta disponibilidad y capacidad de duración: en el caso improbable de que falle una réplica, Amazon SimpleDB puede recuperarse utilizando otra réplica del sistema.
Flexibilidad – A medida que cambie su negocio o evolucione la aplicación, podrá reflejar dichos cambios fácilmente en Amazon SimpleDB sin necesidad de preocuparse por si rompe un esquema rígido o necesita refactorizar código; basta con añadir otro atributo a su conjunto de datos en Amazon SimpleDB cuando lo necesite. También puede elegir entre solicitudes de lectura coherentes o finalmente coherentes, que le permiten ajustar los requisitos de rendimiento de lectura (latencia y rendimiento) y de coherencia con las demandas de la aplicación, o incluso diferenciar partes de la aplicación.
Facilidad de uso – Amazon SimpleDB racionaliza el acceso a las funciones de almacenamiento y consultas que suelen llevarse a cabo utilizando una agrupación de bases de datos relacionales, al tiempo que excluye otras operaciones de bases de datos que son complejas y que muchas veces ni se utilizan. El servicio permitirá agregar datos con rapidez y recuperar o editar fácilmente datos mediante un sencillo juego de llamadas a la API.
Diseñada para utilizar con otros servicios de Amazon Web Services – Amazon SimpleDB está diseñada para integrarse fácilmente con otros servicios de AWS como Amazon S3 y EC2, lo que aporta la infraestructura para la creación de aplicaciones a escala web. Por ejemplo, los desarrolladores pueden ejecutar sus aplicaciones en Amazon EC2 y almacenar sus objetos de datos en Amazon S3. Con este planteamiento, es posible utilizar Amazon SimpleDB para consultar los metadatos de los objetos desde dentro de la aplicación en Amazon EC2 y devolver punteros dirigidos a los objetos almacenados en Amazon S3. Los desarrolladores también pueden utilizar Amazon SimpleDB con Amazon RDS para las aplicaciones que necesiten bases de datos tanto relacionales como no relacionales. La transferencia de datos entre Amazon SimpleDB y otros servicios de Amazon Web Services situados en la misma región es gratuita.
Seguridad – Amazon SimpleDB ofrece un punto final https para garantizar la seguridad y la encriptación de la comunicación entre la aplicación o cliente y el dominio. Además, mediante la integración con AWS Identity and Access Management, podrá controlar el acceso a determinados dominios y operaciones de SimpleDB a nivel de usuarios o de grupos.
Economía – Amazon SimpleDB repercute sobre usted las ventajas financieras derivadas de las dimensiones de Amazon. Usted paga únicamente los recursos que utiliza. En el caso de Amazon SimpleDB, esto significa que las operaciones de lectura y escritura de datos se facturan en función de los recursos informáticos que consume cada operación, y que no se le facturan recursos informáticos cuando no los está utilizando de forma activa (por ejemplo, la realización de solicitudes).
Pague solo por lo que utilice. Sin cuota mínima. Calcule su factura mensual con la "sencilla calculadora mensual" de AWS. Los precios listados se basan en la región en la que hayan establecido sus dominios de Amazon SimpleDB.
Amazon SimpleDB mide la utilización de la máquina para cada solicitud y facturará de acuerdo con la cantidad de capacidad de máquina utilizada para completar la solicitud en cuestión (SELECCIONAR, OBTENER, PONER, etc.), normalizada según la capacidad por hora de un procesador Xeon de 1,7 GHz aproximadamente del año 2007. Consulte más abajo": si desea obtener una descripción más detallada del modo en que se calculan los precios por la utilización de la máquina.
La transferencia de datos “entrante” y “saliente” se refiere a una transferencia que entra o sale de Amazon SimpleDB. No habrá un cargo adicional por los datos transferidos entre Amazon SimpleDB y otros servicios de Amazon Web Services dentro de la misma región (es decir, 0,00 $ por GB). Los datos transferidos entre regiones (por ejemplo, entre Amazon SimpleDB en la región UE (Irlanda) y Amazon EC2 en la región EE.UU. Este (Norte de Virginia)), se cobrarán según las tarifas de Transferencia de datos por Internet en ambos lados de la transferencia.
* Su uso gratuito se calculará cada mes por todas las regiones y se aplicará de forma automática a su factura; el uso gratuito no se acumula. ** Como parte de la capa de uso gratuito de AWS, los clientes nuevos de AWS recibirán cada mes 15 GB gratuitas de transferencia de datos saliente en conjunto por todos los servicios de AWS durante un año.*** Las capas de precio de transferencia saliente de datos suman las transferencias salientes de datos en Amazon EC2, Amazon EBS, Amazon S3, Amazon Glacier, Amazon RDS, Amazon SimpleDB, Amazon SQS, Amazon SNS, Amazon DynamoDB, AWS Storage Gateway y Amazon VPC.Amazon SimpleDB mide el tamaño de sus datos facturables al añadir al tamaño inicial de los datos que suba 45 bytes de gastos generales por cada elemento, nombre de atributo y par de atributo-valor.
Amazon SimpleDB está diseñado para almacenar cantidades relativamente pequeñas de datos y se encuentra optimizado para permitir el acceso rápido a los datos y la flexibilidad en la expresión de éstos. Para poder minimizar sus costes por todos los servicios AWS, deberían almacenarse los objetos o archivos grandes en Amazon S3, mientras que los indicadores y los metadatos asociados a dichos archivos podrán almacenarse en Amazon SimpleDB. Esto le permitirá buscar y acceder con rapidez a sus archivos, a la vez que minimizar los gastos generales de almacenamiento. "Haga clic aquí": para obtener una explicación detallada de en qué difieren el almacenamiento en Amazon SimpleDB y el almacenamiento en Amazon S3 y para ver una descripción más detallada del cálculo de sus "Costes de almacenamiento".
*Cualquier dato almacenado como parte del programa de capa gratuita deberá usarse de forma activa. Si durante un período de 6 meses no se accede a un dominio, podrá ser retirado, a discreción de Amazon Web Services.
(Amazon Web Services, Inc. distribuye las licencias de Amazon SimpleDB)
| Recursos para desarrolladores |
El modelo de datos utilizado por Amazon SimpleDB facilita el almacenamiento, la gestión y la consulta de los datos estructurados. Los desarrolladores organizan sus conjuntos de datos en dominios, y pueden realizar consultas en todos los datos almacenados en un dominio concreto. Los dominios son colecciones de artículos descritos mediante pares atributo-valor.
Piense en estos términos como análogos a conceptos de la tabla de una hoja de cálculo tradicional. Tomemos como ejemplo los detalles de la base de datos de gestión de clientes que se muestra en la tabla siguiente y pensemos cómo se representarían en Amazon SimpleDB. La tabla entera constituiría un dominio denominado “clientes”. Los clientes individuales serían filas de la tabla o elementos del dominio. La información de contacto se describiría en los encabezados de columna (atributos). Cada valor ocupa su propia celda. Ahora, imagine que estos registros corresponden a nuevos clientes que desea añadir al dominio.
| ID_Cliente | Nombre | Apellido | Dirección postal | Ciudad | Estado | CP | Teléfono | |
| 123 | Bob | Smith | 123 Main St | Springfield | MO | 65801 | 222-333-4444 | |
| 456 | James | Johnson | 456 Front St | Seattle | WA | 98104 | 333-444-5555 |
En Amazon SimpleDB, para añadir estos dos registros, necesitaría colocar (PUT) las ID_Cliente en el dominio, junto con los pares atributo-valor correspondientes a cada cliente. Sin la sintaxis específica, se parecería a lo siguiente:
PUT (elemento, 123), (Nombre, Bob), (Apellido, Smith), (Dirección, 123 Main St.), (Ciudad, Springfield), (Estado, MO), (Código, 65801), (Teléfono, 222-333-4444) PUT (elemento, 456), (Nombre, James), (Apellido, Johnson), (Dirección, 456 Front St.), (Ciudad, Seattle), (Estado, WA), (Código, 98104), (Teléfono, 333-444-5555)
Amazon SimpleDB se diferencia en cuestiones importantes de las tablas de las bases de datos tradicionales. Dispone de la flexibilidad de volver en otro momento y añadir atributos que sólo se apliquen a determinados registros. Por ejemplo, imagine que empieza a capturar direcciones de correo electrónico de clientes para permitir las alertas en tiempo real relativas al estado de los pedidos. En lugar de tener que volver a construir la tabla "clientes", volver a escribir las consultas, volver a construir los índices, etcétera, bastaría con añadir al dominio "clientes" ya existente los registros nuevos y los atributos adicionales. El dominio resultante podría tener este aspecto, más o menos:
| ID_Cliente | Nombre | Apellido | Dirección postal | Ciudad | Estado | CP | Teléfono | Correo electrónico | |
| 123 | Bob | Smith | 123 Main St | Springfield | MO | 65801 | 222-333-4444 | ||
| 456 | James | Johnson | 456 Front St | Seattle | WA | 98104 | 333-444-5555 | ||
| 789 | Deborah | Thomas | 789 Garfield | New York | NY | 10001 | 444-555-6666 | dthomas@xyz.com |
Amazon SimpleDB incluye unas cuantas llamadas a API sencillas que implementan la escritura, la indexación y la consulta de datos. La interfaz y el conjunto de funciones se centran a propósito en las funciones principales, con lo que proporciona una API básica en la que los desarrolladores pueden basarse y gracias a la cual resulta fácil y sencillo aprender y utilizar el servicio.
Nota: Amazon SimpleDB se ha integrado con AWS Identity and Access Management para facultar el control minucioso de los recursos de Amazon SimpleDB. Mediante la integración con AWS Identity and Access Management, una cuenta de AWS que inicie sesión para utilizar SimpleDB puede crear varios usuarios. A su vez, estos usuarios pueden recibir permisos a nivel de API para acceder a los dominios de SimpleDB que sean propiedad de dicha cuenta de AWS. Consulte la página de detalles de AWS Identity and Access Management si desea más información.
Amazon SimpleDB almacena varias réplicas geográficamente distribuidas de cada dominio para aumentar la disponibilidad y la durabilidad de los datos. Una operación de escritura satisfactoria (utilizando PutAttributes, BatchPutAttributes, DeleteAttributes, CreateDomain o DeleteDomain) significa que todas las copias del dominio persistirán de forma duradera. Amazon SimpleDB ofrece dos opciones de coherencia de lectura: lecturas finalmente coherentes y lecturas coherentes.
De forma predeterminada, GetAttributes y Select realizan una lectura finalmente coherente. Puesto que una lectura coherente puede implicar una latencia más alta y un menor rendimiento de lectura, es mejor utilizarla solo cuando un escenario de aplicación indica que una operación de lectura necesita obligatoriamente leer todas las grabaciones que han recibido una respuesta correcta antes de dicha lectura. Para los demás escenarios, la lectura predeterminada finalmente coherente ofrecerá el mejor rendimiento. También debe tener en cuenta que Amazon SimpleDB le permite especificar valores de coherencia para cada solicitud de lectura individual, de modo que la misma aplicación puede tener distintas partes con diferentes valores de coherencia.
Amazon SimpleDB no es una base de datos relacional y sacrifica las transacciones y relaciones completas (por ejemplo, uniones) para ofrecer características únicas de funcionalidad y rendimiento. Sin embargo, Amazon SimpleDB sí que ofrece semántica transaccional como, por ejemplo:
Las operaciones put y delete condicionales se exponen mediante las API PutAttributes y DeleteAttributes, especificando una condición opcional con un valor esperado. Por ejemplo, en el caso de una aplicación que reserve asientos o venda entradas para un espectáculo, puede permitir una compra (es decir, una actualización de grabación) únicamente si el asiento especificado está disponible (la condición opcional). Esta semántica también se puede utilizar para implementar funciones como contadores, que solo insertan un elemento si no existe, y control optimista de simultaneidad (OCC). Una aplicación puede implementar OCC manteniendo un atributo de número de versión (o una indicación de fecha y hora) como parte de un elemento y realizando una operación put/delete condicional basada en el valor de este número de versión.
Si desea más información acerca de la semántica de transacciones o de la coherencia con Amazon SimpleDB, consulte el Guía del desarrollador o Documento técnico de mejoras en la coherencia de Amazon SimpleDB.
Amazon Web Services ofrece a los desarrolladores diversas alternativas de base de datos. Puede ejecutar servicios relacionales y NoSQL totalmente gestionados o manejar su propia base de datos en la nube en Amazon EC2 y Amazon EBS.
Amazon RDS le ofrece la posibilidad de ejecutar una completa base de datos relacional y le libera de la tarea de administrar la base de datos. Amazon DynamoDB es un servicio de base de datos NoSQL totalmente gestionado, que proporciona un rendimiento extraordinariamente rápido y predecible con escalabilidad perfecta. Amazon SimpleDB proporciona un servicio no relacional diseñado para conjuntos de datos más pequeños. Al usar una de las muchas AMI de Amazon EC2 y Amazon EBS, obtiene un control completo de la base de datos sin la carga de tener que proporcionar e instalar hardware.
Existen importantes diferencias entre estas alternativas que podrían hacer que una de ellas fuera más adecuada que otra para su caso práctico.
Visite la página Ejecución de bases de datos en AWS para obtener más información detallada sobre las diversas alternativas de base de datos que tiene para sus aplicaciones.
A diferencia de Amazon S3, Amazon SimpleDB no almacena datos sin procesar. Lo que hace es recibir los datos como una entrada y expandirlos para generar varios índices, lo que permite realizar consultas rápidas de los datos en cuestión. Además, Amazon S3 y Amazon SimpleDB utilizan tipos diferentes de almacenamiento físico. Amazon S3 utiliza unidades de almacenamiento denso optimizadas para almacenar objetos de gran tamaño a bajo coste. Amazon SimpleDB almacena bits de datos de menor tamaño y utiliza unidades menos densas optimizadas para obtener la máxima velocidad de acceso a los datos.
A fin de optimizar los costes de los servicios de AWS, los objetos o archivos de gran tamaño se deberían almacenar en Amazon S3, mientras que los elementos de datos de menor tamaño o punteros a archivos (posiblemente a objetos de Amazon S3) se deberían guardar en Amazon SimpleDB. Debido a la estrecha integración entre servicios y a la transferencia de datos gratuita en el entorno de AWS, los proveedores pueden beneficiarse de las ventajas en cuanto a velocidad y a consulta de Amazon SimpleDB, así como del bajo coste de almacenar datos en Amazon S3, si integran ambos servicios en sus aplicaciones.
Actualmente, los dominios individuales de Amazon SimpleDB pueden tener un máximo de 10 GB cada uno. Si los datos ocupan más de 10 GB, puede aprovechar la ventaja que ofrece la arquitectura ampliable de Amazon SimpleDB y distribuir los datos entre varios dominios. Puesto que Amazon SimpleDB está diseñado pensando en el paralelismo, la distribución de los datos entre más dominios aumentará también el potencial de rendimiento de grabación y lectura. Al principio, se le asignará un máximo de 250 dominios; si necesita más dominios, rellene este formulario.
Si desea más información de cuántos desarrolladores se benefician de utilizar Amazon SimpleDB de forma conjunta con Amazon S3, haga clic aquí.
Con Amazon SimpleDB, el mejor método para prever el tamaño del almacenamiento de datos estructurados es el siguiente:
Tamaño en bytes brutos (GB) de todos los ID de elemento + 45 bytes por elemento + Tamaño en bytes brutos (GB) de todos los nombres de atributo + 45 bytes por nombre de atributo + Tamaño en bytes brutos (GB) de todos los pares atributo-valor + 45 bytes por par atributo-valor
Para calcular el coste de almacenamiento mensual estimado de la región EE.UU. Este (Norte de Virginia) o EE.UU. Oeste (Oregón), tome el tamaño resultante en GB y multiplíquelo por 0,25 USD. En el caso de la región UE (Irlanda), la región Asia Pacífico (Singapur), la región Asia Pacífico (Sídney) o la región EE.UU. Oeste (Norte de California), tome el tamaño resultante en GB y multiplíquelo por 0,275 USD. Para la región Asia Pacífico (Tokio), tome el tamaño resultante en GB y multiplíquelo por 0,29 USD. Para la región de América del Sur (São Paulo), tome el tamaño resultante en GB y multiplíquelo por 0,34 USD.
Amazon SimpleDB mide la utilización de la máquina para cada solicitud y facturará de acuerdo con la cantidad de capacidad de máquina utilizada para completar la solicitud en cuestión (SELECCIONAR, OBTENER, PONER, etc.), normalizada según la capacidad por hora de un procesador Xeon de 1,7 GHz aproximadamente del año 2007. La utilización de máquina depende de la cantidad de datos (número de atributos, longitud de los mismos) procesados por cada solicitud. Una operación GET que recupera 256 atributos utilizará más recursos que una operación GET que solo recupere 1 atributo. Una operación SELECT con varios predicados que examine 100.000 atributos costará más que una consulta de un único predicado que examine 250.
En el mensaje de respuesta de cada solicitud, Amazon SimpleDB devuelve un campo llamado Box Usage. Box Usage es la medida de los recursos de máquina consumidos por cada solicitud. No incluye ancho de banda ni almacenamiento. Box Usage se muestra como la parte de una hora de máquina utilizada para completar una determinada solicitud. En la región EE.UU. Este (Norte de Virginia) y EE.UU. Oeste (Oregón), el coste de una solicitud es el valor de Box Usage (expresado en horas) * 0,14 USD por hora de equipo de Amazon SimpleDB. El coste de todas las solicitudes es la suma de Box Usage (expresada en horas) * 0,14 $.
Por ejemplo, si a lo largo de un mes la suma de Box Usage de las solicitudes utiliza el equivalente a un procesador Xeon de 1,7 GHz durante 9 horas, su cargo será:
9 horas * 0,14¬USD por hora de máquina de Amazon SimpleDB = 1,26 $.
Si sus dominios de consulta se encuentran en la región UE (Irlanda), la región Asia Pacífico (Singapur), la región Asia Pacífico (Sídney) o la región EE.UU. Oeste (Norte de California), las horas de máquina de Amazon SimpleDB se calcularán a un precio de 0,154¬USD por hora de máquina. Si sus dominios de consulta se encuentran en la región Asia Pacífico (Tokio), las horas de máquina de Amazon SimpleDB se calcularán a un precio de 0,162¬USD por hora de máquina. Si sus dominios de consulta se encuentran en la región América del Sur (Sao Paulo), las horas de máquina de Amazon SimpleDB se calcularán a un precio de 0,19¬USD por hora de máquina. Todos los cálculos de coste deben ajustarse para que reflejen los precios de la región correspondiente.
La mejor manera de entender Amazon SimpleDB es consultar la Guía de primeros pasos, parte de nuestra Documentación técnica. En un plazo de unos minutos, podrá crear su propio dominio y comenzar a construir su índice.
El uso que realice de este servicio está sujeto al Contrato de cliente de Amazon Web Services