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 un altro provider cloud, ospitati on-premise o gestiti da un fornitore di terze parti.
Google Cloud servizi di archiviazione
Per le app App Engine in esecuzione nell'ambiente standard Java 8, consigliamo uno dei seguenti servizi di archiviazione Google Cloud :
| Nome | Strutturazione | Coerenza | Costo |
|---|---|---|---|
| Firestore in modalità Datastore | Senza schema (NoSQL) | Fortemente coerente, tranne quando si eseguono query globali. | La modalità Datastore offre una quota senza costi con limiti giornalieri. Gli account a pagamento offrono spazio di archiviazione, operazioni di lettura e scrittura illimitati. Per ulteriori informazioni, consulta la pagina Quote Datastore. |
|
Cloud SQL per MySQL o Cloud SQL per PostgreSQL |
Relazionale | Coerenza elevata | Google offre due piani di fatturazione per Google Cloud SQL: pacchetti e per uso. Per ulteriori informazioni, consulta il listino prezzi di Cloud SQL. |
| Cloud Storage | File e relativi metadati (archiviazione di file sul cloud) | Fortemente coerente, tranne quando esegui operazioni di elenco che recuperano un elenco di bucket o oggetti. | Non sono previsti costi per le chiamate a Google Cloud Storage.
Tuttavia, per i dati archiviati in Google Cloud Storage vengono addebitate le normali
tariffe di archiviazione dei dati di Google Cloud Storage. I prezzi di Cloud Storage sono disponibili nel foglio dei prezzi di Cloud Storage. |
Queste opzioni non si escludono a vicenda. Ad esempio, la stessa applicazione può archiviare informazioni in un database Cloud SQL e anche archiviare file in un bucket Cloud Storage.
Consulta un elenco completo dei prodotti di archiviazione Google Cloud nella pagina Prodotti Cloud Storage.
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. La tua app App Engine si connette a 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. Redis Labs offre la memorizzazione nella cache Redis ospitata. Questi fornitori gestiscono l'hosting, la configurazione e la manutenzione dei database. App Engine può connettersi a questi servizi esterni tramite internet, allo stesso modo di altri cloud pubblici, utilizzando l'indirizzo IP pubblico del servizio.
On-premise
Se hai database on-premise esistenti a cui vuoi rendere accessibile la tua app App Engine, puoi configurare la tua rete interna e il firewall in modo da assegnare al database un indirizzo IP pubblico o connetterti utilizzando una VPN.
Considerazioni sulla produzione
App Engine può essere configurato per scalare automaticamente la tua 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ò sovraccaricare rapidamente un database durante i picchi di traffico. Quando configuri e implementi i database, devi tenere conto del carico di traffico medio previsto e del carico durante i picchi.