Cloud & IT Cert Prep · Oppitunti

Välimuistikäyttäytyminen ja TTL-asetukset

Määritätte polkuihin perustuvan välimuistikäyttäytymisen, asetatte TTL:n vähimmäis-, oletus- ja enimmäisarvot ja hienosäädätte välimuistia Cache-Control-otsakkeilla.

Oppitunti 2/413 vaihetta

Välimuistikäyttäytyminen ja TTL-asetukset on ilmainen Cloud & IT Cert Prep-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cloud & IT Cert Prep-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.

Välimuistikäyttäytyminen: mitä se on?

Välimuistikäyttäytyminen koostuu säännöistä, jotka määrittävät, miten CloudFront käsittelee eri URL-polkujen malleja vastaavia pyyntöjä. Kukin välimuistikäyttäminen yhdistää polkumallin, kuten /images/*, /api/* tai *.css, tiettyyn alkuperään ja välimuistikokoonpanoon.

Jakelu sisältää yhden Default Cache Behavior -käyttäytymisen, joka vastaa kaikkia polkuja, joita tarkemmat käyttäytymiset eivät kata, sekä enintään 25 muuta polkupohjaista käyttäytymistä. CloudFront arvioi käyttäytymiset järjestyksessä tarkimmasta epätarkimpaan ja siirtyy lopuksi oletuskäyttäytymiseen.

Polkumallien vastaavuus

Polkumallit tukevat jokerimerkkejä: * vastaa mitä tahansa merkkien yhdistelmää vinoviivat mukaan lukien, ja ? vastaa mitä tahansa yksittäistä merkkiä. Esimerkkejä:

  • /images/* — kaikki URL-osoitteet, jotka alkavat merkkijonolla /images/
  • *.jpg — kaikki pyynnöt, jotka päättyvät merkkijonoon .jpg missä tahansa polussa
  • /api/v2/* — kaikki API v2 -reitit
  • /static/??.css — staattiset CSS-tiedostot, joiden edessä on täsmälleen kaksi merkkiä ennen päätettä .css

Käyttäytymiset arvioidaan jakelun kokoonpanossa määritetyssä järjestyksessä. Sijoittakaa tarkemmat mallit ensin. Oletuskäyttäytyminen (*) vastaa aina viimeisenä.

Välimuistikäytäntö ja alkuperän pyyntökäytäntö

CloudFront jakaa välimuistilogiikan kahteen käytäntötyyppiin:

  • Cache Policy: määrittää, mitä CloudFront käyttää välimuistiavaimena — otsakkeiden, kyselymerkkijonojen ja evästeiden yhdistelmää, jonka perusteella määritetään, vastaako välimuistissa oleva objekti pyyntöä. Määrittää myös TTL-rajat.
  • Origin Request Policy: määrittää, mitkä otsakkeet, kyselymerkkijonot ja evästeet välitetään alkuperälle, vaikka ne eivät kuuluisi välimuistiavaimeen. Näin todennuksen otsakkeet voidaan lähettää alkuperälle ilman, että välimuisti vaihtelee tunnuksen mukaan.

AWS tarjoaa hallinnoituja käytäntöjä, kuten CachingOptimized ja CachingDisabled, jotka kattavat useimmat käyttötapaukset, tai voitte luoda mukautettuja käytäntöjä.

CloudFrontin TTL-asetukset

CloudFront noudattaa Cache Policy -käytännön kolmea TTL-arvoa:

  • Minimum TTL: lyhin aika, jonka CloudFront säilyttää objektin välimuistissa alkuperän otsakkeista riippumatta (oletus 0)
  • Default TTL: aika, jonka CloudFront säilyttää objektin välimuistissa, kun alkuperä ei lähetä Cache-Control- tai Expires-otsaketta (oletus 86 400 sekuntia = 1 päivä)
  • Maximum TTL: pisin aika, jonka CloudFront säilyttää objektin välimuistissa; tämä rajoittaa alkuperän Cache-Control max-age -direktiiviä (oletus 31 536 000 = 1 vuosi)

Nämä kolme arvoa rajaavat alkuperien Cache-Control-otsakkeilla ilmoittamaa todellista välimuistin kestoa.

Alkuperien Cache-Control-otsakkeet

Kun alkuperänne lähettää otsakkeen Cache-Control: max-age=3600, CloudFront säilyttää objektin välimuistissa 3 600 sekunnin ajan, jos arvo on Cache Policy -käytännön Minimum TTL- ja Maximum TTL -rajojen sisällä. Jos alkuperä lähettää Cache-Control: no-cache tai Cache-Control: no-store, CloudFront tarkistaa alkuperältä sisällön ennen välimuistissa olevan kopion tarjoamista joka kerta.

Harvoin muuttuville staattisille resursseille kannattaa määrittää pitkä max-age, esimerkiksi 31536000 = 1 vuosi, ja käyttää välimuistin ohitusta (cache busting) lisäämällä tiedostonimiin sisällön tiiviste, kuten app.a3f4b5.js. Tällöin URL muuttuu sisällön muuttuessa ja vanha välimuistiversio mitätöityy automaattisesti.

# 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'

Staattisen ja dynaamisen käyttäytymisen erottaminen

Tehokas välimuistikäyttäytymisen toimintamalli erottaa staattisen ja dynaamisen sisällön:

  • /static/*, *.css, *.js, *.jpg → S3-alkuperä, CachingOptimized-käytäntö (pitkä TTL, ei evästeitä tai kyselymerkkijonoja välimuistiavaimessa)
  • /api/* → ALB-alkuperä, CachingDisabled-käytäntö (haetaan aina alkuperästä, kaikki otsakkeet ja evästeet välitetään)
  • /* (oletus) → ALB-alkuperä, kohtuullinen välimuistitus

Tämä erottaa hyvin välimuistittuvan staattisen tason dynaamisesta API-tasosta, maksimoi staattisen sisällön välimuistiosumien suhteen ja varmistaa, että API-vastaukset ovat aina ajan tasalla.

Välimuistin mitätöinti

Kun päivitätte sisältöä S3:ssa tai alkuperässä ja haluatte tarjota uuden version heti CloudFrontista odottamatta TTL:n vanhenemista, luotte välimuistin mitätöinnin. Määrittäkää mitätöitävät polut, kuten /images/logo.png tai /images/*, jolloin CloudFront poistaa kyseiset objektit kaikista reunavälimuisteista.

Mitätöinneistä peritään maksu: ensimmäiset 1 000 polkua kuukaudessa ovat maksuttomia, ja ylimääräisistä poluista veloitetaan polkukohtaisesti. Jokerimerkkiä käyttävät mitätöinnit, kuten /*, lasketaan yhdeksi poluksi. Hyvä käytäntö on käyttää staattisille resursseille versioituja tiedostonimiä (cache busting) toistuvien mitätöintien sijaan kustannusten ja viiveen vähentämiseksi.

# Create a cache invalidation for updated images
aws cloudfront create-invalidation \
  --distribution-id EDFDVBD6EXAMPLE \
  --paths '/images/logo.png' '/css/main.css'

Välimuistiavaimen osat

Välimuistiavain on yksilöivä tunniste, jota CloudFront käyttää välimuistissa olevan vastauksen etsimiseen. Oletusarvoisesti välimuistiavain sisältää vain URL-polun. Muiden osien lisääminen kasvattaa erillisten välimuistimerkintöjen määrää:

  • Kyselymerkkijonot: /search?q=aws ja /search?q=s3 ovat erillisiä välimuistimerkintöjä, jos q kuuluu välimuistiavaimeen
  • Otsakkeet: Accept-Encoding-otsakkeen lisääminen sallii CloudFrontin säilyttää gzip- ja ei-gzip-versiot erikseen välimuistissa
  • Evästeet: istuntoevästeiden lisääminen luo käyttäjäkohtaiset välimuistimerkinnät ja poistaa käytännössä välimuistituksen käytöstä

Minimoikaa välimuistiavaimen osat välimuistin tehokkuuden maksimoimiseksi. Sisällyttäkää vain osat, jotka todella tuottavat erilaista vastaussisältöä.

Pakkaus reunalla

CloudFront voi pakata tekstipohjaiset objektit, kuten HTML-, CSS-, JavaScript- ja JSON-sisällön, automaattisesti gzip- tai Brotli-muotoon ennen niiden toimittamista katselijoille. Tämä pienentää hyötykuorman kokoa 60–80 % ja nopeuttaa sivujen lataamista ilman muutoksia alkuperään.

Ottaaksenne pakkauksen käyttöön varmistakaa, että Cache Policy -käytäntö sisältää Accept-Encoding-otsakkeen välimuistiavaimessa, sillä CloudFrontin on säilytettävä gzip- ja ei-gzip-versiot erikseen, ja ottakaa Compress Objects Automatically käyttöön välimuistikäyttäytymisessä. CloudFront pakkaa yli 1 000 tavun ja alle 10 megatavun kokoiset objektit.

Välimuistiosumien suhde ja valvonta

Välimuistiosumien suhde on niiden pyyntöjen prosenttiosuus, jotka tarjotaan CloudFrontin välimuistista ilman yhteydenottoa alkuperään. Korkea suhde, vähintään 80 %, pienentää alkuperän kustannuksia ja parantaa suorituskykyä. Voitte seurata sitä CloudFront-konsolin Cache Statistics -raportista tai CacheHitRate-CloudWatch-metriikan avulla.

Välimuistiosumien suhdetta voi parantaa kasvattamalla TTL-arvoja, vähentämällä välimuistiavaimen otsakkeiden ja evästeiden määrää, käyttämällä kyselymerkkijonojen normalisointia (välittäkää vain sovelluksen todella käyttämät kyselymerkkijonot) ja määrittämällä alkuperässä asianmukaiset Cache-Control-otsakkeet.

# 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-1

Alkuperä- ja protokolla-asetukset käyttäytymiskohtaisesti

Kukin välimuistikäyttäytyminen voi osoittaa eri alkuperään, joten yksi CloudFront-jakelu voi tarjota sisältöä useista taustajärjestelmistä. Esimerkki:

  • /static/* → S3-alkuperä (yksityinen säilö OAC:n kautta)
  • /api/* → ALB-alkuperä alueella us-east-1
  • /media/* → MediaPackage CDN -alkuperä videon suoratoistoa varten

Kussakin käyttäytymisessä määritetään lisäksi erikseen Viewer Protocol Policy, Allowed HTTP Methods sekä funktioiden liitokset (CloudFront Functions tai Lambda@Edge). Näin yhdestä jakelusta muodostuu joustava, monikäyttöinen sisällönjakelukerros.

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteet.

Oppitunnin yhteenveto

Tässä oppitunnissa opitte, että välimuistikäyttäytymiset yhdistävät URL-polkujen mallit alkuperiin ja välimuistisääntöihin, Min/Default/Max TTL -rajat määrittävät, kuinka kauan sisältöä säilytetään välimuistissa ja alkuperän Cache-Control-otsakkeet ovat niiden läsnä ollessa ensisijaisia, sekä että välimuistin mitätöinnit poistavat vanhentuneen sisällön välittömästi kaikista reunasijainneista. Minimoikaa välimuistiavaimen osat välimuistiosumien suhteen maksimoimiseksi. Seuraavaksi tutustumme allekirjoitettuihin URL-osoitteisiin, allekirjoitettuihin evästeisiin ja maantieteellisiin rajoituksiin.

Aloita maksutta

Opi Cloud & IT Cert Prep tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
150
Oppitunnit
600

Usein kysytyt kysymykset

Onko oppitunti ”Välimuistikäyttäytyminen ja TTL-asetukset” ilmainen?

Kyllä – oppitunnin ”Välimuistikäyttäytyminen ja TTL-asetukset” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cloud & IT Cert Prep-kurssin, päivitä CoddyKit PROhon. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Välimuistikäyttäytyminen ja TTL-asetukset”?

Määritätte polkuihin perustuvan välimuistikäyttäytymisen, asetatte TTL:n vähimmäis-, oletus- ja enimmäisarvot ja hienosäädätte välimuistia Cache-Control-otsakkeilla. Harjoittelet Cloud & IT Cert Prep-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cloud & IT Cert Prep-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cloud & IT Cert Prep-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Välimuistikäyttäytyminen ja TTL-asetukset”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Cloud & IT Cert Prep-oppitunnilla?

Kyllä. Jokainen Cloud & IT Cert Prep-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. CloudFront-jakelut ja origin-palvelimet
  2. Välimuistikäyttäytyminen ja TTL-asetukset
  3. Allekirjoitetut URL-osoitteet, allekirjoitetut evästeet ja maantieteelliset rajoitukset
  4. CloudFront, WAF ja Lambda@Edge
← Takaisin: Cloud & IT Cert Prep