AWS Solutions Architect · Lektion

CloudFront-distributioner og origins

Opret en CloudFront-distribution, konfigurer S3- og brugerdefinerede HTTP-origins, og forstå Origin Access Control til S3-sikkerhed.

Lektion 1 af 413 trin

CloudFront-distributioner og origins er en gratis AWS Solutions Architect-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i AWS Solutions Architect, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. AWS Solutions Architect-kurset indeholder 4 lektioner i alt.

Hvad er Amazon CloudFront?

Amazon CloudFront er AWS' globale Content Delivery Network (CDN), der cacher og leverer indhold fra kantlokationer fordelt på over 400 byer i mere end 90 lande. Når en bruger anmoder om indhold, leverer CloudFront det fra den nærmeste kantlokation, hvilket reducerer latenstiden markant sammenlignet med at hente det fra oprindelsesserveren.

CloudFront er ikke kun til statiske filer – tjenesten accelererer også dynamisk indhold, API'er og videostreaming. Den integreres med andre AWS-tjenester som S3, ALB, Lambda@Edge, WAF og Shield, hvilket gør den til standardlaget for distribution i moderne AWS-arkitekturer.

CloudFront-distributioner

En CloudFront-distribution er den primære konfigurationsenhed. Den definerer en eller flere oprindelser (hvor indholdet findes), cacheadfærd (hvordan forskellige URL-stier caches), sikkerhedsindstillinger og prisniveauer. Du får adgang til indholdet via distributionens domænenavn (f.eks. d1234abcdef.cloudfront.net) eller et brugerdefineret domæne (f.eks. cdn.example.com) ved hjælp af en CNAME- eller ALIAS-post.

Efter oprettelsen tager det 10-15 minutter at implementere distributioner globalt på alle kantlokationer. Ændringer i en eksisterende distribution tager også flere minutter at udbrede. Der har historisk været to distributionstyper, men i dag bruger alle distributioner den samlede konfigurationsgrænseflade.

# Create a CloudFront distribution backed by S3
aws cloudfront create-distribution \
  --distribution-config '{
    "Origins": {
      "Quantity": 1,
      "Items": [{
        "Id": "S3Origin",
        "DomainName": "my-bucket.s3.amazonaws.com",
        "S3OriginConfig": {"OriginAccessIdentity": ""}
      }]
    },
    "DefaultCacheBehavior": {
      "TargetOriginId": "S3Origin",
      "ViewerProtocolPolicy": "redirect-to-https",
      "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6"
    },
    "Enabled": true,
    "Comment": "My S3 distribution",
    "CallerReference": "2026-06-20-unique"
  }'

S3 som CloudFront-oprindelse

At bruge en S3-bucket som CloudFront-oprindelse er et af de mest almindelige mønstre. CloudFront henter objekter fra S3, cacher dem på kantlokationer og leverer efterfølgende forespørgsler fra cachen uden at kontakte S3 igen. Det reducerer omkostningerne til S3-forespørgsler, forbedrer latenstiden for globale brugere og aflaster S3 for båndbredde.

Du behøver ikke gøre bucketen offentlig for at levere et S3-baseret websted. Brug i stedet Origin Access Control (OAC) – den moderne erstatning for Origin Access Identity (OAI). OAC giver kun CloudFront-distributionen tilladelse til at læse fra bucketen, så S3 forbliver privat, mens CloudFront leverer indholdet offentligt.

# S3 bucket policy granting OAC access to CloudFront
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Principal': {
      'Service': 'cloudfront.amazonaws.com'
    },
    'Action': 's3:GetObject',
    'Resource': 'arn:aws:s3:::my-bucket/*',
    'Condition': {
      'StringEquals': {
        'AWS:SourceArn': 'arn:aws:cloudfront::123456789:distribution/EDFDVBD6EXAMPLE'
      }
    }
  }]
}

Brugerdefinerede HTTP-/HTTPS-oprindelser

