Anleitung zur Konfiguration einer CloudFront-Distribution unter Amazon S3

CloudFront ist Amazons Content Delivery Network und wird über eine grafische Benutzeroberfläche eingerichtet. So gelingt die Konfiguration.

AWS CloudFront ist ein Content Delivery Network (CDN), dessen Stärken in der Verbreitung von statischen oder dynamischen Inhalten liegt, Beispiele hierfür wären Medien (Bilder oder Videos) oder HTML-, JavaScript- und CSS-Dateien. 

Dank seiner einfachen Benutzeroberfläche erleichtert es Administratoren auch das Aufsetzen von CloudFront-Distributionen. Mit ein paar Mausklicks ist es dabei aber trotzdem nicht getan. Im Folgenden möchte ich zeigen, was CloudFront leistet und wie die Bereitstellung abläuft.

In CloudFront ist jedes Inhaltselement einer Distribution zugeordnet, die eindeutige URLs hat und vom Web aus zugänglich ist. Der Dienst verteilt diese Inhalte über standortnahe Verteilzentren, die Edge Locations genannt werden. AWS verfügt derzeit über weltweit 52 Edge Locations für das Bereitstellen von Inhalten.

AWS CLoudFront unterstützt zwei Distributionsarten: Streaming und Download. Ruft ein Nutzer statische Inhalte über einen CloudFront-URL ab, so ermittelt der Dienst die örtlich nächste Edge Location und legt eine Inhaltskopie im dortigen Cache ab. Alle nachfolgenden Anfragen in der Region dieser Edge Location profitieren somit von einer verkürzten Latenz.

CloudFront nutzt hierzu AWS-Dienste wie Simple Storage Service (S3), Elastic Compute Cloud (EC2), Elastic Load Balancing (ELB) und Route 53. CloudFront bietet u. a. folgende Funktionen:

  • Unterstützung für dynamische Inhalte (TO-reduzierte Latenz für nachfolgende Anfragen);
  • Nutzung eigener Domainnamen;
  • Geräteerkennung (mobiles oder stationäres Internet);
  • Unterstützung von POST/PUT und weiteren HTTP-Methoden
  • Individuelle Fehlermeldungen;
  • Nutzung von Cookies, Query-Strings und mehr.

CloudFront-Distribution mit Anazon S3 verknüpfen

Um von einem S3-Bucket aus eine CloudFront-Web-Distribution aufzusetzen, benötigen Sie einen S3-Bucket mit einem öffentlich zugänglichen Objekt (Abbildung 1).


Abbildung 1: S3-Bucket mit öffentlich zugänglichem Objekt

Befolgen Sie danach diese Schritte:

  1. Erzeugen Sie in CloudFront eine Web-Distribution.
  2. Wählen Sie den Bucket-Namen im Dialog Origin Domain Name und wählen Sie für Restrict Bucket Access die Einstellung No. Auf diese Weise wird der Objektzugriff auf CloudFront begrenzt, sodass es von S3 aus nicht zugänglich ist (Abbildung 2).

Abbildung 2: Wählen Sie den Origin-Domain-Bucket aus.

3.  Konfigurieren Sie die Cache-Einstellungen wie folgt:

  • Path Pattern: Default. Damit wenden Sie das Cache-Verhalten auf ausgewählte Objekte an. Wählen Sie hier Default (*) aus, so werden sämtliche Anfragen an den ausgewählten Bucket weitergeleitet.
  • Viewer Protocol Policy: HTTP and HTTPS. So erlauben Sie CloudFront, Inhalte an Nutzer sowohl über HTTP als auch über HTTPS auszuliefern.
  • Allowed HTTP Method: Get, HEAD. Wähen Sie die HTTP-Methoden aus, die diesem Cache-Verhalten erlaubt sein sollen.
  • Forward header: None. Mit dieser Einstellung folgt das Cache-Verhalten dem Header der übermittelten Anfrage. Im Idealfall sorgt „none“ für bessere Leistung.
  • Object Caching: Use Origin Cache Header. Diese Einstellung folgt einem vom Ursprungsserver stammenden Cache-Control-Header und übernimmt dessen Vorgabe, wie lange Objekte im CloudFront-Cache vorgehalten werden sollen.
  • Forward Cookies: None. Wählen Sie All, wenn CloudFront bei der Weiterleitung der Request-URLs alle Anwender-Cookies mit an den Ursprungsserver übertragen soll. Alternativ geben Sie die zu berücksichtigenden Cookies an. Die Auswahl von None sorgt dafür, dass CloudFront keinerlei Cookies sendet.
  • Forward Query String: No. Verwenden Sie Yes, wenn Sie erhaltene Query-Strings mit an den Ursprungsserver senden möchten, um so die Auswahl unterschiedlicher Versionen des angefragten Inhalts zu ermöglichen.
  • Restrict Viewer Access: No. Im Idealfall erhöht Yes an dieser Stelle die Sicherheit. No hingegen gibt den Inhalt für jegliche Betrachter frei. Restriktiver Zugang verlangt von Benutzern die Verwendung eines signierten URLs für den sicheren Abruf.

Abbildung 3: Optionsdialog für das Cacheverhalten

4. Legen Sie anschließend die Distributionseinstellungen fest:

  • Price Class: Use All Edge Locations. Diese Einstellung ermöglicht dem Anwender die Angabe eines Höchstbetrags für die Bezahlung des CloudFront-Dienstes.
  • CNAMEs: (leer). Mit dieser Einstellung können Nutzer für das Ansprechen von Objekten URLs statt der von CloudFront zugewiesenen Domainnamen verwenden. So können Nutzer statt der CloudFront-Distribution eine benutzerdefinierte URL angeben.
  • SSL Certificate: Default CloudFront. So können Administratoren ihre eigenen Zertifikate hochladen. Sie können auch die anderen Optionen als Standard behalten und die Distribution anlegen.

Abbildung 4: CloudFront-Distributionseinstellungen

Nach dem Anlegen einer Distribution verfügen Sie über einen CLoudFront-URL, die so ähnlich aussehen dürfte: http://d3ptzllcr53x1i.cloudfront.net. Mit dieser URL können Sie dann das Objekt ansprechen.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Erfahren Sie mehr über Cloud Computing