如要在 App Engine 上儲存資料與檔案,可以使用 Google Cloud 服務或您的語言支援且可從 App Engine 執行個體存取的其他任何儲存空間服務。第三方資料庫可以託管在 Compute Engine、另一個雲端服務供應商、內部部署環境,或是由第三方廠商代管。
Google Cloud 儲存空間服務
對於在彈性環境中執行的 App Engine 應用程式,建議使用下列其中一項 Google Cloud 儲存空間服務:
- Firestore Datastore 模式,可將資料儲存在 NoSQL 資料庫中。請注意,除了 .NET 執行階段以外,所有執行階段都支援 Datastore 模式的 Firestore。
- MySQL 適用的 Cloud SQL,可將資料儲存於 MySQL 資料庫中。
- PostgreSQL 適用的 Cloud SQL,可將資料儲存在 PostgreSQL 資料庫中。
- Cloud Storage,可在執行階段環境中讀取及寫入檔案,並儲存及提供靜態檔案,例如影片、圖片或其他靜態內容。
如需 Google Cloud 儲存空間產品的完整清單,請參閱 Cloud Storage 產品頁面。
Compute Engine 的服務託管方式
App Engine 執行個體跟 Compute Engine 執行個體一樣,都是同一個私人內部網路的一部分。 您的 App Engine 應用程式可以跟同一專案內的 Compute Engine 託管的多項服務進行通訊,不用經由公開網際網路。在多數情況下,應用程式會使用執行個體的內部 IP 位址連線到服務,您不必將外部公開 IP 位址指派給資料庫。如有需要,您可以指派公開 IP 位址,以允許從 Google Cloud外部存取資料庫。
您可以利用 Google Cloud Marketplace,快速地將 Redis、MongoDB、PostgreSQL、Cassandra、Hadoop 和 Microsoft SQL Server 等眾多常見的第三方資料庫部署至 Compute Engine。如要進一步瞭解如何部署 MySQL 或 PostgreSQL,請參閱下列指南。
其他雲端服務供應商
App Engine 應用程式可以連線至其他公用雲端託管的外部資料庫,前提是這些資料庫伺服器和您的防火牆均已適當設定,可以接受連線。您的 App Engine 應用程式會利用外部服務的公開 IP 位址,透過網際網路建立連線。
第三方供應商代管的資料庫
許多服務供應商都提供代管資料庫服務,例如 MongoDB 的 mLab,以及 Redis Labs 提供的託管 Redis 快取服務。這些供應商可處理資料庫的託管、設定和維護作業。App Engine 可以透過網際網路連線至這些外部服務,方法跟其他公用雲端一樣,都是使用服務的公開 IP 位址進行連線。
內部部署
如要讓 App Engine 應用程式能夠存取現有的內部部署資料庫,您可以設定內部網路和防火牆來給予資料庫一個公開 IP 位址,或是使用 VPN 來連線。
設定 Cloud VPN 後,App Engine 應用程式就能存取內部部署網路,不必讓資料庫伺服器冒著直接暴露到公開網際網路的風險。App Engine 和 Compute Engine 都使用相同的網路基礎架構,因此您可以使用 VPN 連線,利用資料庫伺服器的內部 IP 位址建立 App Engine 應用程式與內部部署資料庫之間的連線。
實際運作環境注意事項
您可以透過設定,讓 App Engine 依據各種指標,水平自動調整應用程式的資源配置。資料庫經常會因為資源調度而進行重大變更,這點與網路應用程式不同。在實際運作環境中出現龐大流量時,App Engine 可能會迅速導致資料庫癱瘓。建議您在設定和部署資料庫時,將預期的平均流量負載和尖峰時段負載納入考量。