Statyczna strona w AWS

CDN

styczeń 2018

autor Jarosław Łakomy

AnazonCloudFront

Amazon CloudFront is a web service that speeds up distribution of your static and dynamic web content, such as .html, .css, .js, and image files, to your users. CloudFront delivers your content through a worldwide network of data centers called edge locations. When a user requests content that you're serving with CloudFront, the user is routed to the edge location that provides the lowest latency (time delay), so that content is delivered with the best possible performance. If the content is already in the edge location with the lowest latency, CloudFront delivers it immediately. If the content is not in that edge location, CloudFront retrieves it from an Amazon S3 bucket or an HTTP server (for example, a web server) that you have identified as the source for the definitive version of your content.

What is Amazon CloudFront?

Dodajemy dustrybucję

Tworząc dystrybucję konfigurujemy skąd mają pochodzić treści, pod jaką domeną mają być udostępniane oraz w jaki sposób cloudfront ma je przetwarzać.

Skąd bierzemy treści - Origin settings

  • wybieramy nasz bucket w `Origin Domain Name'
  • podajemy folder do którego przenieśliśmy pliki w Origin Path
  • Restrict Bucket Access : Yes - zapewnia dostęp do s3 wyłącznie dla zdefiniowanej roli
  • Origin Access Identity : Create a New Identity - zostanie utworzona nowa rola z odpowiednimi uprawnieniami
  • Grant Read Permission on Bucket : Yes - uprawnienia bucketa będą odpowiednio zaktualizować aby umożliwić odczyt wskazanej roli

origin.png

W jaki sposób przetwarzać treści - Default Cache Behavior Settings

  • Compress Objects Automatically : Yes

cache.png

Jak udostępniać - Distribution Settings

  • Default Root Object : index.html

distribution.png

Test

Na liście dystrybucji likamy w link z domeną xxxxxxxx.cloudfront.net

W odpowiedzi powinna pojawić się wcześniej wgrana strona index.html

UWAGA PUŁAPKA: Czasem zamiast dostać właściwą stronę z naszym indeks.html dostajemy komunikat o braku uprawnień. Zazwyczaj błąd pojawia się jeśli w tym samym czasie tworzymy bucket S3 oraz konfigurację CloudFront. Z opisów wynika że błąd spowodowany jest czasem potrzebnym na rozdystrybuowanie domeny bucketa S3 w ramach AWS-owych DNS. Jeśli problem wystąpi trzeba chwilę odczekać (30min do 2h) po czym wejść w konfigurację dustrybucji, przejść do zakładki “Invalidations” i wykonać inwalidację zasobów CloudFront wg wzorca /* po czym ponownie wejść na stronę.


Jarosław Łakomy

Od 2004 r. pracuję w branży IT. Przez większość tego czasu zajmowałem się projektowaniem i tworzeniem różnego rodzaju aplikacji internetowych.



... w chmurze

To seria prezentacji pokazujących różne możliwości użycia chmur obliczeoniwych.