Para armazenar dados e ficheiros no App Engine, pode usar Google Cloud serviços ou qualquer outro serviço de armazenamento suportado pelo seu idioma e acessível a partir da sua instância do App Engine. As bases de dados de terceiros podem ser alojadas no Compute Engine, noutro fornecedor de nuvem, no local ou geridas por um fornecedor externo.
Google Cloud serviços de armazenamento
Para apps do App Engine executadas no ambiente flexível, recomendamos um dos seguintes Google Cloud serviços de armazenamento:
- Firestore no modo Datastore para armazenar dados numa base de dados NoSQL. Tenha em atenção que o Firestore no modo Datastore está disponível para todos os tempos de execução, exceto o tempo de execução .NET.
- Cloud SQL para MySQL para armazenar dados numa base de dados MySQL.
- Cloud SQL para PostgreSQL para armazenar dados numa base de dados PostgreSQL.
- Cloud Storage para ler e escrever ficheiros no ambiente de tempo de execução, bem como armazenar e publicar ficheiros estáticos, como filmes, imagens ou outro conteúdo estático.
Consulte uma lista completa dos Google Cloud produtos de armazenamento na página Produtos do Cloud Storage.
Alojamento no Compute Engine
As instâncias do App Engine fazem parte da mesma rede interna privada que as instâncias do Compute Engine. A sua app do App Engine pode comunicar com serviços alojados no Compute Engine no mesmo projeto sem passar pela Internet pública. Em muitos casos, a sua app liga-se ao serviço através do endereço IP interno da instância sem precisar de atribuir à base de dados um endereço IP público externo. Se quiser, pode atribuir um endereço IP público para permitir o acesso à base de dados a partir de fora de Google Cloud.
Muitas bases de dados populares de terceiros, como Redis, MongoDB, PostgreSQL, Cassandra, Hadoop e Microsoft SQL Server, podem ser implementadas rapidamente no Compute Engine através do Google Cloud Marketplace. Consulte os seguintes guias para ver detalhes sobre a implementação do MySQL ou do PostgreSQL.
Outros fornecedores de nuvem
As apps do App Engine podem estabelecer ligação a bases de dados externas alojadas noutras nuvens públicas, desde que esses servidores de bases de dados e a sua firewall estejam configurados corretamente para aceitar ligações. A sua app do App Engine estabelece ligação através da Internet com o endereço IP público desse serviço externo.
Bases de dados geridas por um fornecedor externo
Existem muitos fornecedores que oferecem serviços de base de dados geridos, como o mLab para o MongoDB, e a Redis Labs oferece cache do Redis alojada. Estes fornecedores processam o alojamento, a configuração e a manutenção de bases de dados. O App Engine pode ligar-se a estes serviços externos através da Internet, da mesma forma que outras nuvens públicas, usando o endereço IP público desse serviço.
Nas instalações
Se tiver bases de dados nas instalações existentes que queira tornar acessíveis à sua app do App Engine, pode configurar a sua rede interna e firewall para atribuir um endereço IP público à base de dados ou estabelecer ligação através de uma VPN.
A configuração da VPN na nuvem permite que a sua app do App Engine aceda à sua rede no local sem expor diretamente o servidor de base de dados à Internet pública. Uma vez que o App Engine e o Compute Engine usam a mesma infraestrutura de rede, pode usar a ligação VPN para estabelecer uma ligação entre a app App Engine e a sua base de dados no local através do endereço IP interno do servidor de base de dados.
Considerações de produção
O App Engine pode ser configurado para dimensionar automaticamente a sua aplicação horizontalmente com base em várias métricas. Ao contrário das aplicações Web, as bases de dados requerem frequentemente alterações não triviais para responder à escalabilidade. Em aplicações de produção, o App Engine pode sobrecarregar rapidamente uma base de dados durante picos de tráfego. Deve ter em consideração a carga de tráfego média prevista e a carga durante os picos ao configurar e implementar bases de dados.