Perilaku Tembolok dan Pengaturan TTL
Tentukan perilaku tembolok berbasis jalur, atur TTL minimum, bawaan, dan maksimum, serta gunakan header kontrol-tembolok untuk menyempurnakan proses penyimpanan tembolok.
Perilaku Tembolok dan Pengaturan TTL adalah pelajaran AWS Solutions Architect gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AWS Solutions Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AWS Solutions Architect mencakup 4 pelajaran total.
Perilaku Cache: Apa Itu?
Perilaku cache adalah aturan yang memberi tahu CloudFront cara menangani Request untuk pola jalur URL yang berbeda. Setiap perilaku cache memetakan pola jalur (misalnya, /images/*, /api/*, *.css) ke origin tertentu dan konfigurasi caching.
Satu distribusi memiliki satu Perilaku Cache Default (yang mencocokkan semua jalur yang tidak ditangani oleh perilaku yang lebih spesifik) dan hingga 25 perilaku tambahan berbasis jalur. CloudFront mengevaluasi perilaku berdasarkan urutan dari yang paling spesifik hingga yang paling umum, lalu beralih ke default.
Pencocokan Pola Jalur
Pola jalur mendukung wildcard: * mencocokkan kombinasi karakter apa pun termasuk garis miring, dan ? mencocokkan satu karakter apa pun. Contoh:
/images/*— semua URL yang dimulai dengan /images/*.jpg— semua Request yang diakhiri dengan .jpg di bagian mana pun pada jalur/api/v2/*— semua rute API v2/static/??.css— file CSS statis dengan tepat dua karakter sebelum .css
Perilaku dievaluasi berdasarkan urutan yang tercantum dalam konfigurasi distribusi. Letakkan pola yang lebih spesifik terlebih dahulu. Perilaku default (*) selalu dicocokkan terakhir.
Kebijakan Cache vs Kebijakan Request Origin
CloudFront memisahkan logika caching menjadi dua jenis kebijakan:
- Kebijakan Cache: menentukan apa yang digunakan CloudFront sebagai kunci cache—gabungan header, string kueri, dan cookie yang menentukan apakah objek yang di-cache cocok dengan suatu Request. Kebijakan ini juga menetapkan batas TTL.
- Kebijakan Request Origin: menentukan header, string kueri, dan cookie mana yang diteruskan ke origin—meskipun bukan bagian dari kunci cache (untuk mengirim header autentikasi ke origin tanpa membedakan cache berdasarkan token)
AWS menyediakan kebijakan terkelola (misalnya, CachingOptimized, CachingDisabled) yang mencakup sebagian besar kasus penggunaan, atau Anda dapat membuat kebijakan kustom.
Pengaturan TTL di CloudFront
CloudFront mematuhi tiga nilai TTL dari Kebijakan Cache:
- TTL Minimum: waktu tersingkat CloudFront menyimpan objek di cache, terlepas dari header origin (default 0)
- TTL Default: waktu CloudFront menyimpan objek di cache saat origin tidak mengirimkan header
Cache-ControlatauExpires(default 86.400 detik = 1 hari) - TTL Maksimum: waktu terlama CloudFront menyimpan objek di cache, dengan membatasi direktif
Cache-Control max-agedari origin (default 31.536.000 = 1 tahun)
Ketiga nilai ini membatasi durasi cache aktual yang dikirim oleh origin melalui header Cache-Control.
Header Cache-Control dari Origin
Saat origin Anda mengirimkan header Cache-Control: max-age=3600, CloudFront menyimpan objek di cache selama 3.600 detik—selama nilai ini berada dalam batas TTL Minimum dan Maksimum Kebijakan Cache. Jika origin mengirimkan Cache-Control: no-cache atau Cache-Control: no-store, CloudFront akan memeriksa origin sebelum menyajikan salinan yang di-cache setiap kali.
Untuk aset statis yang jarang berubah, tetapkan max-age yang panjang (misalnya, 31536000 = 1 tahun) dan gunakan cache busting—sertakan hash konten dalam nama file (misalnya, app.a3f4b5.js)—agar URL berubah saat konten berubah dan versi lama yang di-cache otomatis tidak berlaku.
# S3 object metadata with long cache TTL
aws s3 cp app.a3f4b5.js s3://my-bucket/ \
--cache-control 'max-age=31536000, immutable' \
--content-type 'application/javascript'Memisahkan Perilaku Statis dan Dinamis
Pola perilaku cache yang efektif memisahkan konten statis dan dinamis:
/static/*,*.css,*.js,*.jpg→ origin S3, kebijakan CachingOptimized (TTL tinggi, tanpa cookie/string kueri dalam kunci cache)/api/*→ origin ALB, kebijakan CachingDisabled (selalu diambil dari origin, semua header/cookie diteruskan)/*(default) → origin ALB, caching moderat
Ini memisahkan lapisan statis yang sangat mudah di-cache dari lapisan API dinamis, sehingga memaksimalkan rasio cache hit untuk konten statis sekaligus memastikan respons API selalu terbaru.
Invalidasi Cache
Saat Anda memperbarui konten di S3 atau origin dan ingin segera menyajikan versi baru dari CloudFront tanpa menunggu TTL kedaluwarsa, Anda membuat invalidasi cache. Tentukan jalur yang akan diinvalidasi (misalnya, /images/logo.png atau /images/*), lalu CloudFront menghapus objek tersebut dari semua cache edge.
Invalidasi dikenai biaya: 1.000 jalur pertama per bulan gratis; jalur tambahan dikenai biaya per jalur. Invalidasi wildcard (misalnya, /*) dihitung sebagai satu jalur. Praktik terbaiknya adalah menggunakan nama file berversi untuk aset statis (cache busting), bukan invalidasi yang sering, guna mengurangi biaya dan penundaan.
# Create a cache invalidation for updated images
aws cloudfront create-invalidation \
--distribution-id EDFDVBD6EXAMPLE \
--paths '/images/logo.png' '/css/main.css'Komponen Kunci Cache
Kunci cache adalah pengenal unik yang digunakan CloudFront untuk mencari respons yang di-cache. Secara default, kunci cache hanya berupa jalur URL. Menyertakan komponen tambahan akan meningkatkan jumlah entri cache yang berbeda:
- String kueri:
/search?q=awsdan/search?q=s3merupakan entri cache terpisah jikaqada dalam kunci cache - Header: menyertakan
Accept-Encodingmemungkinkan CloudFront menyimpan versi gzip dan non-gzip secara terpisah - Cookie: menyertakan cookie sesi membuat entri cache per pengguna, yang secara efektif menonaktifkan caching
Minimalkan komponen kunci cache untuk efisiensi cache maksimum. Sertakan hanya komponen yang benar-benar menghasilkan konten respons yang berbeda.
Kompresi di Edge
CloudFront dapat secara otomatis mengompresi objek berbasis teks (HTML, CSS, JavaScript, JSON) menggunakan gzip atau Brotli sebelum mengirimkannya kepada viewer. Hal ini mengurangi ukuran muatan sebesar 60–80% dan mempercepat waktu pemuatan halaman tanpa perubahan apa pun pada origin Anda.
Untuk mengaktifkan kompresi: pastikan Kebijakan Cache menyertakan Accept-Encoding dalam kunci cache (CloudFront perlu menyimpan versi gzip dan non-gzip secara terpisah), lalu aktifkan Compress Objects Automatically dalam perilaku cache. CloudFront mengompresi objek yang berukuran lebih dari 1.000 byte dan kurang dari 10 MB.
Rasio Cache Hit dan Pemantauan
Rasio cache hit adalah persentase Request yang disajikan dari cache CloudFront tanpa menuju ke origin. Rasio yang tinggi (80%+) berarti biaya origin lebih rendah dan performa lebih baik. Pantau rasio ini melalui laporan Cache Statistics di konsol CloudFront atau melalui metrik CloudWatch CacheHitRate.
Cara meningkatkan rasio cache hit: tingkatkan nilai TTL, kurangi jumlah header/cookie dalam kunci cache, gunakan normalisasi string kueri (teruskan hanya string kueri yang benar-benar digunakan aplikasi Anda), dan tetapkan header Cache-Control yang sesuai di origin.
# Get CloudFront metrics for cache hit rate
aws cloudwatch get-metric-statistics \
--namespace AWS/CloudFront \
--metric-name CacheHitRate \
--dimensions Name=DistributionId,Value=EDFDVBD6EXAMPLE \
--start-time 2026-06-19T00:00:00Z \
--end-time 2026-06-20T00:00:00Z \
--period 3600 \
--statistics Average \
--region us-east-1Pengaturan Origin dan Protokol per Perilaku
Setiap perilaku cache dapat mengarah ke origin yang berbeda, sehingga satu distribusi CloudFront dapat menyajikan konten dari beberapa backend. Contoh:
/static/*→ origin S3 (Bucket privat melalui OAC)/api/*→ origin ALB di us-east-1/media/*→ origin CDN MediaPackage untuk streaming video
Setiap perilaku juga mengonfigurasi secara independen Kebijakan Protokol Viewer, Metode HTTP yang Diizinkan, dan asosiasi fungsi (CloudFront Functions atau Lambda@Edge). Dengan demikian, satu distribusi menjadi lapisan delivery yang fleksibel dan serbaguna.
Pemeriksaan Cepat
Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.
Rangkuman Pelajaran
Dalam pelajaran ini Anda mempelajari: perilaku cache memetakan pola jalur URL ke origin dan aturan caching, batas TTL Minimum/Default/Maksimum mengontrol berapa lama konten di-cache dengan header Cache-Control origin yang lebih diutamakan jika tersedia, dan invalidasi cache segera menghapus konten kedaluwarsa dari semua lokasi edge. Minimalkan komponen kunci cache untuk memaksimalkan rasio hit. Selanjutnya kita akan membahas URL bertanda tangan, cookie bertanda tangan, dan pembatasan geografis.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Perilaku Tembolok dan Pengaturan TTL” gratis?
Ya — teks lengkap “Perilaku Tembolok dan Pengaturan TTL” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AWS Solutions Architect, upgrade ke CoddyKit PRO. Kursus AWS Solutions Architect mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Perilaku Tembolok dan Pengaturan TTL”?
Tentukan perilaku tembolok berbasis jalur, atur TTL minimum, bawaan, dan maksimum, serta gunakan header kontrol-tembolok untuk menyempurnakan proses penyimpanan tembolok. Kamu berlatih AWS Solutions Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AWS Solutions Architect?
Tidak diperlukan pengalaman sebelumnya. AWS Solutions Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Perilaku Tembolok dan Pengaturan TTL” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Distribusi dan Asal CloudFront
- Perilaku Tembolok dan Pengaturan TTL
- URL Bertanda Tangan, Cookie Bertanda Tangan, dan Pembatasan Geografis
- CloudFront dengan WAF dan Lambda@Edge