Amazon S3: statyczne witryny internetowe: domena niestandardowa lub subdomena

79

Amazon.com właśnie ogłosił, że można hostować statyczne strony internetowe w wiadrze S3. Poszedłem na ich stronę konfiguracji pod adresem http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?WebsiteHosting.html i utworzyłem zasobnik dla mojej statycznej witryny internetowej i działało dobrze. Mam adres URL w postaci http: // [ nazwa mojego zasobnika] .s3-website-us-east-1.amazonaws.com /.

Chciałbym jednak skierować subdomenę, której jestem właścicielem (np. Static.mydomain.com), do mojej statycznej witryny internetowej pod adresem Amazon S3. Czy ktoś wymyślił, jak to zrobić?

Doceniam każdą pomoc, jaką możesz mi udzielić.

Jay Godse
źródło
sprawdź to arrayofcode.com/…
Ajitesh Singh

Odpowiedzi:

182

Okazuje się, że aby to zadziałało, nie można po prostu zmapować dowolnej subdomeny do dowolnego zasobnika. W pełni kwalifikowana nazwa subdomeny musi być taka sama, jak nazwa zasobnika S3 .

  1. Załóżmy, że nazwa Twojej witryny to static.mydomain.com . Następnie musisz utworzyć zasobnik S3 o tej samej nazwie o nazwie static.mydomain.com .
  2. Po skonfigurowaniu tego zasobnika jako statycznej witryny sieci Web S3 będzie miał przypisany adres URL, który wygląda jak http://static.mydomain.com.s3-website-us-east-1.amazonaws.com .
  3. Przejdź do usługodawcy hostingowego domeny i zamapuj swoją subdomenę na adres URL z kroku 2. W enom.com oznaczało to mapowanie hosta „ statycznego ” na adres „ static.mydomain.com.s3-website-us-east-1.amazonaws .com ”jako rekord CNAME.

Dziękuję Uriaszowi i Dawidowi za sugestie. Ostatecznie otrzymałem odpowiedź na forum Amazon AWS .

Jay Godse
źródło
Nie wiem Musisz to wypróbować. Ponadto prawdopodobnie zostaniesz przywiązany do certyfikatu SSL firmy Amazon, a nie do własnego.
Jay Godse
2
możesz po prostu wskazać swoje cname na s3-website-us-east-1.amazonaws.com , wydaje się, że ignorujesz subdomenę i używasz nagłówka HOST http do określenia zasobnika. Wydaje się, że nie ma znaczenia, czy te dwie pasują do siebie, a nawet jeśli subdomena jest obecna.
lynks
@lynks - możesz nawet upuścić region i po prostu przejść z s3.amazonaws.com
plyawn.
@hnprashanth, to prawda (używając tylko S3) możesz mieć do 10 subdomen wskazujących na tę samą lokalizację zasobów z dystrybucją CloudFront ... sprawdź docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ ...
plyawn
To działa. AWS stwierdza to we wczesnej sekcji Intro, ale zanim przejdziesz przez wszystkie kroki, łatwo / prawdopodobnie zapomnisz o tym. Jest to lepsze rozwiązanie niż rozwiązanie cname lynks, ponieważ AWS ma teraz opłaty transakcyjne za wyszukiwanie cname przez każdego użytkownika.
Mike_Laird
5

Upewnij się, że podczas tworzenia zasobnika przestrzegasz konwencji nazewnictwa zasobników DNS S3 .

Następnie:

  1. Włącz obsługę witryny S3 dla zasobnika za pomocą konsoli zarządzania AWS w Właściwości -> Witryna

  2. Upewnij się, że pliki w zasobniku mają publiczne uprawnienia do odczytu

  3. Wypróbuj witrynę internetową, korzystając z punktu końcowego wymienionego w konsoli zarządzania

  4. Skonfiguruj CNAME, używając wymienionego punktu końcowego (np. www.example.com CNAME www.example.com.s3-website-us-east-1.amazonaws.com)

Uriah Carpenter
źródło
Zrobiłem wszystkie 4 kroki. Krok 3 działa. Cname w kroku 4 konfiguruje się (z enom.com, który robi to z powodzeniem z innymi subdomenami), ale ani trafienie do mojej subdomeny s3 za pomocą przeglądarki, ani pingowanie jej nie działa. W przypadku heroku.com i blogger.com musisz im powiedzieć, które z Twoich subdomen będą trafiać do której-aplikacji heroku lub blogera-bloga. Wydaje się, że statyczne strony internetowe S3 tego nie mają.
Jay Godse
2
@Jay Godse Jaka jest nazwa Twojego zasobnika z włączoną witryną i jego regionu?
Uriah Carpenter
4
  1. Utwórz strefę hostowaną, na przykład mojadomena.com. Możesz użyć DNS30 UI opartego na sieci WWW .
  2. Teraz utwórz wpis CNAME dla tej hostowanej strefy.
  3. Dodaj rekord zasobu z następującymi szczegółami Nazwa jako „mojadomena.com” Wpisz jako „CNAME” Wartość jako „mojadomena.com.s3.amazonaws.com„ TTl jako ”w wymaganej konfiguracji”

Mam nadzieję, że to zadziała również w przypadku static.mydomain.com

Pozdrowienia-

Udit

udit
źródło
3

Co powiesz na korzystanie z usługi DNS, takiej jak Route 53, którą zapewnia Amazon. Skonfiguruj go za pomocą rekordu CNAME ze swojej subdomeny na publiczny adres URL zasobnika. Oczywiście, jeśli firma zajmująca się domeną zapewnia konfigurację CNAME, może to działać bezpośrednio.

Thomas the Tank Engine
źródło
1

Aktualizacja 2019: Hosting niestandardowej subdomeny AWS w S3

Od dziś wykonałem następujące kroki, aby mieć działającą subdomenę dla statycznej strony internetowej hostowanej przez AWS S3:

  1. Utwórz zasobnik z nazwą subdomeny. W tym przykładzie www. podtestu .mysite.com

aws wiadro

Uwaga: Upewnij się, że na karcie „Uprawnienia” zasobnika: -Zablokuj dostęp publiczny (ustawienia zasobnika) -Lista kontroli dostępu i -Polityka zasobnika są odpowiednio ustawione, aby upewnić się, że zasobnik jest publiczny. (Zakładając, że już to zrobiłeś dla swojego zasobnika domeny głównej, te ustawienia mogą być odzwierciedlone w tym zasobniku subdomeny)

Uprawnienia do zasobnika AWS

  1. Prześlij plik index.html do zasobnika

plik indeksu w zasobniku s3

  1. Utwórz rekord CNAME u swojego dostawcy domeny Rekord CNAME w namecheap
zennni
źródło