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 dall'istanza App Engine. I database di terze parti possono essere ospitati su Compute Engine, su un altro provider cloud, on-premise o gestiti da un fornitore di terze parti.
Servizi di archiviazione Google Cloud
Per le app App Engine in esecuzione nell'ambiente flessibile, consigliamo uno dei seguenti servizi di archiviazione 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 tranne quello .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, come filmati, 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 Compute Engine. L'app App Engine può comunicare con i servizi ospitati su Compute Engine all'interno dello stesso progetto senza passare per internet pubblico. 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 popolari come Redis, MongoDB, PostgreSQL, Cassandra, Hadoop e Microsoft SQL Server possono essere implementati rapidamente in Compute Engine utilizzando Google Cloud Marketplace. Consulta le seguenti guide per informazioni dettagliate 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 tramite internet utilizzando l'indirizzo IP pubblico del servizio esterno.
Database gestiti da un fornitore di terze parti
Esistono molti fornitori che offrono servizi di database gestiti, come mLab per MongoDB, mentre Redis Labs offre memorizzazione nella cache Redis ospitata. Questi fornitori gestiscono hosting, configurazione e manutenzione dei database. App Engine può collegarsi a questi servizi esterni tramite internet, come gli altri cloud pubblici, utilizzando l'indirizzo IP pubblico del servizio.
On-premise
Se hai già dei database on-premise che vuoi rendere accessibili alla tua app App Engine, puoi configurare la rete e il firewall interni in modo da 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 di database alla rete internet pubblica. Poiché App Engine e Compute Engine utilizzano la stessa infrastruttura di rete, 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 del database.
Considerazioni sulla produzione
App Engine può essere configurato per scalare automaticamente l'applicazione orizzontalmente in base a varie metriche. A differenza delle applicazioni web, i database spesso richiedono modifiche non banali per rispondere alla scalabilità. Nelle applicazioni di produzione, App Engine può sopraffare rapidamente un database durante i picchi di traffico. Quando configuri e implementi i database, devi prendere in considerazione il carico medio del traffico previsto e il carico durante i picchi.