Menyimpan ke cache

Halaman ini membahas opsi yang Anda miliki untuk mengontrol cara objek Cloud Storage di-cache. Halaman ini berfokus pada cache bawaan Cloud Storage dan Cloud CDN, tetapi Cloud Storage juga kompatibel dengan CDN pihak ketiga.

Ringkasan

Jika objek Cloud Storage di-cache, salinan data objek tersebut disimpan di cache Google atau cache internet, sehingga objek Anda dapat disajikan lebih cepat dalam permintaan mendatang. Meskipun penyimpanan cache dapat meningkatkan performa, Anda juga berisiko menyajikan konten lama jika Anda melakukan pembaruan pada objek tetapi cache tetap menyajikan versi sebelumnya dari objek tersebut.

Cache bawaan untuk Cloud Storage

Cloud Storage dapat berperilaku seperti Jaringan Penayangan Konten (CDN) tanpa memerlukan pekerjaan di pihak Anda, karena data objek disimpan dalam cache di jaringan Cloud Storage jika metadata Cache-Control-nya ditetapkan untuk mengizinkan penyimpanan dalam cache dan kriteria berikut terpenuhi:

Cloud Storage mengikuti nilai standar untuk Cache-Control, seperti berikut:

  • public: objek dapat di-cache.

  • private: objek tidak akan di-cache oleh Cloud Storage, tetapi dapat di-cache dalam cache lokal pemohon.

  • no-cache: objek dapat di-cache, tetapi tidak dapat digunakan untuk memenuhi permintaan mendatang, kecuali telah divalidasi terlebih dahulu oleh Cloud Storage.

  • no-store: objek tidak dapat di-cache.

  • max-age=TIME_IN_SECONDS: durasi waktu objek dapat di-cache sebelum dianggap tidak berlaku. Anda dapat menetapkan max-age ke durasi waktu berapa pun. Objek yang tidak berlaku tidak ditayangkan dari cache, kecuali dalam kondisi khusus.

Untuk menetapkan metadata Cache-Control untuk objek, lihat Mengedit metadata objek.

Perilaku penyimpanan dalam cache bawaan dengan kebijakan Penolakan IAM

Jika ada kebijakan IAM Deny tingkat organisasi yang membatasi akses baca untuk objek dari ID akun utama allUsers, caching bawaan akan dinonaktifkan untuk objek, meskipun ada kebijakan IAM level bucket yang memberikan akses baca untuk objek ke allUsers. Namun, jika kebijakan IAM Deny hanya membatasi pengguna individual, cache bawaan tetap diaktifkan untuk objek.

Pertimbangan performa

Performa dapat jauh lebih baik untuk objek yang dapat di-cache secara publik. Jika Anda memiliki objek yang digunakan untuk mengontrol banyak klien dan, sebagai akibatnya, ingin menonaktifkan caching untuk memberikan data terbaru:

  • Sebaiknya setel metadata Cache-Control objek ke public dengan max-age yang berdurasi 15-60 detik. Sebagian besar aplikasi dapat menoleransi objek yang tidak berlaku lagi selama beberapa detik, sebagai imbalan atas peningkatan performa.

  • Gunakan Cache-Control: no-store untuk suatu objek guna menunjukkan bahwa objek tersebut tidak boleh di-cache untuk permintaan berikutnya di cache mana pun.

Cloud Storage dengan Cloud CDN

Untuk mendapatkan performa terbaik saat menayangkan konten kepada pengguna, sebaiknya gunakan Cloud Storage dengan Cloud CDN.

Untuk menggunakan Cloud CDN, Anda harus menggunakan Load Balancer Aplikasi eksternal dengan bucket Cloud Storage sebagai backend. Untuk tutorial tentang cara menyiapkan load balancer HTTP(S) dengan bucket Cloud Storage, lihat Menghosting situs statis.

Dengan mode cache Cloud CDN, Anda dapat menerapkan konfigurasi penyimpanan cache terpadu di semua objek. Cloud CDN menggunakan metadata Cache-Control yang ditetapkan pada objek Anda untuk menentukan cara objek tersebut di-cache, kecuali jika Anda mengganti metadata Cache-Control menggunakan mode cache atau batas TTL.

Saat memilih antara penyimpanan cache bawaan Cloud Storage dan Cloud CDN, pertimbangkan hal-hal berikut:

Fitur Cloud Storage Cloud CDN
Ukuran file maksimum yang dapat di-cache 10 MiB 100 GiB 1
Akhir masa berlaku cache default 1 jam 1 jam (dapat dikonfigurasi)
Dukungan untuk domain kustom melalui HTTPS Tidak Ya
Pembatalan validasi cache Tidak Ya

1Ukuran file maksimum yang dapat di-cache untuk Cloud CDN adalah 100 GiB jika server origin mendukung permintaan rentang byte. Jika server origin tidak mendukung permintaan rentang byte, ukuran file maksimum yang dapat di-cache untuk Cloud CDN adalah 10 MiB.

Pertimbangan harga

Dalam hal harga, pilihan antara penyimpanan cache bawaan Cloud Storage dan Cloud CDN bergantung pada jumlah data yang Anda sajikan setiap bulannya, yang menentukan jumlah biaya Networking yang Anda keluarkan.

  • Jika Anda menyajikan kurang dari beberapa GiB data yang dapat di-cache dalam sebulan, mungkin akan lebih murah secara keseluruhan jika Anda mengandalkan penyimpanan cache bawaan Cloud Storage. Penyimpanan cache Cloud Storage dapat menimbulkan biaya Networking yang lebih tinggi jika dibandingkan dengan Cloud CDN, karena objek yang di-cache dan tidak di-cache dikenai biaya transfer data keluar yang sama (yang berarti Anda membayar penuh jika cache ditemukan). Namun, Anda hanya membayar biaya penggunaan penyimpanan data dan operasi yang terkait dengan Cloud Storage, bukan kombinasi Cloud Storage, Cloud CDN, dan Cloud Load Balancing.

  • Jika Anda rutin menyajikan 100 GiB atau lebih data yang dapat di-cache per bulan, atau perlu menggunakan logging per permintaan dan header kustom, mungkin akan lebih murah secara keseluruhan bagi Anda untuk mengandalkan Cloud CDN. Anda dikenai biaya transfer data keluar Cloud Storage dan biaya pengisian cache Cloud CDN untuk pengisian cache, dan harga jaringan Cloud CDN berlaku setelah cache penuh. Penghematan biaya jaringan yang Anda peroleh dari penggunaan Cloud CDN mungkin sebanding dengan biaya operasi yang lebih tinggi yang terkait dengan pemeliharaan Load Balancer Aplikasi eksternal dan Cloud CDN, bersama dengan Cloud Storage.

Langkah selanjutnya