CloudFront understøtter også brugerdefinerede oprindelser: enhver HTTP- eller HTTPS-server, der er tilgængelig fra internettet, herunder EC2-instanser, Application Load Balancers, API Gateway-endpoints og lokale servere. Brugerdefinerede oprindelser gør det muligt for CloudFront at cache og accelerere dynamiske applikationer og API'er, ikke kun statiske filer.

Når du bruger en ALB som brugerdefineret oprindelse, skal du konfigurere ALB'en til kun at acceptere forbindelser fra CloudFronts IP-intervaller i dens sikkerhedsgruppe. Det tvinger al ekstern trafik gennem CloudFront, så WAF-regler og TLS-terminering kan aktiveres ved kanten, mens ALB'en holdes intern i AWS.

Origin Access Control (OAC) kontra OAI

Origin Access Identity (OAI) var den oprindelige måde at begrænse S3-bucket-adgang til CloudFront på. Det er en særlig CloudFront-brugeridentitet, der tildeles i S3-bucket-politikken. OAI fungerer stadig, men betragtes som forældet.

Origin Access Control (OAC) er den moderne erstatning. OAC understøtter alle typer S3-buckets (herunder S3 i AWS China-Regions og SSE-KMS-krypterede buckets), bruger IAM-tjenesteprincipaler til mere detaljeret kontrol og signerer automatisk forespørgsler til S3 med SigV4. Brug altid OAC i stedet for OAI til nye distributioner.

Protokolpolitik for brugere

Protokolpolitikken for brugere styrer, hvordan CloudFront håndterer forbindelser mellem brugere (viewere) og kantlokationen:

  • HTTP og HTTPS: Tillad begge dele; anbefales ikke til følsomt indhold
  • Omdiriger HTTP til HTTPS: Omdiriger HTTP-forespørgsler transparent til HTTPS; den mest almindelige indstilling
  • Kun HTTPS: Afvis HTTP-forbindelser fuldstændigt; brug dette til streng håndhævelse af TLS

Separat styrer oprindelsesprotokolpolitikken, hvordan CloudFront kommunikerer med din oprindelse: kun HTTP, kun HTTPS eller match bruger. For S3-oprindelser med OAC bruger CloudFront altid HTTPS.

Brugerdefinerede domæner og SSL/TLS-certifikater

Hvis du vil levere indhold fra cdn.example.com i stedet for CloudFront-domænet, konfigurerer du et alternativt domænenavn (CNAME) i distributionen og tilknytter et SSL/TLS-certifikat fra AWS Certificate Manager (ACM). ACM-certifikatet skal være i regionen us-east-1 (uanset hvor din distribution leverer trafik fra), fordi CloudFront er en global tjeneste, der administreres fra us-east-1.

Opret Route 53-posten som en ALIAS-post, der peger på CloudFront-distributionens domænenavn. CloudFront leverer automatisk dit certifikat til matchende SNI-anmodninger.

# Request a certificate in us-east-1 for CloudFront
aws acm request-certificate \
  --domain-name cdn.example.com \
  --validation-method DNS \
  --region us-east-1

Prisklasser

CloudFronts prisklasse styrer, hvilke edge-lokationer der bruges til at levere din distribution. Højere prisklasser omfatter dyrere edge-lokationer (typisk i regioner med højere båndbreddeomkostninger):

  • Prisklasse 100: kun Nordamerika og Europa (laveste pris)
  • Prisklasse 200: Nordamerika, Europa, Asien, Mellemøsten og Afrika
  • Prisklasse Alle: alle edge-lokationer verden over (bedste ydeevne, højeste pris)

Brug prisklasse 100 til interne værktøjer eller målgrupper, der er begrænset til Nordamerika og Europa. Brug prisklasse Alle til applikationer rettet mod forbrugere over hele verden.

Oprindelsesgrupper og failover

Oprindelsesgrupper aktiverer failover for CloudFronts oprindelse. Du definerer en primær og en sekundær oprindelse i en gruppe. Hvis den primære oprindelse returnerer en bestemt HTTP-fejlkode (f.eks. 500, 502, 503 eller 504), prøver CloudFront automatisk anmodningen igen mod den sekundære oprindelse.

