如要在 App Engine 上儲存資料與檔案,可以使用 Google Cloud 服務或您的語言支援且可從 App Engine 執行個體存取的其他任何儲存空間服務。這些第三方資料庫可能由其他雲端服務供應商託管、在內部部署環境中託管,或由第三方廠商代管。
Google Cloud 儲存空間服務
對於在 Python 2 標準環境中執行的 App Engine 應用程式,建議使用下列其中一項 Google Cloud 儲存空間服務:
名稱 | 結構 | 一致性 | 費用 |
---|---|---|---|
Datastore 模式的 Firestore | 無結構定義 (NoSQL) | 同步一致性,但執行全域查詢時除外。 | Datastore 模式會提供免費配額,但設有每日上限。付費帳戶享有無限的儲存空間、讀取和寫入作業。詳情請參閱 Datastore 配額頁面。 |
MySQL 適用的 Cloud SQL 或 PostgreSQL 適用的 Cloud SQL |
關聯式 | 同步一致性 | Google 為 Google Cloud SQL 提供兩種計費方案:套裝和按使用量計費。詳情請參閱 Cloud SQL 價目表。 |
Cloud Storage | 檔案及其相關聯的中繼資料 (雲端檔案儲存空間) | 同步一致性,但在執行取得值區或物件清單的 list 作業時除外。 | 呼叫 Google Cloud Storage 不會產生任何費用。不過,儲存在 Google Cloud Storage 中的所有資料都會收取 Google Cloud Storage 資料儲存空間的一般費用。 如要查看 Cloud Storage 的價格,請參閱 Cloud Storage 價格表。 |
這些選項並不會互相牴觸。例如,同一個應用程式可以在 Cloud SQL 資料庫中儲存資訊,也可以在 Cloud Storage 值區中儲存檔案。
如需 Google Cloud 儲存空間產品的完整清單,請參閱 Cloud Storage 產品頁面。
其他雲端服務供應商
App Engine 應用程式可以連線至其他公用雲端託管的外部資料庫,前提是這些資料庫伺服器和您的防火牆均已適當設定,可以接受連線。您的 App Engine 應用程式會利用外部服務的公開 IP 位址,透過網際網路建立連線。
第三方供應商代管的資料庫
許多服務供應商都提供代管資料庫服務,例如 MongoDB 的 mLab,以及 Redis Labs 提供的託管 Redis 快取服務。這些供應商可處理資料庫的託管、設定和維護作業。App Engine 可以透過網際網路連線至這些外部服務,方法跟其他公用雲端一樣,都是使用服務的公開 IP 位址進行連線。
內部部署
如果想讓 App Engine 應用程式存取現有的內部部署資料庫,您可以設定內部網路和防火牆以提供公用 IP 位址給資料庫,或是使用 VPN 進行連線。
實際運作環境注意事項
您可以透過設定,讓 App Engine 依據各種指標,水平自動調整應用程式的資源配置。資料庫經常會因為資源調度而進行重大變更,這點與網路應用程式不同。在實際運作環境中出現龐大流量時,App Engine 可能會迅速導致資料庫癱瘓。建議您在設定和部署資料庫時,將預期的平均流量負載和尖峰時段負載納入考量。