Per archiviare dati e file su App Engine, puoi utilizzare i servizi Google Cloud o qualsiasi altro servizio di archiviazione supportato dalla tua lingua e accessibile dalla tua istanza App Engine. I database di terze parti possono essere ospitati su Compute Engine, ospitati su un altro cloud provider, on-premise o gestiti da un fornitore di terze parti.
Servizi di archiviazione di Google Cloud
Per le app di App Engine in esecuzione nell'ambiente flessibile, consigliamo uno dei seguenti servizi di archiviazione di Google Cloud:
- Firestore in modalità Datastore per archiviare i dati in un database NoSQL. Tieni presente che Firestore in modalità Datastore è disponibile per tutti i runtime, ad eccezione del runtime .NET.
- Cloud SQL per MySQL per archiviare i dati in un database MySQL.
- Cloud SQL per PostgreSQL per archiviare i dati in un database PostgreSQL.
- Cloud Storage per leggere e scrivere file nell'ambiente di runtime, nonché per archiviare e pubblicare file statici, ad esempio filmati o immagini o altri contenuti statici.
Consulta un elenco completo dei prodotti di archiviazione Google Cloud nella pagina Prodotti Cloud Storage.
Hosting su Compute Engine
Le istanze App Engine fanno parte della stessa rete interna privata delle istanze di Compute Engine. L'app App Engine può comunicare con i servizi ospitati su Compute Engine all'interno dello stesso progetto senza passare attraverso la rete internet pubblica. In molti casi, l'app si connette al servizio utilizzando l'indirizzo IP interno dell'istanza senza dover assegnare al database un indirizzo IP pubblico esterno. Se vuoi, puoi assegnare un indirizzo IP pubblico per consentire l'accesso al database dall'esterno di Google Cloud.
Molti database di terze parti molto noti, come Redis, MongoDB, PostgreSQL,Cassandra, Hadoop e Microsoft SQL Server, possono essere distribuiti rapidamente su Compute Engine utilizzando Google Cloud Marketplace. Consulta le seguenti guide per i dettagli sul deployment di MySQL o PostgreSQL.
Altri cloud provider
Le app App Engine possono connettersi a database esterni ospitati su altri cloud pubblici, a condizione che i server di database e il firewall siano configurati correttamente per accettare le connessioni. L'app App Engine si connette su Internet utilizzando l'indirizzo IP pubblico di quel servizio esterno.
Database gestiti da un fornitore di terze parti
Esistono molti fornitori che offrono servizi di database gestiti come mLab per MongoDB, Redis Labs offre la memorizzazione di Redis in hosting. Questi fornitori gestiscono l'hosting, la configurazione e la manutenzione dei database. App Engine può connettersi a questi servizi esterni su Internet, come altri cloud pubblici, utilizzando l'indirizzo IP pubblico di quel servizio.
On-premise
Se disponi di database on-premise esistenti che vuoi rendere accessibili all'app App Engine, puoi configurare la rete interna e il firewall per assegnare al database un indirizzo IP pubblico o connetterti tramite una VPN.
La configurazione di Cloud VPN consente all'app App Engine di accedere alla rete on-premise senza esporre direttamente il server del database alla rete internet pubblica. Poiché App Engine e Compute Engine utilizzano la stessa infrastruttura di networking, puoi utilizzare la connessione VPN per stabilire una connessione tra l'app App Engine e il tuo database on-premise utilizzando l'indirizzo IP interno del server di database.
Considerazioni sulla produzione
App Engine può essere configurato per scalare automaticamente l'applicazione in orizzontale in base a varie metriche. A differenza delle applicazioni web, i database spesso richiedono modifiche non banali per adattarsi alla scalabilità. Nelle applicazioni di produzione, App Engine può sovraccaricare rapidamente un database durante i picchi di traffico. Durante la configurazione e il deployment dei database, dovresti prendere in considerazione il carico e il carico medi previsti durante i picchi.