Tingkah Laku Cache dan Tetapan TTL
Tentukan tingkah laku cache berasaskan laluan, tetapkan TTL minimum, lalai dan maksimum, serta gunakan pengepala kawalan cache untuk memperhalus cache.
Tingkah Laku Cache dan Tetapan TTL ialah pelajaran AWS Solutions Architect percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AWS Solutions Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Tingkah Laku Cache: Apakah Maksudnya?
Tingkah laku cache ialah peraturan yang memberitahu CloudFront cara mengendalikan permintaan untuk corak laluan URL yang berbeza. Setiap tingkah laku cache memetakan corak laluan (contohnya, /images/*, /api/*, *.css) kepada asal tertentu dan konfigurasi caching.
Satu pengedaran mempunyai satu Tingkah Laku Cache Lalai (sepadan dengan semua laluan yang tidak dipadankan oleh tingkah laku yang lebih khusus) dan sehingga 25 tingkah laku tambahan berasaskan laluan. CloudFront menilai tingkah laku mengikut susunan daripada yang paling khusus kepada yang paling umum, kemudian kembali kepada lalai.
Pemadanan Corak Laluan
Corak laluan menyokong kad bebas: * sepadan dengan sebarang gabungan aksara termasuk garis miring, manakala ? sepadan dengan mana-mana satu aksara. Contoh:
/images/*— semua URL yang bermula dengan /images/*.jpg— semua permintaan yang berakhir dengan .jpg di mana-mana dalam laluan/api/v2/*— semua laluan API v2/static/??.css— fail CSS statik dengan tepat dua aksara sebelum .css
Tingkah laku dinilai mengikut susunan yang disenaraikan dalam konfigurasi pengedaran. Letakkan corak yang lebih khusus dahulu. Tingkah laku lalai (*) sentiasa dipadankan terakhir.
Dasar Cache berbanding Dasar Permintaan Asal
CloudFront memisahkan logik caching kepada dua jenis dasar:
- Dasar Cache: mentakrifkan perkara yang digunakan CloudFront sebagai kunci cache—gabungan pengepala, rentetan pertanyaan dan kuki yang menentukan sama ada objek cache sepadan dengan permintaan. Dasar ini juga menetapkan had TTL.
- Dasar Permintaan Asal: mentakrifkan pengepala, rentetan pertanyaan dan kuki yang dihantar kepada asal—walaupun perkara tersebut bukan sebahagian daripada kunci cache (untuk menghantar pengepala pengesahan kepada asal tanpa mengubah cache bagi setiap token)
AWS menyediakan dasar terurus (contohnya, CachingOptimized, CachingDisabled) yang meliputi kebanyakan kes penggunaan, atau anda boleh mencipta dasar tersuai.
Tetapan TTL dalam CloudFront
CloudFront mematuhi tiga nilai TTL daripada Dasar Cache:
- TTL Minimum: tempoh paling singkat CloudFront mencache objek, tanpa mengira pengepala asal (lalai 0)
- TTL Lalai: tempoh CloudFront mencache objek apabila asal tidak menghantar pengepala
Cache-ControlatauExpires(lalai 86,400 saat = 1 hari) - TTL Maksimum: tempoh paling lama CloudFront akan mencache objek, yang mengehadkan arahan
Cache-Control max-ageasal (lalai 31,536,000 = 1 tahun)
Ketiga-tiga nilai ini mengehadkan tempoh cache sebenar yang dihantar oleh asal melalui pengepala Cache-Control.
Pengepala Cache-Control daripada Asal
Apabila asal anda menghantar pengepala Cache-Control: max-age=3600, CloudFront mencache objek selama 3,600 saat—asalkan nilai ini berada dalam had TTL Minimum dan Maksimum Dasar Cache. Jika asal menghantar Cache-Control: no-cache atau Cache-Control: no-store, CloudFront akan menyemak dengan asal sebelum menyampaikan salinan cache setiap kali.
Untuk aset statik yang jarang berubah, tetapkan max-age yang panjang (contohnya, 31536000 = 1 tahun) dan gunakan pengosongan cache—sertakan cincangan kandungan dalam nama fail (contohnya, app.a3f4b5.js)—supaya URL berubah apabila kandungan berubah, sekali gus membatalkan versi lama dalam cache secara automatik.
# 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'Mengasingkan Tingkah Laku Statik dan Dinamik
Corak tingkah laku cache yang berkesan mengasingkan kandungan statik dan dinamik:
/static/*,*.css,*.js,*.jpg→ asal S3, dasar CachingOptimized (TTL tinggi, tiada kuki/rentetan pertanyaan dalam kunci cache)/api/*→ asal ALB, dasar CachingDisabled (sentiasa diambil daripada asal, semua pengepala/kuki dihantar)/*(lalai) → asal ALB, caching sederhana
Ini mengasingkan peringkat statik yang sangat sesuai dicache daripada peringkat API dinamik, sekali gus memaksimumkan nisbah cache hit untuk kandungan statik sambil memastikan respons API sentiasa terkini.
Pembatalan Cache
Apabila anda mengemas kini kandungan dalam S3 atau asal anda dan mahu menyampaikan versi baharu dengan segera daripada CloudFront tanpa menunggu TTL tamat tempoh, anda mencipta pembatalan cache. Tentukan laluan yang hendak dibatalkan (contohnya, /images/logo.png atau /images/*) dan CloudFront mengalih keluar objek tersebut daripada semua cache pinggir.
Pembatalan cache dikenakan kos: 1,000 laluan pertama setiap bulan adalah percuma; laluan tambahan dikenakan bayaran bagi setiap laluan. Pembatalan menggunakan kad bebas (contohnya, /*) dikira sebagai satu laluan. Amalan terbaik: gunakan nama fail berversi untuk aset statik (pengosongan cache) dan bukannya pembatalan yang kerap bagi mengurangkan kos dan kelewatan.
# 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 ialah pengecam unik yang digunakan CloudFront untuk mencari respons yang dicache. Secara lalai, kunci cache hanya terdiri daripada laluan URL. Penyertaan komponen tambahan meningkatkan bilangan entri cache yang berbeza:
- Rentetan pertanyaan:
/search?q=awsdan/search?q=s3ialah entri cache yang berasingan jikaqterdapat dalam kunci cache - Pengepala: penyertaan
Accept-Encodingmembolehkan CloudFront mencache versi gzip dan bukan gzip secara berasingan - Kuki: penyertaan kuki sesi mencipta entri cache bagi setiap pengguna, yang pada asasnya melumpuhkan caching
Minimumkan komponen kunci cache untuk kecekapan cache maksimum. Sertakan hanya perkara yang benar-benar menghasilkan kandungan respons yang berbeza.
Pemampatan di Lokasi Pinggir
CloudFront boleh memampatkan objek berasaskan teks (HTML, CSS, JavaScript, JSON) secara automatik menggunakan gzip atau Brotli sebelum menyampaikannya kepada penonton. Ini mengurangkan saiz muatan sebanyak 60–80% dan meningkatkan masa pemuatan halaman tanpa sebarang perubahan pada asal anda.
Untuk mendayakan pemampatan: pastikan Dasar Cache menyertakan Accept-Encoding dalam kunci cache (CloudFront perlu mencache versi gzip dan bukan gzip secara berasingan), dan dayakan Compress Objects Automatically dalam tingkah laku cache. CloudFront memampatkan objek yang lebih besar daripada 1,000 bait dan lebih kecil daripada 10 MB.
Nisbah Cache Hit dan Pemantauan
Nisbah cache hit ialah peratusan permintaan yang disampaikan daripada cache CloudFront tanpa pergi ke asal. Nisbah yang tinggi (80%+) bermaksud kos asal yang lebih rendah dan prestasi yang lebih baik. Pantau nisbah ini melalui laporan Cache Statistics dalam konsol CloudFront atau melalui metrik CloudWatch CacheHitRate.
Cara meningkatkan nisbah cache hit: tingkatkan nilai TTL, kurangkan bilangan pengepala/kuki dalam kunci cache, gunakan penormalan rentetan pertanyaan (hantar hanya rentetan pertanyaan yang benar-benar digunakan oleh aplikasi anda), dan tetapkan pengepala Cache-Control yang sesuai pada asal.
# 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-1Tetapan Asal dan Protokol bagi Setiap Tingkah Laku
Setiap tingkah laku cache boleh menunjuk kepada asal yang berbeza, yang membolehkan satu pengedaran CloudFront menyampaikan kandungan daripada berbilang bahagian belakang. Contohnya:
/static/*→ asal S3 (bucket peribadi melalui OAC)/api/*→ asal ALB di us-east-1/media/*→ asal CDN MediaPackage untuk penstriman video
Setiap tingkah laku juga mengkonfigurasi Dasar Protokol Penonton, Kaedah HTTP yang Dibenarkan dan perkaitan fungsi (CloudFront Functions atau Lambda@Edge) secara berasingan. Ini menjadikan satu pengedaran sebagai lapisan penyampaian yang fleksibel dan serba guna.
Semakan Pantas
Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.
Ulang Kaji Pelajaran
Dalam pelajaran ini, anda telah mempelajari bahawa: tingkah laku cache memetakan corak laluan URL kepada asal dan peraturan caching, had TTL Minimum/Lalai/Maksimum mengawal tempoh kandungan dicache dengan pengepala Cache-Control asal mengambil keutamaan apabila tersedia, dan pembatalan cache mengosongkan kandungan lapuk dengan serta-merta daripada semua lokasi pinggir. Minimumkan komponen kunci cache untuk memaksimumkan nisbah hit. Seterusnya, kita akan meneroka URL bertandatangan, kuki bertandatangan dan sekatan geografi.
Pelajari AWS Solutions Architect dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Tingkah Laku Cache dan Tetapan TTL” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran AWS Solutions Architect, termasuk “Tingkah Laku Cache dan Tetapan TTL”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Tingkah Laku Cache dan Tetapan TTL”?
Tentukan tingkah laku cache berasaskan laluan, tetapkan TTL minimum, lalai dan maksimum, serta gunakan pengepala kawalan cache untuk memperhalus cache. Anda berlatih AWS Solutions Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan AWS Solutions Architect?
Tiada pengalaman terdahulu diperlukan. Pembelajaran AWS Solutions Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Tingkah Laku Cache dan Tetapan TTL” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Edaran dan Asal CloudFront
- Tingkah Laku Cache dan Tetapan TTL
- URL Ditandatangani, Kuki Ditandatangani dan Sekatan Geografi
- CloudFront dengan WAF dan Lambda@Edge