Para armazenar dados e arquivos no App Engine, use os serviços do Google Cloud ou qualquer outro serviço de armazenamento compatível com sua linguagem e que possa ser acessado na instância do App Engine. É possível hospedar bancos de dados de terceiros em outro provedor de nuvem e no local, além de poderem ser gerenciados por um fornecedor terceirizado.
Serviços de armazenamento do Google Cloud
Para aplicativos do App Engine em execução no ambiente padrão do Java 8, recomendamos um dos seguintes serviços de armazenamento do Google Cloud:
Nome | Estrutura | Consistência | Custo |
---|---|---|---|
Firestore no modo Datastore | Sem esquema (NoSQL) | Bastante consistente, exceto para executar consultas globais. | O modo Datastore oferece uma cota gratuita com limites diários. As contas pagas oferecem operações ilimitadas de armazenamento, leitura e gravação. Há mais informações na página Cotas do Datastore. |
Cloud SQL para MySQL ou Cloud SQL para PostgreSQL |
Relacional | Forte consistência | O Google oferece dois planos de faturamento para o Google Cloud SQL: pacotes e por uso. Você encontra mais informações na tabela de preços do Cloud SQL. |
Cloud Storage | Arquivos e seus metadados associados (armazenamento de arquivos na nuvem) | Bastante consistente, exceto para realizar operações de listagem de buckets ou objetos. | Não há cobranças associadas à realização de chamadas ao Google Cloud Storage.
No entanto, são cobradas as taxas habituais de armazenamento de dados do
Google Cloud Storage para todos os dados armazenados. Os preços do Cloud Storage estão disponíveis na tabela de preços do Cloud Storage. |
Essas opções não são mutuamente exclusivas. Por exemplo, o mesmo aplicativo pode armazenar informações em um banco de dados Cloud SQL e também armazenar arquivos em um bucket do Cloud Storage.
Veja uma lista completa dos produtos de armazenamento do Google Cloud na página Produtos do Cloud Storage.
Outros provedores de nuvem
Os aplicativos do App Engine se conectam a bancos de dados externos, hospedados em outras nuvens públicas, se os servidores desses bancos e seu firewall estiverem configurados para aceitar conexões. O aplicativo do App Engine se conecta pela Internet usando o endereço IP público desse serviço externo.
Bancos de dados gerenciados por um fornecedor de terceiros
Muitos fornecedores oferecem serviços de banco de dados gerenciado, como o mLab para MongoDB (em inglês). O Redis Labs oferece armazenamento em cache hospedado do Redis (em inglês). Esses fornecedores administram a hospedagem, configuração e manutenção dos bancos de dados. O App Engine pode se conectar a esses serviços externos pela Internet, da mesma forma que a outras nuvens públicas, usando o endereço IP público desse serviço.
No local
Se você quiser tornar bancos de dados locais acessíveis para o aplicativo do App Engine, configure a rede interna e o firewall para dar ao banco de dados um endereço IP público ou conecte-se por uma VPN.
Considerações de produção
Configure o App Engine para fazer o escalonamento automático e horizontal do aplicativo com base em várias métricas. Ao contrário dos aplicativos da Web, os bancos de dados muitas vezes exigem mudanças não triviais para atender à escala. Em aplicativos de produção, o App Engine pode sobrecarregar rapidamente um banco de dados durante os picos de tráfego. Ao configurar e implantar bancos de dados, pense na carga média de tráfego estimada e a carga durante os picos.