Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beginnen Sie mit einer Standarddistribution (AWS CLI)
Die Verfahren in diesem Abschnitt zeigen Ihnen, wie Sie mithilfe von AWS CLI with CloudFront eine grundlegende Konfiguration einrichten, die Folgendes umfasst:
-
Erstellen eines Amazon S3 S3-Buckets, der als Vertriebsursprung verwendet werden soll.
-
Speichern der Originalversionen Ihrer Objekte im S3-Bucket.
Verwenden Sie Origin Access Control (OAC), um authentifizierte Anfragen an Ihren Amazon S3 S3-Ursprung zu senden. OAC sendet Anfragen durch, CloudFront um zu verhindern, dass Zuschauer direkt auf Ihren S3-Bucket zugreifen. Weitere Informationen zu OAC finden Sie unter. Beschränken Sie den Zugriff auf einen Amazon S3 S3-Ursprung
Verwenden Sie den CloudFront Domainnamen in URLs für Ihre Objekte (z. B.
https://d111111abcdef8.cloudfront.net/index.html
).-
Halten Sie Ihre Objekte für die Standarddauer von 24 Stunden an CloudFront Randpositionen (die Mindestdauer beträgt 0 Sekunden).
Die meisten dieser Optionen sind anpassbar. Weitere Informationen dazu, wie Sie Ihre CloudFront -Verteilungsoptionen anpassen, finden Sie unter Eine Verteilung erstellen.
Voraussetzungen
Bevor Sie beginnen, sollten Sie sicherstellen, dass Sie die in beschriebenen Schritte ausgeführt habe Richten Sie Ihre ein AWS-Konto.
Installieren Sie das AWS CLI und konfigurieren Sie es mit Ihren Anmeldeinformationen. Weitere Informationen finden Sie unter Erste Schritte mit dem AWS CLI im AWS CLI -Benutzerhandbuch.
Erstellen eines Amazon-S3-Buckets
Ein Amazon S3 S3-Bucket ist ein Container für Dateien (Objekte) oder Ordner. CloudFront kann fast jeden Dateityp für Sie verteilen, wenn ein S3-Bucket die Quelle ist. CloudFront kann beispielsweise Text, Bilder und Videos verteilen. Die Menge der Daten, die Sie in Amazon S3 speichern können, ist nicht begrenzt.
Für dieses Tutorial erstellen Sie einen S3-Bucket und laden eine HTML-Datei hoch, mit der Sie eine einfache Webseite erstellen werden.
aws s3 mb s3://
amzn-s3-demo-bucket
/ --regionus-east-1
amzn-s3-demo-bucket
Ersetzen Sie es durch einen weltweit eindeutigen Bucket-Namen. Für den empfehlen wir AWS-Region, eine Region zu wählen, die sich geografisch in Ihrer Nähe befindet. Dies reduziert die Latenz und die Kosten, aber die Auswahl einer anderen Region funktioniert auch. Sie könnten dies beispielsweise tun, um regulatorische Anforderungen zu erfüllen.
Laden Sie den Inhalt in den Bucket hoch
Laden Sie für dieses Tutorial die Beispielinhaltsdateien für eine einfache „Hello World“ -Webseite herunter und extrahieren Sie sie.
# 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
Dadurch wird ein Verzeichnis mit einer index.html
Datei und einem css
Ordner erstellt. Laden Sie diese Dateien in Ihren S3-Bucket hoch.
aws s3 cp ~/cloudfront-demo/hello-world/ s3://
amzn-s3-demo-bucket
/ --recursive>
Erstelle eine Origin Access Control (OAC)
In diesem Tutorial erstellen Sie eine Origin Access Control (OAC). OAC hilft Ihnen dabei, authentifizierte Anfragen sicher an Ihren Amazon S3 S3-Ursprung zu senden. Weitere Informationen zu OAC finden Sie unter. Beschränken Sie den Zugriff auf einen Amazon S3 S3-Ursprung
aws cloudfront create-origin-access-control \ --origin-access-control-config Name="
oac-for-s3
",SigningProtocol=sigv4,SigningBehavior=always,OriginAccessControlOriginType=s3
Speichern Sie die OAC-ID aus der Ausgabe als Umgebungsvariable. Ersetzen Sie den Beispielwert durch Ihre eigene OAC-ID. Sie werden dies im nächsten Schritt verwenden.
OAC_ID="
E1ABCD2EFGHIJ
"
Erstellen Sie eine Standarddistribution
Erstellen Sie eine Distributionskonfigurationsdatei mit dem Namendistribution-config.json
. Ersetzen Sie den Beispiel-Bucket-Namen durch Ihren Bucket-Namen für die TargetOriginId
Werte Id
DomainName
, und.
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
Erstellen Sie die Standardverteilung.
aws cloudfront create-distribution --distribution-config file://distribution-config.json
Speichern Sie die Distributions-ID und den Domainnamen aus der Ausgabe als Umgebungsvariablen. Ersetzen Sie die Beispielwerte durch Ihre eigenen Werte. Sie werden diese später in diesem Tutorial verwenden.
DISTRIBUTION_ID="
EABCD1234XMPL
" DOMAIN_NAME="d111111abcdef8.cloudfront.net
"
Bevor Sie die Distribution und den S3-Bucket aus diesem Tutorial in einer Produktionsumgebung verwenden, stellen Sie sicher, dass sie Ihren spezifischen Anforderungen entsprechen. Informationen zur Konfiguration des Zugriffs in einer Produktionsumgebung finden Sie unterKonfigurieren Sie den sicheren Zugriff und beschränken Sie den Zugriff auf Inhalte.
Aktualisieren Sie Ihre S3-Bucket-Richtlinie
Aktualisieren Sie Ihre S3-Bucket-Richtlinie, um den Zugriff auf die Objekte CloudFront zu ermöglichen. Ersetzen Sie den Beispiel-Bucket-Namen durch Ihren Bucket-Namen.
# 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
Bestätigen Sie die Bereitstellung der Distribution
Nachdem Sie Ihre Distribution erstellt haben, wird es einige Zeit dauern, bis die Bereitstellung abgeschlossen ist. Wenn sich der Verteilungsstatus von InProgress
zu ändertDeployed
, fahren Sie mit dem nächsten Schritt fort.
aws cloudfront get-distribution --id $DISTRIBUTION_ID --query 'Distribution.Status'
Alternativ können Sie den wait
Befehl verwenden, um auf die Bereitstellung der Verteilung zu warten.
aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
Greifen Sie auf Ihre Inhalte zu über CloudFront
Um über auf Ihre Inhalte zuzugreifen CloudFront, kombinieren Sie den Domainnamen für Ihre CloudFront Distribution mit der Hauptseite für Ihre Inhalte. Ersetzen Sie den CloudFront Beispiel-Domainnamen durch Ihren eigenen.
https://
d111111abcdef8.cloudfront.net
/index.html
Wenn Sie die vorherigen Schritte befolgt und die HTML-Datei erstellt haben, sollten Sie eine Webseite mit der Aufschrift Hello world! sehen. .
Wenn Sie weitere Inhalte in diesen S3-Bucket hochladen, können Sie auf die Inhalte zugreifen, CloudFront indem Sie den Namen der CloudFront Distributionsdomain mit dem Pfad zum Objekt im S3-Bucket kombinieren. Wenn Sie eine neue Datei mit dem Namen new-page.html
zum Stammverzeichnis Ihres S3-Buckets hochladen, sieht die URL beispielsweise wie folgt aus:
https://d111111abcdef8.cloudfront.net/new-page.html
.
Bereinigen
Wenn Sie Ihre Distribution und Ihren S3-Bucket nur zu Lernzwecken erstellt haben, löschen Sie sie, damit keine Gebühren mehr anfallen. Deaktivieren und löschen Sie zuerst die Distribution.
Um eine Standarddistribution zu deaktivieren und zu löschen (AWS CLI)
Deaktivieren Sie zunächst die Distribution.
# 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
Warten Sie, bis die Distribution deaktiviert ist.
aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
Löschen Sie die Distribution.
# 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
Um einen S3-Bucket zu löschen (AWS CLI)
Löschen Sie den S3-Bucket und seinen Inhalt. Ersetzen Sie den Beispiel-Bucket-Namen durch Ihren eigenen.
# Delete the bucket contents aws s3 rm s3://
amzn-s3-demo-bucket
--recursive # Delete the bucket aws s3 rb s3://amzn-s3-demo-bucket
Führen Sie die folgenden Befehle aus, um die für dieses Tutorial erstellten lokalen Dateien zu bereinigen:
# Clean up local files rm -f distribution-config.json bucket-policy.json temp_disabled_config.json rm -rf ~/cloudfront-demo
Optional können Sie das OAC löschen, das Sie für dieses Tutorial erstellt haben.
# 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