Hosting statyczny na Amazon S3 - konfiguracja DNS

117

Pracuję nad małą aplikacją internetową (po stronie klienta). Chcę ją hostować na Amazon S3. Znalazłem kilka poradników na ten temat i udało mi się stworzyć dla siebie zasobnik (o tej samej nazwie co moja domena), ustawić go jako stronę internetową i przesłać trochę treści.

Tam, gdzie walczę i gdzie cała dokumentacja zaczyna być nieco niejasna, jest to, jak poprawnie skonfigurować mój DNS.

Mój rejestrator ( 123-reg ) mógł zasugerować, że przekierowanie na witrynę daje mi mojadomena.com.s3.amazonaws.com

Co muszę skonfigurować i gdzie (np. 123-reg / Amazon) mogę uzyskać czysty adres URL?

Merlin Mason
źródło
Odkąd zadano to pytanie, sytuacja się zmieniła. Możesz
pors

Odpowiedzi:

248

Wygląda na to, że wykonałeś już większość pracy. Dla jasności ponownie przejdę przez te kroki, aby upewnić się, że jesteś poprawnie skonfigurowany:

  1. Utwórz zasobnik s3, używając nazwy swojej domeny jako nazwy zasobnika (nazwa zasobnika powinna być www.example.com, jeśli chcesz, aby Twoja witryna to example.com lub www.example.com)

  2. Prześlij zawartość do zasobnika s3. Wybierz spójną nazwę dla plików indeksu swojej witryny (zwykle index.html). Możesz również przesłać niestandardową stronę dla błędów 404 „Nie znaleziono”. Nazwij to 404.html. Przyznaj uprawnienia do odczytu do każdego pliku w swojej witrynie, aby wszyscy mogli go zobaczyć. Nie udzielaj żadnych dodatkowych uprawnień do zasobnika, tylko do plików w nim zawartych.

  3. Skonfiguruj swój zasobnik jako witrynę internetową. W konsoli AWS ( https://console.aws.amazon.com/s3/ ) możesz wybrać swój zasobnik, kliknąć właściwości, a następnie wybrać zakładkę „Witryna”. Kliknij włączone i ustaw dokument indeksu na „index.html”, a dokument błędu na „404.html”. Będziesz także musiał ustawić swój zasobnik z uprawnieniami dostępu, aby umożliwić dostęp przez internet ( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html )

  4. Zanotuj adres URL „punktu końcowego” na karcie konfiguracji witryny. Tutaj znajduje się Twoja witryna. Możesz otworzyć link w nowym oknie i powinieneś zobaczyć swoją witrynę tak, jak będzie wyglądać. Kliknij i upewnij się, że wszystko działa zgodnie z oczekiwaniami.

MUSISZ użyć adresu punktu końcowego we wszystkich poniższych krokach. Zwykły www.example.com.s3.amazonaws.com nie będzie działać - musisz użyć wersji regionalnej ( http://www.example.com.s3-website-us-east-1.amazonaws.com/ )

Teraz możemy skonfigurować DNS, aby zapewnić czysty, niestandardowy adres URL.

Najpierw zamapujemy www.example.com na Twoją witrynę.

Korzystając z narzędzi dostawcy DNS (123-reg w twoim przypadku), musisz utworzyć rekord CNAME, aby zmapować www.example.com na www.example.com.s3-website-us-east-1.amazonaws.com

CNAME to jedyna rzecz, której potrzebujesz, jeśli chcesz mieć tylko www.example.com. Większość ludzi chce również, aby witryna „example.com” działała, więc potrzebujemy kolejnego kroku.

Przyklad.com jest często nazywany samą domeną lub rekordem wierzchołka domeny. Przyczyną problemu jest to, że nie może to być CNAME. CNAME działają tylko w subdomenach, takich jak „www”. To sprawia, że ​​trudniej jest wskazać s3.

Typowym podejściem jest użycie usługi do automatycznego przekierowania dowolnego żądania przechodzącego do example.com w celu wskazania www.example.com. Spowoduje to pobranie rekordu CNAME, a Twoja witryna będzie obsługiwana z s3.

Automatyczne przekierowanie nie jest możliwe w przypadku zwykłego starego DNS, więc musisz użyć innej usługi. Niektórzy dostawcy DNS oferują tę usługę wraz ze swoim DNS (GoDaddy tak, Amazon Route53 nie. Nie jestem pewien co do 123-reg)

Jeśli Twój dostawca DNS tego nie robi, istnieje kilka bezpłatnych usług. Jeden, którego użyłem, to http://wwwizer.com/naked-domain-redirect - nie wymaga rejestracji ani płatności.

Aby korzystać z tego typu usługi, musisz utworzyć rekord „A” DNS dla samej domeny. W przypadku usługi wwwizer.com należałoby utworzyć rekord A, aby wskazać example.com na adres 174.129.25.170. To wszystko!

Tak więc przy tej konfiguracji, jeśli użytkownik wpisze example.com w przeglądarce, wydarzy się co następuje:

  1. Zapytanie DNS: example.com -> 174.129.25.170 (usługa wwwizer.com)
  2. Żądanie HTTP pod numer 174.129.25.170 dla example.com
  3. 174.129.25.170 przekierowania example.com -> www.example.com
  4. Zapytanie DNS: www.example.com -> CNAME do www.example.com.s3-website-us-east-1.amazonaws.com
  5. Zapytanie DNS: www.example.com.s3-website-us-east-1.amazonaws.com -> wskazuje na Amazon S3
  6. Żądanie HTTP dla www.example.com jest teraz obsługiwane przez Amazon S3

Cieszyć się!

Secretmike
źródło
2
Wielkie dzięki za jasność tego wszystkiego! Dokonałem zmian, czekałem tylko, aż się rozpropagują, trzymam kciuki, wszystko się uda.
Merlin Mason
hmmm, nadal nie działa. Oto zrzut ekranu konfiguracji DNS - cl.ly/CP6U Kropka na końcu wydaje się podejrzana, nie dodałem tego tam, a umieszczenie tego adresu URL w przeglądarce z kropką na końcu daje mi nieuzasadniony błąd. Próbowałem go usunąć, ale wraca po zapisaniu i próbowałem go zastąpić znakiem /, ale pojawia się nieprawidłowy błąd. Myślisz, że to może być problem na końcu 123-regów?
Merlin Mason
Cześć Merlinie, próbowałem wyszukać nazwę Twojej domeny (wpfill.me) i nie widzę żadnych rekordów na Twoim zrzucie ekranu. Czy 123-reg ma oddzielny krok „publikuj” lub „zatwierdzaj”? Wygląda na to, że Twoja konfiguracja nie została wprowadzona.
Secretmike
Hmmm, myślę, że musi być problem z 123-reg, próbowałem zresetować rekordy DNS i czekałem 48 godzin na propagację i nadal bez radości. Następnie przerzuciłem hosting DNS na Cloudflare i uruchomiłem całość w 20 minut :) Dzięki za pomoc, naprawdę to doceniam!
Merlin Mason,
2
Amazon S3 obsługuje teraz przekierowania z Route 53 .
pri
1

Uważam, że musisz zaznaczyć wszystkie dokumenty w swoim zasobniku, kliknąć prawym przyciskiem myszy i wybrać opcję „Udostępnij publicznie”. Musisz to robić za każdym razem, gdy coś się zmienia w wiadrze. Zwykle klikam prawym przyciskiem myszy zasobnik, wybieram właściwości, wybieram uprawnienia w prawym panelu, a następnie dodaję „Wszyscy jako„ grantobiorca ”, a następnie nadam im tylko uprawnienia do„ listy ”. Reszta artykułu jest doskonała. Część dotycząca samej domeny pomogła ja rozwiązuję moje problemy. Możesz również przekierować samą domenę na domenę www w S3 w sekcji „Statyczny hosting witryny” To prawdopodobnie najłatwiejszy sposób. Jeszcze raz dziękuję za wszelką pomoc.

Tim

Tim
źródło
3
Ten ręczny krok jest niepotrzebny, jeśli zastosujesz zasadę zasobnika, jak opisano powyżej.
tooluser,
1

Zaktualizuj 2019

Od dzisiaj następujące ustawienia DNS działały, aby uruchomić statyczną stronę internetową AWS S3:

Ustawienie DNS do mapowania zasobnika

zennni
źródło
0

Z ekranu Advanced DNS w panelu sterowania 123-reg

  • Zacząłem od kliknięcia przycisku „Reset DNS” do domyślnych ustawień 123-reg.

To dało mi następujące informacje;

DNS EntryType       PriorityTTLDestination/Target
*                 A                                 81.xx.xx.xx              
@               A                                 81.xx.xx.xx              
@               MX          10               xx0.123-reg.co.uk
@               MX          20               xx1.123-reg.co.uk

  • Następnie dodałem ten wpis

www          CNAME                    www.example.com.s3-website-us-east-1.amazonaws.com

Z ich przewodnika po zarządzaniu DNS w formacie PDF jest napisane, że „@ rekord” odnosi się do „Twojej domeny w najczystszej postaci bez subdomeny”, tj. Samej domeny stackoverflow.com

Ale nie wspomina, czym jest „rekord *”, założyłem, że będzie to przechwytywanie wszystkich subdomen i pomyślałem, że może on przejąć rekord CNAME, ale wydaje się, że tak nie jest.

Paul Rowland
źródło