Como entender o armazenamento de dados e arquivos

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. 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

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

Veja uma lista completa dos produtos de armazenamento do Google Cloud 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ê preferir, atribua um endereço IP público para permitir que o banco de dados seja acessado de fora do Google Cloud.

Muitos bancos de dados terceirizados conhecidos, como Redis, MongoDB, PostgreSQL, Cassandra, Hadoop e Microsoft SQL Server, são implantados rapidamente no Compute Engine com o uso do Cloud Launcher. A seguir, veja detalhes sobre como implantar o MySQL ou o PostgreSQL.

Outros fornecedores 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 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. O App Engine e o Compute Engine usam a mesma infraestrutura de rede, por isso, use a conexão VPN para estabelecer uma conexão entre o aplicativo do App Engine e o banco de dados no 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.