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:
- Objek dapat diakses secara publik.
- Objek tidak disimpan dalam bucket yang mengaktifkan Requester Pay dan tidak berada dalam perimeter layanan Virtual Private Cloud.
- Objek tidak dienkripsi menggunakan kunci enkripsi yang dikelola pelanggan atau kunci enkripsi yang disediakan pelanggan.
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 menetapkanmax-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 kepublic
denganmax-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
- Baca selengkapnya tentang metadata
Cache-Control
. - Pelajari perintah
Cache-Control
RFC lebih lanjut. - Baca ringkasan penyimpanan cache untuk Cloud CDN.
- Pelajari cara membuat load balancer HTTP(S) eksternal untuk menayangkan permintaan dari bucket Cloud Storage.
- Baca detail harga untuk Load Balancer Aplikasi eksternal dan Cloud CDN.