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
/ --regionus-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 \ --bucketamzn-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)
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
Attendi che la distribuzione venga disabilitata.
aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
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