O Amazon SimpleDB é um armazenamento de dados altamente disponível, flexível e não relacional que minimiza o trabalho da administração do banco de dados. Os desenvolvedores simplesmente armazenam e consultam itens de dados por meio de solicitações de serviços da Web e o Amazon SimpleDB faz o restante.
Desvinculado pelos requisitos exigentes de um banco de dados relacional, o Amazon SimpleDB foi otimizado para fornecer alta disponibilidade, flexibilidade e facilidade de escalabilidade com pouca ou nenhuma carga administrativa. Nos bastidores, o Amazon SimpleDB cria e gerencia várias réplicas distribuídas geograficamente dos seus dados de forma automática para permitir a alta disponibilidade e a durabilidade dos dados. O serviço cobra somente pelos recursos realmente consumidos no armazenamento dos dados e no atendimento das solicitações. Você pode alterar o modelo de dados durante o processo e os dados serão automaticamente indexados. Com o Amazon SimpleDB, você pode se concentrar no desenvolvimento de aplicativos sem se preocupar com o provisionamento da infraestrutura, alta disponibilidade, manutenção do software, gerenciamento de esquemas e de índices, ou adequação do desempenho.
O Amazon SimpleDB fornece uma interface simples de serviços web para criar e armazenar dados múltiplos, consultar seus dados facilmente e retornar os resultados. Seus dados são posicionados automaticamente, tornando mais fácil localizar rapidamente as informações de que você precisa. Não há nenhuma necessidade de pré-definir um esquema ou alterar um esquema se novos dados serão adicionados mais tarde. E redimensionar é tão simples quanto criar novos domínios, em vez de construir novos servidores.
É facil utilizar o Amazon SimpleDB:
Low touch – O serviço permite que você se concentre totalmente no desenvolvimento de aplicativos de valor agregado, em vez de em árdua e demorada administração de banco de dados. O Amazon SimpleDB gerencia automaticamente o provisionamento de infraestrutura, a manutenção de hardware e de software, a replicação e a indexação de itens de dados e o ajuste do desempenho.
Altamente disponível – O Amazon SimpleDB automaticamente cria várias cópias geograficamente distribuídas de cada item de dados que você armazena. Isso fornece alta disponibilidade e durabilidade – no caso improvável de que uma Réplica falhe, o Amazon SimpleDB pode fazer um failover para outra Réplica no sistema.
Flexível – À medida que seu aplicativo muda ou que seus negócios evoluem, você pode facilmente fazer essas mudanças se refletirem no Amazon SimpleDB sem se preocupar em quebrar um schema rígido ou a necessidade de refatorar código – basta adicionar outro atributo ao conjunto de dados do Amazon SimpleDB quando necessário. Você também pode escolher entre solicitações de leitura coerentesou eventualmente coerentes, ganhando flexibilidade para ajustar as exigências de desempenho de leitura (latência e taxa de transferência) e as exigências de coerência com as demandas do seu aplicativo, ou até mesmo demandas das diferentes partes de seu aplicativo.
Simples de usar – O Amazon SimpleDB fornece acesso simplificado para as funções de armazenamento e consulta que tradicionalmente são obtidas usando um cluster de banco de dados relacional – deixando outras operações de banco de dados complexos, muitas vezes não utilizadas. O serviço permite que você adicione dados rapidamente e facilmente recupere ou edite esses dados através de um simples conjunto de chamadas de API.
Projetado para uso com outros Amazon Web Services O Amazon SimpleDB foi projetado para integrar-se facilmente com outros serviços AWS, como o Amazon S3 e o EC2, oferecendo a infraestrutura para a criação de aplicativos em escala web. Por exemplo, os desenvolvedores podem executar seus aplicativos no Amazon EC2 e armazenar seus objetos de dados no Amazon S3. O Amazon SimpleDB pode então ser usado para consultar os metadata do objeto de dentro do aplicativo no Amazon EC2 e retornar ponteiros para os objetos armazenados no Amazon S3. Os desenvolvedores também podem usar o Amazon SimpleDB com o Amazon RDS para aplicativos que têm necessidades de banco de dados relacionais e não relacionais. Os dados transferidos entre o Amazon SimpleDB e outros Amazon Web Services dentro da mesma região são gratuitos.
Seguro – O Amazon SimpleDB fornece um ponto de extremidade https para garantir uma comunicação segura e criptografada entre o seu aplicativo ou cliente e o seu domínio. Além disso, através da integração com o AWS Identity and Access Management, você pode estabelecer o controle em nível de usuário ou de grupo sobre o acesso a determinadas operações e domínios SimpleDB.
Econômico – O Amazon SimpleDB repassa para você os benefícios financeiros do dimensionamento da Amazon. Pague somente pelos recursos que você de fato utilizar. Para o Amazon SimpleDB, isso significa que as leituras e gravações de armazenamento de dados são cobradas por recursos computacionais utilizados por cada operação e você não é cobrado por recursos de computação quando você não os estiver usando ativamente (ou seja, fazendo solicitações).
Pague somente pelo que usar. Não há tarifa mínima. Estime sua fatura mensal usando a Calculadora Mensal da AWS . Os preços listados são baseados na Região na qual você estabelece o(s) domínio(s) do Amazon SimpleDB.
O Amazon SimpleDB mede a utilização da máquina de cada solicitação e cobra com base na quantidade da capacidade da máquina usada para concluir a solicitação específica (SELECT, GET, PUT etc.), normalizada para a capacidade horária de aproximadamente um processador Xeon 2007 1,7 GHz. Veja abaixo para obter uma descrição mais detalhada de como os encargos de utilização da máquina são calculados.
A transferência de dados "para" e "do" referem-se a para e do Amazon SimpleDB. Não há encargo adicional para dados transferidos entre o Amazon SimpleDB e outras Amazon Web Services dentro da mesma Região (ou seja, US$ 0,00 por GB). Os dados transferidos nas Regiões (por ex., entre o Amazon SimpleDB na Região UE (Irlanda) e o Amazon EC2 na Região Leste dos EUA (Norte da Virgínia), serão cobrados de acordo com as tarifas de Transferência de dados via Internet em ambos os lados da transferência.
* O uso gratuito é calculado por mês em todas as regiões e aplicado automaticamente à sua fatura – o uso gratuito não se acumula. ** Como parte do Nível de uso gratuito da AWS, novos clientes AWS receberão 15 GB de transferência de dados para fora gratuitamente a cada mês agregado em todos os serviços AWS, durante um ano.*** Os níveis de taxas de transferência para fora agregam a transferência de dados de saída no Amazon EC2, Amazon EBS, Amazon S3, Amazon Glacier, Amazon RDS, Amazon SimpleDB, Amazon SQS, Amazon SNS, Amazon DynamoDB, AWS Storage Gateway e Amazon VPC.O Amazon SimpleDB mede o tamanho dos dados faturáveis ao adicionar o tamanho de bytes brutos dos dados carregados + 45 bytes de despesas gerais para cada item, nome do atributo e par atributo e valor.
O Amazon SimpleDB foi projetado para armazenar quantidades relativamente pequenas de dados e foi otimizado para o acesso rápido a dados e a flexibilidade com relação à forma como esses dados são expressos. Para minimizar os custos dos serviços da AWS, objetos ou arquivos grandes devem ser armazenados no Amazon S3, enquanto os ponteiros e os metadata associados a esses arquivos podem ser armazenados no Amazon SimpleDB. Isso permitirá que você pesquise rapidamente e acesse os arquivos, enquanto minimiza os custos gerais de armazenamento. Clique aqui para obter uma explicação detalhada sobre como o armazenamento no Amazon SimpleDB e no Amazon S3 diferem, além de uma descrição mais detalhada sobre como calcular os Custos de armazenamento.
*Qualquer dado armazenado como parte do programa de nível gratuito deve ser usado ativamente. Se um domínio não for acessado durante 6 meses, ele estará sujeito à remoção a critério da Amazon Web Services.
(O Amazon SimpleDB é licenciado pela Amazon Web Services, Inc.)
| Recursos do desenvolvedor |
O modelo de dados usado pelo Amazon SimpleDB facilita o armazenamento, o gerenciamento e a consulta dos dados estruturados. Os desenvolvedores organizam seu conjunto de dados nos domínios e podem executar consultas em todos os dados armazenados em um determinado domínio. Os domínios são conjuntos de itens descritos por pares de valores de atributos.
Pense nesses termos como análogos a conceitos em uma tabela de planilha tradicional. Por exemplo, obtenha os detalhes de um banco de dados de gerenciamento de clientes na tabela abaixo e considere como seriam representados no Amazon SimpleDB. Toda a tabela seria o domínio chamado "clientes". Os clientes individuais seriam as linhas na tabela ou os itens no domínio. As informações de contato seriam descritas pelos cabeçalhos das colunas (atributos). Os valores estão nas células individuais. Agora imagine os registros abaixo como novos clientes que você gostaria de adicionar ao domínio.
| CustomerID | Nome | Sobrenome | Endereço | Cidade | Estado | CEP | Telefone | |
| 123 | Bob | Smith | 123 Main St | Springfield | MO | 65801 | 222-333-4444 | |
| 456 | James | Johnson | 456 Front St | Seattle | WA | 98104 | 333-444-5555 |
No Amazon SimpleDB, para adicionar os registros acima, você COLOCARIA os CustomerIDs no seu domínio juntamente com os pares de valores de atributos para cada um dos clientes. Sem a sintaxe específica, pareceria algo como:
PUT (item, 123), (Nome, Bob), (Sobrenome, Smith), (Endereço, 123 Main St.), (Cidade, Springfield), (Estado, MO), (CEP, 65801), (Telefone, 222-333-4444) PUT (item, 456), (Nome, James), (Sobrenome, Johnson), (Endereço, 456 Front St.), (Cidade, Seattle), (Estado, WA), (CEP, 98104), (Telefone, 333-444-5555)
O Amazon SimpleDB difere das tabelas dos bancos de dados tradicionais de formas importantes. Você tem a flexibilidade de retornar facilmente mais tarde e adicionar novos atributos que se aplicam somente a determinados registros. Por exemplo, imagine que você começa a capturar os endereços de e-mail dos clientes para habilitar alertas em tempo real sobre o status do pedido. Em vez de recriar a tabela "cliente", reescrever as consultas, recriar índices etc., você simplesmente adicionaria os novos registros e quaisquer atributos adicionais ao domínio "clientes" existente. O domínio resultante poderá se parecer com isto:
| CustomerID | Nome | Sobrenome | Endereço | Cidade | Estado | CEP | Telefone | ||
| 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 | Nova York | NY | 10001 | 444-555-6666 | dthomas@xyz.com |
O Amazon SimpleDB fornece um pequeno número de chamadas de API simples que implementam a gravação, indexação e enfileiramento de dados. A interface e o conjunto de recursos são intencionalmente direcionados para a funcionalidade central, fornecendo uma API básica com base na qual os desenvolvedores criarão e facilitando o aprendizado do serviço e seu uso simples.
Nota: o Amazon SimpleDB foi integrado ao AWS Identity and Access Management para habilitar o controle aprimorado dos recursos do Amazon SimpleDB. Por meio da integração do AWS Identity and Access Management, uma Conta da AWS vinculada para uso do SimpleDB pode criar vários Usuários. Por sua vez, esses Usuários poderão receber permissões de nível da API SimpleDB para acessar os domínios SimpleDB de propriedade da conta AWS. Consulte a página de detalhes da AWS Identity and Access Management para obter mais detalhes.
O Amazon SimpleDB armazena várias cópias distribuídas geograficamente de cada domínio para permitir a alta disponibilidade e a durabilidade dos dados. Uma gravação bem-sucedida (usando PutAttributes, BatchPutAttributes, DeleteAttributes, BatchDeleteAttributes, CreateDomain ou DeleteDomain) significa que todas as cópias do domínio persistirão de forma durável. O Amazon SimpleDB oferece suporte a duas opções de consistência de leitura: leituras eventualmente consistentes e leituras consistentes.
Como padrão, GetAttributes e Select desempenham uma leitura eventualmente consistente. Como uma leitura consistente pode incorrer potencialmente em maior latência e menor rendimento de leitura, é melhor usá-la somente quando um cenário de aplicativo exigir que uma operação de leitura tenha necessariamente de ler todas as gravações que receberam uma resposta bem-sucedida antes daquela leitura. Para todos os outros cenários, a leitura padrão eventualmente consistente renderá o melhor desempenho. Observe também que o Amazon SimpleDB permitirá que você especifique definições de consistência para cada solicitação de leitura individual, de forma que o mesmo aplicativo poderia ter partes discrepantes seguindo definições de consistência diferentes.
O Amazon SimpleDB não é um banco relacional e sacrifica transações e relações (ou seja, junções) complexas para fornecer características de funcionalidade e desempenho exclusivas. No entanto, o Amazon SimpleDB oferece semântica transacional como:
As operações de puts e deletes condicionais são expostas por meio de APIs PutAttributes e DeleteAttributes, especificando uma condição opcional com um valor esperado. Por exemplo, se o aplicativo estava reservando assentos ou ingressos de venda para um evento, você poderá permitir uma compra (ou seja, atualização de gravação) somente se o assento especificado ainda estivesse disponível (a condição opcional). Essas semânticas também podem ser usadas para implementar funcionalidades como contadores, inserindo um item somente se ele não existir, além do controle simultâneo otimista. Um aplicativo pode implementar o controle simultâneo otimista ao manter um atributo do número da versão (ou um carimbo de data/hora) como parte de um item e ao desempenhar uma inserção/exclusão condicional baseada no valor do número dessa versão.
Para saber mais sobre a semântica transacional ou a consistência com o Amazon SimpleDB, consulte o Guia do desenvolvedor do Amazon SimpleDB ou o Whitepaper sobre aprimoramentos da consistência.
A Amazon Web Services fornece uma série de alternativas de banco de dados para os desenvolvedores. É possível executar serviços totalmente gerenciados NoSQL e relacionais ou operar seu próprio banco de dados na nuvem no Amazon EC2 e Amazon EBS.
O Amazon RDS permite que você execute um completo banco de dados relacional ao mesmo tempo em que reduz o trabalho da administração do banco de dados. O AmazonDynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado que oferece desempenho extremamente rápido e previsível com escalabilidade perfeita. O Amazon SimpleDB oferece serviços não relacionais projetados para conjuntos de dados menores. Usar um dos vários AMIs no Amazon EC2 e Amazon EBS oferece controle completo sobre seu banco de dados sem o peso de providenciar e instalar hardware.
Há diferenças importantes entre essas alternativas que poderão tornar uma delas mais apropriada para seu caso de uso.
Acesse a página Execução de bancos de dados na AWS para obter informações mais detalhadas sobre as diversas alternativas de bancos de dados para seus aplicativos.
Diferente do Amazon S3, o Amazon SimpleDB não está armazenando dados brutos. Em vez disso, ele obtém os dados como entrada e expande-os para criar vários índices, permitindo, portanto, que você consulte rapidamente aqueles dados. Além disso, o Amazon S3 e o Amazon SimpleDB usam diferentes tipos de armazenamento físico. O Amazon S3 usa unidades de armazenamento densas que são otimizadas para armazenar objetos maiores de forma econômica. O Amazon SimpleDB armazena bits de dados menores e usa unidades menos densas que são otimizadas para a velocidade de acesso dos dados.
Para otimizar os custos por meio dos serviços da AWS, objetos ou arquivos grandes devem ser armazenados no Amazon S3, enquanto elementos de dados menores ou apontadores de arquivos (possivelmente para objetos do Amazon S3) são melhor salvos no Amazon SimpleDB. Devido à integração próxima entre os serviços e a transferência de dados livre dentro do ambiente da AWS, os desenvolvedores podem facilmente usufruir das capacidades de velocidade e de consulta do Amazon SimpleDB, assim como do baixo custo do armazenamento de dados no Amazon S3 ao integrar ambos os serviços em seus aplicativos.
No momento, o Amazon SimpleDB permite que domínios individuais atinjam até 10 GB cada. Se o seu conjunto de dados tiver mais de 10 GB, tire proveito da arquitetura de dimensionamento do Amazon SimpleDB e distribua seus dados em vários Domínios. O Amazon SimpleDB foi projetado com foco no paralelismo, assim a distribuição de seus dados em vários Domínios também aumentará o seu potencial de taxa de transferência de leitura e de gravação. Inicialmente você recebe a alocação de 250 domínios no máximo; preencha este formulário se precisar de mais domínios.
Para obter mais informações sobre quantos desenvolvedores beneficiam-se do uso do Amazon SimpleDB em conjunto com o Amazon S3, clique aqui.
Com o Amazon SimpleDB, a melhor forma de prever o tamanho do armazenamento de dados estruturados é conforme a seguir:
Tamanho de bytes brutos (GB) de todos os IDs de item + 45 bytes por item + Tamanho de bytes brutos (GB) de todos os nomes de atributos + 45 bytes por nome de atributo + Tamanho de bytes brutos (GB) de todos os pares de valor e atributo + 45 bytes por par de valor e atributo
Para calcular o custo de armazenamento mensal estimado para a região leste dos EUA (norte da Virgínia) ou oeste dos EUA (Oregon), multiplicar o tamanho resultante em GB por 0,25 USD. Para a região da UE (Irlanda), da Ásia-Pacífico (Cingapura), da Ásia-Pacífico (Sydney) ou a região do oeste dos EUA (norte da Califórnia), multiplicar o tamanho resultante em GB por 0,275 USD. Para a região Ásia-Pacífico (Tokyo), pegue o tamanho resultante em GB e multiplique por 0,29 USD. Para a região da América do Sul (São Paulo), multiplicar o tamanho resultante em GB por 0,34 USD.
O Amazon SimpleDB mede a utilização da máquina de cada solicitação e cobra com base na quantidade da capacidade da máquina usada para concluir a solicitação específica (SELECT, GET, PUT etc.), normalizada para a capacidade horária de aproximadamente um processador Xeon 2007 1,7 GHz. A utilização de máquina é direcionada pela quantidade de dados (nº de atributos, tamanho dos atributos) processados por cada solicitação. Uma operação GET que recebe 256 atributos usará mais recursos do que uma operação GET que recupere somente 1 atributo. Uma operação SELECT com vários predicados que analisa 100.000 atributos custará mais do que uma consulta com um único predicado que examine 250.
Na mensagem de resposta a cada solicitação, o Amazon SimpleDB retorna um campo chamado Utilização de caixas. Utilização de caixas é a medida de recursos de máquina consumidos por cada solicitação. Ela não inclui largura de banda ou armazenamento. A Utilização de caixas é registrado como a parte de uma hora de máquina usada para concluir uma determinada solicitação. Para a região do leste dos EUA (norte da Virgínia), o custo de uma solicitação individual é a Utilização de caixas (expresso em horas) * US$ 0,14 por hora de máquina do Amazon SimpleDB. O custo de todas as suas solicitações é a soma da Utilização de caixas (expresso em horas) * US$ 0,14.
Por exemplo, se ao longo de um mês a soma da Utilização de caixas para suas solicitações usar o equivalente a um processador Xeon de 1,7 GHz por 9 horas, a cobrança será:
9 horas x US$ 0,14 por Hora da máquina do Amazon SimpleDB = US$ 1,26.
Se seus Domínios de consulta estão localizados nas regiões da UE (Irlanda), da Ásia-Pacífico (Cingapura), Ásia-Pacífico (Sydney) ou no oeste dos EUA (norte da Califórnia), as horas de máquina do Amazon SimpleDB custam 0,154 USD por hora de máquina. Se seus Domínios de consulta estão localizados na região da Ásia-Pacífico (Tóquio), as horas de máquina do Amazon SimpleDB custam US$ 0,162 por hora de máquina. Se seus Domínios de consulta estão localizados na região da Ásia-Pacífico (Tóquio), as horas de máquina do Amazon SimpleDB custam US$ 0,19 por hora de máquina. Todos os cálculos de custos devem ser ajustados para refletir a definição de preço na região relevante.
A melhor forma de compreender o Amazon SimpleDB é trabalhar por meio do Guia de Conceitos Básicos, que faz parte da nossa Documentação técnica. Em alguns instantes, você poderá criar seu domínio e começar a elaborar o índice!
O uso deste serviço está sujeito ao Acordo do Cliente da Amazon Web Services.