Erste Schritte mit einer Standarddistribution (AWS CLI) - Amazon CloudFront

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.

Erste Schritte 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-Buckets zur Verwendung als Distributionsursprung

  • Speichern der Originalversionen Ihrer Objekte in einem S3-Bucket

  • Verwenden der Ursprungszugriffssteuerung (OAC), um authentifizierte Anforderungen an Ihren Amazon-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 des Zugriffs auf einen Amazon-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 Distribution 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 Sie einen Amazon S3 S3-Bucket

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.

In diesem Tutorial erstellen Sie einen S3-Bucket und laden eine HTML-Datei hoch, die Sie zur Erstellung einer einfachen Webseite verwenden.

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

amzn-s3-demo-bucketErsetzen 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. Eine solche Auswahl ist eventuell erforderlich, um gesetzliche Anforderungen zu berücksichtigen.

Hochladen des Inhalts in den Bucket

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

Erstellen einer Ursprungszugriffssteuerung (OAC)

In diesem Tutorial erstellen Sie eine Ursprungszugriffssteuerung (OAC, Origin Access Control). OAC hilft Ihnen dabei, authentifizierte Anforderungen sicher an Ihren Amazon-S3-Ursprung zu senden. Weitere Informationen zu OAC finden Sie unter Beschränken des Zugriffs auf einen Amazon-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 verwenden diese im nächsten Schritt.

OAC_ID="E1ABCD2EFGHIJ"

Erstellen einer Standarddistribution

Erstellen Sie eine Konfigurationsdatei namens distribution-config.json für die Distribution. Ersetzen Sie den Beispielnamen des Buckets durch Ihren Bucket-Namen für die Werte Id, DomainName und TargetOriginId.

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 Standarddistribution.

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 sie 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 zum Konfigurieren des Zugriffs in einer Produktionsumgebung finden Sie unter Konfigurieren des sicheren Zugriffs und Beschränken des Zugriffs auf Inhalte.

Aktualisieren Ihrer S3-Bucket-Richtlinie

Aktualisieren Sie Ihre S3-Bucket-Richtlinie, um den Zugriff auf die Objekte CloudFront zu ermöglichen. Ersetzen Sie Beispielnamen des Buckets durch den Namen Ihres Buckets.

# 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

Bestätigen der Bereitstellung der Distribution

Nachdem Sie Ihre Distribution erstellt haben, dauert es einige Zeit, bis sie bereitgestellt wird. Fahren Sie mit dem nächsten Schritt fort, wenn sich der Distributionsstatus von InProgress in Deployed ändert.

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

Alternativ können Sie auch den wait-Befehl verwenden, um auf die Bereitstellung der Distribution 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, sollte eine Website mit der Aufschrift Hello world! angezeigt werden.

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 die Distribution und den S3-Bucket nur zur Übung erstellt haben, löschen Sie sie, damit keine weiteren Gebühren für sie anfallen. Deaktivieren und löschen Sie zuerst die Distribution.

So deaktivieren und löschen Sie eine Standarddistribution (AWS CLI)
  1. 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
  2. Warten Sie, bis die Distribution deaktiviert ist.

    aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
  3. 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
So löschen Sie einen S3-Bucket (AWS CLI)
  • Löschen Sie den S3-Bucket und seinen Inhalt. Ersetzen Sie Beispielnamen des Buckets 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 auch die OAC löschen, die 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