Failover for oprindelsen er nyttigt til katastrofeberedskab: Behold en primær S3-bucket i us-east-1 og en replikeret sikkerhedskopi i us-west-2 som den sekundære oprindelse. CloudFront skifter transparent over under et S3-nedbrud, uden at der kræves DNS-ændringer. Dette mønster supplerer S3 Cross-Region Replication.

CloudFront-adgangslogfiler

CloudFront kan levere adgangslogfiler til en S3-bucket, hvor der registreres oplysninger om hver eneste seeranmodning: tidsstempel, edge-lokation, statuskode, overførte bytes, cache-hit eller cache-miss, brugeragent og meget mere. Logfilerne leveres i batches med få minutters mellemrum.

Brug adgangslogfiler til at analysere trafikmønstre, identificere populært indhold, kontrollere sikkerhedsrelevante felter (IP, henviser og brugeragent) og måle cache-hit-forhold. Feltet x-edge-result-type fortæller, om anmodningen var et Hit, Miss eller RefreshHit ved edge-lokationen.

# Enable access logging on a distribution
aws cloudfront update-distribution \
  --id EDFDVBD6EXAMPLE \
  --distribution-config '{
    ...existing config...
    "Logging": {
      "Enabled": true,
      "Bucket": "my-logs-bucket.s3.amazonaws.com",
      "Prefix": "cloudfront-logs/",
      "IncludeCookies": false
    }
  }' \
  --if-match ETVPDKIKX0DER

Edge-lokationer sammenlignet med regionale edge-caches

CloudFront har to niveauer af cacheinfrastruktur:

  • Edge-lokationer: hundredvis af PoP'er globalt tæt på slutbrugerne, som leverer cachelagret indhold med minimal latenstid
  • Regionale edge-caches (REC'er): 13 større caches med længere levetid mellem edge-lokationerne og oprindelserne, som leverer indhold, der ikke er populært nok til at blive i de små caches på edge-lokationerne

Når en anmodning ikke findes i edge-lokationens cache, tjekker CloudFront den regionale edge-cache, før den går hele vejen til oprindelsen. REC'er er transparente—du konfigurerer dem ikke direkte—men de forbedrer cache-hit-forholdet betydeligt for indhold med lav popularitet og reducerer belastningen på oprindelsen.

Hurtigt tjek

Test din forståelse af AWS Solutions Architect-koncepterne (SAA-C03) fra denne lektion.

Opsummering af lektionen

I denne lektion lærte du, at CloudFront-distributioner cacher indhold på edge-lokationer globalt, at OAC holder S3-buckets private, samtidig med at CloudFront får adgang, og at brugerdefinerede oprindelser understøtter ALB'er, API Gateway og enhver HTTP-server. ACM-certifikater til CloudFront skal klargøres i us-east-1. Næste gang undersøger vi cacheadfærd og TTL-indstillinger.

Gratis at komme i gang

Lær AWS Solutions Architect med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “CloudFront-distributioner og origins” gratis?

Ja — alle 3 lektioner i læringssporet AWS Solutions Architect, inklusive “CloudFront-distributioner og origins”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. AWS Solutions Architect-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “CloudFront-distributioner og origins”?

Opret en CloudFront-distribution, konfigurer S3- og brugerdefinerede HTTP-origins, og forstå Origin Access Control til S3-sikkerhed. Du øver dig i AWS Solutions Architect med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på AWS Solutions Architect?

Der kræves ingen tidligere erfaring. AWS Solutions Architect på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “CloudFront-distributioner og origins”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne AWS Solutions Architect-lektion?

Ja. Alle AWS Solutions Architect-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. CloudFront-distributioner og origins
  2. Cacheadfærd og TTL-indstillinger
  3. Signerede URL'er, signerede cookies og geobegrænsning
  4. CloudFront med WAF og Lambda@Edge
← Tilbage til AWS Solutions Architect