web-dev-qa-db-fra.com

Hébergement statique sur Amazon S3 - Configuration DNS

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

Là où je me bats, 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 une redirection Web qui me donne mydomain.com.s3.amazonaws.com

Que dois-je configurer et où (ex. 123-reg/Amazon) puis-je obtenir une URL vierge?

113
Merlin Mason

On dirait que vous avez déjà fait la plupart du travail. Pour plus de clarté, je vais répéter ces étapes pour vous assurer que vous êtes correctement configuré:

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

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

  3. Configurez votre seau en tant que site Web. Avec la console AWS ( https://console.aws.Amazon.com/s3/ ), vous pouvez sélectionner votre compartiment, 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. Prenez note de 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 quel. 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. 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/ )

Nous pouvons maintenant configurer le DNS pour vous donner une URL propre et personnalisée.

Tout d’abord, nous allons mapper 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 vers 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 aussi qu'exemple.com fonctionne, nous avons donc besoin d'une autre étape.

exemple.com est souvent désigné sous le nom de domaine nu ou enregistrement record du domaine. La raison pour laquelle c'est un problème est que cela ne peut pas être un CNAME. Les CNAME ne fonctionnent que sur des sous-domaines tels que "www." Cela rend plus difficile de pointer sur s3.

L'approche habituelle consiste à utiliser un service pour rediriger automatiquement toute demande destinée à example.com afin de pointer vers www.example.com. Cela va alors récupérer votre enregistrement CNAME et votre site sera servi à partir de s3.

La redirection automatique n’est pas possible avec un vieux DNS ordinaire, vous devez donc utiliser un autre service. Certains fournisseurs de DNS offrent ce service avec leur DNS (contrairement à Goaddy, ce n’est pas le cas pour Amazon route53. 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 aucun 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 indiquer exemple.com à 174.129.25.170. C'est tout!

Donc, avec cette configuration, si un utilisateur tape exemple.com dans son navigateur, voici ce qui se passe:

  1. Requête DNS: example.com -> 174.129.25.170 (service de 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 maintenant traitée par Amazon S3

Prendre plaisir!

239
secretmike

Je pense que vous devez sélectionner tous les documents de votre panier, cliquer avec le bouton droit de la souris et choisir "Rendre public". Vous devez le faire chaque fois que quelque chose change dans le seau. Je clique ensuite généralement avec le bouton droit de la souris sur le compartiment, choisissez les propriétés, choisissez les autorisations dans le volet de droite, puis ajoutez "Tout le monde en tant que" bénéficiaire ", puis ne leur accordez que des autorisations" de liste ". Le reste de votre article est excellent. Vous pouvez également rediriger le domaine nu vers le domaine www de S3 sous "Hébergement de site Web statique" C'est probablement le moyen le plus simple. Merci encore pour votre aide.

Tim

1
Tim

Mise à jour 2019

À compter d’aujourd’hui, le réglage DNS suivant m'a permis de faire fonctionner le site Web statique AWS S3:

DNS setting for bucket mapping

0
zennni

Depuis l'écran DNS avancé sur votre panneau de commande 123-reg

  • J'ai commencé en cliquant sur le bouton "Réinitialiser le DNS" avec les paramètres par défaut de 123-reg.

Cela m'a donné le suivant:

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 du guide DNS pdf , il est indiqué que "@ record" fait référence à "votre domaine dans sa forme la plus pure sans sous-domaine", à savoir le domaine nu stackoverflow.com.

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

0
Paul Rowland