Hébergement statique sur Amazon S3 - Configuration DNS


117

Je travaille sur une petite application Web (tout côté client), je souhaite l'héberger sur Amazon S3. J'ai trouvé plusieurs guides à ce sujet et j'ai réussi à me créer un seau (avec le même nom que mon domaine), à ​​le définir comme site Web et à télécharger du contenu.

Là où j'ai du mal, et où toute la documentation commence à devenir un peu vague, c'est comment configurer correctement mon DNS.

Tout ce que mon registraire ( 123-reg ) pouvait suggérer était le transfert Web qui me donne mydomain.com.s3.amazonaws.com

Que dois-je configurer et où (par exemple, 123-reg / Amazon) puis-je obtenir une URL propre?


Depuis que cette question a été posée, les choses ont changé. Il est maintenant possible d'héberger votre site sur S # avec un domaine racine, voir pour la procédure
pors

Réponses:


248

On dirait que vous avez déjà fait l'essentiel du travail. Pour plus de clarté, je vais reprendre ces étapes juste pour m'assurer que vous êtes correctement configuré:

  1. Créez un bucket s3 en utilisant votre nom de domaine comme nom de bucket (votre nom de bucket doit être www.example.com si vous souhaitez que votre site soit example.com ou www.example.com)

  2. Téléchargez votre contenu dans le compartiment s3. Choisissez un nom cohérent pour les fichiers d'index de votre site Web (généralement index.html). Vous pouvez également télécharger une page personnalisée pour les erreurs 404 Not Found. Appelez ce 404.html. Accordez des autorisations de lecture à chaque fichier de votre site Web afin que le public puisse le consulter. N'accordez aucune autorisation supplémentaire au bucket, uniquement aux fichiers qu'il contient.

  3. Configurez votre bucket en tant que site Web. Avec la console AWS ( https://console.aws.amazon.com/s3/ ), vous pouvez sélectionner votre bucket, cliquer sur les propriétés, puis sélectionner l'onglet "Site Web". Cliquez sur activé et définissez votre document d'index sur "index.html" et votre document d'erreur sur "404.html". Vous devrez également définir votre compartiment avec des autorisations d'accès pour autoriser l'accès via le Web ( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html )

  4. Notez l'URL "Endpoint" dans l'onglet de configuration du site Web. C'est là que vit votre site Web. Vous pouvez ouvrir le lien dans une nouvelle fenêtre et vous devriez voir votre site Web tel qu'il apparaîtra. Cliquez autour et assurez-vous que tout fonctionne comme prévu.

Vous DEVEZ utiliser l'adresse du point final dans toutes les étapes ci-dessous. Le site www.example.com.s3.amazonaws.com normal ne fonctionnera pas - vous devez utiliser la version régionale ( http://www.example.com.s3-website-us-east-1.amazonaws.com/ )

Maintenant, nous pouvons configurer le DNS pour vous donner une URL propre et personnalisée.

Tout d'abord, nous mapperons www.example.com sur votre site.

À l'aide des outils de votre fournisseur DNS (123-reg dans votre cas), vous devez créer un enregistrement CNAME pour mapper www.example.com à www.example.com.s3-website-us-east-1.amazonaws.com

Le CNAME est la seule chose dont vous avez besoin si vous voulez juste www.example.com. La plupart des gens veulent également que "example.com" fonctionne, nous avons donc besoin d'une autre étape.

example.com est souvent appelé un domaine nu ou l'enregistrement apex du domaine. La raison pour laquelle c'est un problème est qu'il ne peut pas s'agir d'un CNAME. Les CNAME ne fonctionnent que sur des sous-domaines tels que "www." Cela rend plus difficile de pointer vers s3.

L'approche habituelle consiste à utiliser un service pour rediriger automatiquement toute demande allant à example.com pour pointer vers www.example.com. Cela récupérera ensuite votre enregistrement CNAME et votre site sera servi à partir de s3.

La redirection automatique n'est pas possible avec un DNS ancien, vous devez donc utiliser un autre service. Certains fournisseurs DNS offrent ce service avec leur DNS (godaddy le fait, amazon route53 ne le fait pas. Je ne suis pas sûr de 123-reg)

Si votre fournisseur DNS ne le fait pas, il existe quelques services gratuits. Celui que j'ai utilisé est http://wwwizer.com/naked-domain-redirect - il ne nécessite aucune inscription ni paiement.

Pour utiliser ce type de service, vous devez créer un enregistrement DNS «A» pour votre domaine nu. Pour le service wwwizer.com, vous devez créer un enregistrement A pour pointer example.com vers 174.129.25.170. C'est tout!

Ainsi, avec cette configuration, si un utilisateur tape example.com dans son navigateur, ce qui suit se produit:

  1. Requête DNS: example.com -> 174.129.25.170 (service wwwizer.com)
  2. Requête HTTP à 174.129.25.170 pour example.com
  3. 174.129.25.170 redirections example.com -> www.example.com
  4. Requête DNS: www.example.com -> CNAME vers www.example.com.s3-website-us-east-1.amazonaws.com
  5. Requête DNS: www.example.com.s3-website-us-east-1.amazonaws.com -> pointe vers Amazon S3
  6. La requête HTTP pour www.example.com est désormais servie par Amazon S3

Prendre plaisir!


2
Merci beaucoup pour la clarté de tout cela! J'ai fait les changements, j'attends juste que ça se passe, les doigts croisés tout fonctionnera.
Merlin Mason

hmmm, ne semble toujours pas fonctionner. Voici une capture d'écran de la configuration DNS - cl.ly/CP6U Le point à la fin semble suspect, je n'ai pas ajouté cela là-dedans, et mettre cette URL dans un navigateur avec le point à la fin me donne une erreur de seau non trouvée. J'ai essayé de le supprimer, mais il revient une fois que j'ai enregistré, et j'ai essayé de le remplacer par un / mais j'obtiens une erreur invalide. Pensez-vous que cela pourrait être un problème à la fin de 123-regs?
Merlin Mason

Salut Merlin, j'ai essayé une recherche sur votre nom de domaine (wpfill.me) et je ne vois aucun des enregistrements dans votre capture d'écran. 123-reg a-t-il une étape distincte de «publication» ou de «validation»? Il ne semble pas que votre configuration ait pris effet.
secretmike

Hmmm, je pense qu'il doit y avoir un problème avec 123-reg, j'ai essayé de réinitialiser les enregistrements DNS et d'attendre 48 heures pour qu'il se propage et toujours pas de joie. J'ai ensuite basculé l'hébergement DNS sur Cloudflare et j'ai tout mis en place en 20 minutes :) Merci pour votre aide, je l'apprécie vraiment!
Merlin Mason

2
Amazon S3 prend désormais en charge les redirections avec Route 53 .
pri

1

Je pense que vous devez sélectionner tous les documents de votre bucket, cliquer avec le bouton droit de la souris et choisir "Rendre public". Vous devez également le faire à chaque fois que quelque chose change dans le seau. Je fais ensuite un clic droit sur le seau, choisis les propriétés, choisis les autorisations dans le volet de droite, puis ajoute «Tout le monde en tant que« bénéficiaire », puis ne leur donne que les autorisations de« liste ». Le reste de votre article est excellent. La partie sur le domaine nu m'a aidé Je résous mes problèmes. Vous pouvez également faire rediriger le domaine nu vers le domaine www dans S3 sous "Hébergement de site Web statique" C'est probablement le moyen le plus simple. Merci encore pour votre aide.

Tim


3
Cette étape manuelle est inutile si vous appliquez une stratégie de compartiment comme décrit ci-dessus.
tooluser

1

Mise à jour 2019

À partir d'aujourd'hui, le paramètre DNS suivant a fonctionné pour moi pour que le site Web statique AWS S3 fonctionne:

Paramètre DNS pour le mappage de compartiment


0

Depuis l'écran Advanced DNS sur votre panneau de contrôle 123-reg

  • J'ai commencé par cliquer sur le bouton "Réinitialiser DNS" aux paramètres 123-reg par défaut.

Cela m'a donné ce qui suit;

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

  • J'ai ensuite ajouté cette entrée

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

De leur guide de gestion DNS pdf il est dit que "@ record" fait référence à "votre domaine dans sa forme la plus pure sans sous-domaine", c'est-à-dire le domaine nu stackoverflow.com

Mais il ne mentionne pas ce qu'est le "* record", j'ai supposé que ce serait pour attraper tous les sous-domaines et j'ai pensé qu'il pourrait dépasser l'enregistrement CNAME mais cela ne semble pas être le cas.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.