Untuk menyimpan file dan data di App Engine, Anda dapat menggunakan layanan Google Cloud atau layanan penyimpanan lain yang didukung oleh bahasa Anda dan dapat diakses dari instance App Engine. Database pihak ketiga dapat dihosting di Compute Engine, dihosting di penyedia cloud lain, dihosting di infrastruktur lokal, atau dikelola oleh vendor pihak ketiga.
Layanan Google Cloud Storage
Untuk aplikasi App Engine yang berjalan di lingkungan fleksibel, sebaiknya gunakan salah satu layanan penyimpanan Google Cloud berikut:
- Firestore dalam mode Datastore untuk menyimpan data di database NoSQL. Perhatikan bahwa Firestore dalam mode Datastore tersedia untuk semua runtime kecuali runtime .NET.
- Cloud SQL untuk MySQL untuk menyimpan data di database MySQL.
- Cloud SQL untuk PostgreSQL untuk menyimpan data di database PostgreSQL.
- Cloud Storage untuk membaca dan menulis file di lingkungan runtime, serta menyimpan dan menyajikan file statis, seperti film atau gambar atau konten statis lainnya.
Lihat daftar lengkap produk penyimpanan Google Cloud di halaman Produk Cloud Storage.
Menghosting di Compute Engine
Instance App Engine merupakan bagian dari jaringan internal pribadi yang sama dengan instance Compute Engine. Aplikasi App Engine Anda dapat berkomunikasi dengan layanan yang dihosting di Compute Engine dalam project yang sama tanpa melalui internet publik. Dalam banyak kasus, aplikasi Anda terhubung ke layanan menggunakan alamat IP internal instance tanpa perlu menetapkan alamat IP publik eksternal ke database. Kalau mau, Anda dapat menetapkan alamat IP publik agar database dapat diakses dari luar Google Cloud.
Banyak database pihak ketiga yang populer, seperti Redis, MongoDB, PostgreSQL, Cassandra, Hadoop, dan Microsoft SQL Server, dapat di-deploy dengan cepat ke Compute Engine dengan menggunakan Google Cloud Marketplace ini. Lihat panduan berikut untuk mengetahui detail cara men-deploy MySQL atau PostgreSQL.
Penyedia cloud lainnya
Aplikasi App Engine dapat terhubung ke database eksternal yang dihosting di cloud publik lain asalkan server database tersebut dan firewall Anda sudah dikonfigurasi dengan benar untuk menerima koneksi. Aplikasi App Engine Anda terhubung melalui Internet menggunakan alamat IP publik layanan eksternal tersebut.
Database yang dikelola oleh vendor pihak ketiga
Ada banyak vendor yang menawarkan layanan database terkelola seperti mLab untuk MongoDB, Redis Labs menawarkan penyimpanan cache Redis yang dihosting. Vendor ini menangani hosting, konfigurasi, dan pemeliharaan database. App Engine dapat terhubung ke layanan eksternal ini melalui Internet, dengan cara yang sama seperti cloud publik lainnya menggunakan alamat IP publik layanan tersebut.
Lokal
Jika sudah memiliki database lokal yang ingin diakses oleh aplikasi App Engine, Anda dapat mengonfigurasi jaringan internal dan firewall untuk memberikan database alamat IP publik atau menghubungkannya menggunakan VPN.
Dengan menyiapkan Cloud VPN, aplikasi App Engine Anda dapat mengakses jaringan lokal tanpa mengekspos server database ke internet publik secara langsung. Karena App Engine dan Compute Engine menggunakan infrastruktur jaringan yang sama, Anda dapat menggunakan koneksi VPN untuk membuat koneksi antara aplikasi App Engine dan database lokal Anda menggunakan alamat IP internal server database.
Pertimbangan produksi
App Engine dapat dikonfigurasi untuk menskalakan aplikasi Anda secara otomatis secara horizontal berdasarkan berbagai metrik. Tidak seperti aplikasi web, database sering kali memerlukan perubahan yang sulit untuk merespons skala. Dalam aplikasi produksi, App Engine dapat dengan cepat membebani database selama lonjakan traffic. Anda harus memperhitungkan beban dan beban traffic rata-rata yang diperkirakan selama lonjakan dalam pertimbangan saat mengonfigurasi dan men-deploy database.