Noções básicas sobre armazenamento de dados e arquivos

Para armazenar dados e arquivos no App Engine, use os serviços do Google Cloud Platform ou qualquer outro serviço de armazenamento compatível com seu idioma e que possa ser acessado da sua instância do App Engine. Os bancos de dados de terceiros podem ser hospedados no Compute Engine, em outro provedor de nuvem, localmente ou gerenciados por um fornecedor terceirizado.

Serviços de armazenamento do Google Cloud Platform

Para aplicativos do App Engine em execução no ambiente flexível do Go, recomendamos um dos seguintes serviços de armazenamento do GCP:

Veja uma lista completa dos produtos de armazenamento do GCP na página Produtos do Cloud Storage.

Como hospedar no Compute Engine

As instâncias do App Engine fazem parte da mesma rede interna privada que as do Compute Engine. O aplicativo do App Engine comunica-se com serviços hospedados no Compute Engine no mesmo projeto sem passar pela Internet pública. Em muitos casos, o aplicativo conecta-se ao serviço usando o endereço IP interno da instância, sem precisar atribuir o banco de dados a um endereço IP público externo. Se você quiser, atribua um endereço IP público para permitir que o banco de dados seja acessado de fora do GCP.

Muitos bancos de dados de terceiros conhecidos, como Redis, MongoDB, PostgreSQL, Cassandra, Hadoop e Microsoft SQL Server, podem ser implantados rapidamente no Compute Engine com o uso do Cloud Launcher. Consulte os guias a seguir para detalhes sobre como implantar o MySQL ou o PostgreSQL.

Outros fornecedores de nuvem

Os aplicativos do App Engine se conectarão 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 conecta-se 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 gerenciados. Por exemplo, mLab, para MongoDB, e Redis Labs, que disponibiliza armazenamento em cache hospedado do Redis (links em inglês). Esses fornecedores administram a hospedagem, a configuração e a manutenção dos bancos de dados. O App Engine pode conectar-se a esses serviços externos pela Internet da mesma forma que 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 a um aplicativo do App Engine, configure a rede interna e o firewall para informar um endereço IP público ao banco de dados ou conecte-se por meio da VPN.

Ao configurar o Cloud VPN, o aplicativo do App Engine acessa a rede no local sem expor diretamente o servidor de banco de dados à Internet pública. Como o App Engine e o Compute Engine usam a mesma infraestrutura de rede, use a conexão VPN para estabelecer uma conexão entre o aplicativo do App Engine e o banco de dados local usando o endereço IP interno do servidor de banco de dados.

Considerações sobre 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.