Inizia con una distribuzione standard (AWS CLI) - Amazon CloudFront

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Inizia con una distribuzione standard (AWS CLI)

Le procedure in questa sezione mostrano come utilizzare AWS CLI with CloudFront per impostare una configurazione di base che prevede quanto segue:

  • Creazione di un bucket Amazon S3 da utilizzare come origine di distribuzione.

  • Archiviazione delle versioni originali dei tuoi oggetti nel bucket S3.

  • Utilizzo del controllo dell'accesso all'origine (OAC) per inviare richieste autenticate all'origine Amazon S3. OAC invia richieste CloudFront per impedire agli utenti di accedere direttamente al tuo bucket S3. Per ulteriori informazioni su OAC, consulta. Limita l'accesso a un'origine Amazon S3

  • Utilizzo del nome di CloudFront dominio URLs per gli oggetti (ad esempio,https://d111111abcdef8.cloudfront.net/index.html).

  • Mantenete gli oggetti in posizioni CloudFront periferiche per la durata predefinita di 24 ore (la durata minima è 0 secondi).

La maggior parte delle opzioni è personalizzabile. Per informazioni su come personalizzare le opzioni di distribuzione CloudFront , consulta Creazione di una distribuzione.

Prerequisiti

Prima di iniziare, assicurati di aver completato le fasi in Configura il tuo Account AWS.

Installalo AWS CLI e configuralo con le tue credenziali. Per ulteriori informazioni, consulta Nozioni di base su AWS CLI nella Guida per l'utente di AWS CLI .

Creazione di un bucket Amazon S3

Un bucket Amazon S3 è un contenitore per file (oggetti) o cartelle. CloudFront può distribuire quasi tutti i tipi di file per te quando la fonte è un bucket S3. Ad esempio, CloudFront può distribuire testo, immagini e video. Non c'è un massimo per la quantità di dati che è possibile memorizzare in Amazon S3.

Per questo tutorial, crei un bucket S3 e carichi un file HTML che utilizzerai per creare una pagina web di base.

aws s3 mb s3://amzn-s3-demo-bucket/ --region us-east-1

Sostituiscilo amzn-s3-demo-bucket con un nome di bucket univoco a livello globale. Per questo Regione AWS, ti consigliamo di scegliere una regione geograficamente vicina a te. Ciò riduce la latenza e i costi, ma anche la scelta di una regione diversa funziona. Ad esempio, potresti farlo per soddisfare i requisiti normativi.

Carica il contenuto nel bucket

Per questo tutorial, scarica ed estrai i file di contenuto di esempio per una pagina web di base «Hello World».

# Create a temporary directory mkdir -p ~/cloudfront-demo # Download the sample Hello World files curl -o ~/cloudfront-demo/hello-world-html.zip https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/samples/hello-world-html.zip # Extract the zip file unzip ~/cloudfront-demo/hello-world-html.zip -d ~/cloudfront-demo/hello-world

Questo crea una cartella con un index.html file e una css cartella. Carica questi file nel tuo bucket S3.

aws s3 cp ~/cloudfront-demo/hello-world/ s3://amzn-s3-demo-bucket/ --recursive>

Crea un Origin Access Control (OAC)

Per questo tutorial, creerai un Origin Access Control (OAC). OAC ti aiuta a inviare in modo sicuro richieste autenticate alla tua origine Amazon S3. Per ulteriori informazioni su OAC, consulta. Limita l'accesso a un'origine Amazon S3

aws cloudfront create-origin-access-control \ --origin-access-control-config Name="oac-for-s3",SigningProtocol=sigv4,SigningBehavior=always,OriginAccessControlOriginType=s3

Salva l'ID OAC dall'output come variabile di ambiente. Sostituisci il valore di esempio con il tuo ID OAC. Lo utilizzerai nel passaggio successivo.

OAC_ID="E1ABCD2EFGHIJ"

Crea una distribuzione standard

Crea un file di configurazione della distribuzione denominatodistribution-config.json. Sostituisci il nome del bucket di esempio con il nome del bucket utilizzato per i Id valoriDomainName, eTargetOriginId.

cat > distribution-config.json << EOF { "CallerReference": "cli-example-$(date +%s)", "Origins": { "Quantity": 1, "Items": [ { "Id": "S3-amzn-s3-demo-bucket", "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com", "S3OriginConfig": { "OriginAccessIdentity": "" }, "OriginAccessControlId": "$OAC_ID" } ] }, "DefaultCacheBehavior": { "TargetOriginId": "S3-amzn-s3-demo-bucket", "ViewerProtocolPolicy": "redirect-to-https", "AllowedMethods": { "Quantity": 2, "Items": ["GET", "HEAD"], "CachedMethods": { "Quantity": 2, "Items": ["GET", "HEAD"] } }, "DefaultTTL": 86400, "MinTTL": 0, "MaxTTL": 31536000, "Compress": true, "ForwardedValues": { "QueryString": false, "Cookies": { "Forward": "none" } } }, "Comment": "CloudFront distribution for S3 bucket", "Enabled": true } EOF

Crea la distribuzione standard.

aws cloudfront create-distribution --distribution-config file://distribution-config.json

Salva l'ID di distribuzione e il nome di dominio dall'output come variabili di ambiente. Sostituire i valori di esempio con i propri valori. Le utilizzerai più avanti in questo tutorial.

DISTRIBUTION_ID="EABCD1234XMPL" DOMAIN_NAME="d111111abcdef8.cloudfront.net"

Prima di utilizzare la distribuzione e il bucket S3 di questo tutorial in un ambiente di produzione, assicuratevi di configurarli per soddisfare le vostre esigenze specifiche. Per informazioni sulla configurazione dell'accesso in un ambiente di produzione, consulta. Configura l'accesso sicuro e limita l'accesso ai contenuti

Aggiorna la tua policy sui bucket S3

Aggiorna la tua policy sui bucket S3 per consentire l'accesso CloudFront agli oggetti. Sostituisci il nome del bucket di esempio con il tuo nome del bucket.

# Get your AWS account ID ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text) # Create the bucket policy cat > bucket-policy.json << EOF { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipal", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::$ACCOUNT_ID:distribution/$DISTRIBUTION_ID" } } } ] } EOF # Apply the bucket policy aws s3api put-bucket-policy \ --bucket amzn-s3-demo-bucket \ --policy file://bucket-policy.json

Conferma l'implementazione della distribuzione

Dopo aver creato la distribuzione, il completamento della distribuzione richiederà del tempo. Quando lo stato della distribuzione cambia da InProgress aDeployed, procedi al passaggio successivo.

aws cloudfront get-distribution --id $DISTRIBUTION_ID --query 'Distribution.Status'

In alternativa, è possibile utilizzare il wait comando per attendere la distribuzione.

aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID

Accedi ai tuoi contenuti tramite CloudFront

Per accedere ai tuoi contenuti CloudFront, combina il nome di dominio utilizzato per la CloudFront distribuzione con la pagina principale dei tuoi contenuti. Sostituisci il nome di CloudFront dominio di esempio con il tuo.

https://d111111abcdef8.cloudfront.net/index.html

Se hai seguito i passaggi precedenti e hai creato il file HTML, dovresti vedere una pagina web con la scritta Hello world! .

Quando carichi più contenuti in questo bucket S3, puoi accedervi CloudFront combinando il nome del dominio di CloudFront distribuzione con il percorso dell'oggetto nel bucket S3. Ad esempio, se carichi un nuovo file denominato new-page.html nella root del bucket S3, l'URL è simile al seguente:

https://d111111abcdef8.cloudfront.net/new-page.html.

Eliminazione

Se hai creato la distribuzione e il bucket S3 solo come esercizio di apprendimento, eliminali in modo da non addebitare più addebiti. Disattiva ed elimina prima la distribuzione.

Per disabilitare ed eliminare una distribuzione standard (AWS CLI)
  1. Innanzitutto, disabilita la distribuzione.

    # Get the current configuration and ETag ETAG=$(aws cloudfront get-distribution-config --id $DISTRIBUTION_ID --query 'ETag' --output text) # Create a modified configuration with Enabled=false aws cloudfront get-distribution-config --id $DISTRIBUTION_ID | \ jq '.DistributionConfig.Enabled = false' > temp_disabled_config.json # Update the distribution to disable it aws cloudfront update-distribution \ --id $DISTRIBUTION_ID \ --distribution-config file://<(jq '.DistributionConfig' temp_disabled_config.json) \ --if-match $ETAG
  2. Attendi che la distribuzione venga disabilitata.

    aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
  3. Eliminare la distribuzione.

    # Get the current ETag ETAG=$(aws cloudfront get-distribution-config --id $DISTRIBUTION_ID --query 'ETag' --output text) # Delete the distribution aws cloudfront delete-distribution --id $DISTRIBUTION_ID --if-match $ETAG
Per eliminare un bucket S3 ()AWS CLI
  • Elimina il bucket S3 e il suo contenuto. Sostituisci il nome del bucket di esempio con il tuo.

    # Delete the bucket contents aws s3 rm s3://amzn-s3-demo-bucket --recursive # Delete the bucket aws s3 rb s3://amzn-s3-demo-bucket

Per pulire i file locali creati per questo tutorial, esegui i seguenti comandi:

# Clean up local files rm -f distribution-config.json bucket-policy.json temp_disabled_config.json rm -rf ~/cloudfront-demo

Facoltativamente, puoi eliminare l'OAC che hai creato per questo tutorial.

# Get the OAC ETag OAC_ETAG=$(aws cloudfront get-origin-access-control --id $OAC_ID --query 'ETag' --output text) # Delete the OAC aws cloudfront delete-origin-access-control --id $OAC_ID --if-match $OAC_ETAG