J'essaie de configurer un simple site Web basé sur Amazon AWS S3, comme expliqué ici .
J'ai installé le compartiment S3 (simples3websitetest.com), je lui ai donné les autorisations (espérons-le):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::simples3websitetest.com/*"
]
}
]
}
J'ai téléchargé index.html, configuré l'accès au site Web et il est accessible via http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html
Jusqu'ici tout va bien, maintenant je veux configurer l'accès à Amazon Route53 et c'est là que je suis resté coincé.
J'ai configuré une zone hébergée sur un domaine que je possède (resourcesbox.net), et j'ai cliqué sur "créer un jeu d'enregistrements", et je suis passé à l'étape "configurer un alias", mais j'obtiens "Aucune cible disponible" sous les points de terminaison du site Web S3 lorsque je essayez de définir la cible d'alias.
Qu'est-ce que j'ai raté??
la source
Réponses:
L'alias d'enregistrement A que vous créez doit être le même que le nom du compartiment, car l'hébergement virtuel des compartiments dans S3 nécessite que l'en-
Host:
tête envoyé par le navigateur corresponde au nom du compartiment. Il n'y a pas vraiment d'autre moyen pratique d'accueillir virtuellement des compartiments ... le compartiment doit être identifié par un mécanisme, et ce mécanisme est les en-têtes http.Afin de créer un alias pour un compartiment à l'intérieur du domaine "example.com", le nom du compartiment devra également être un nom d'hôte que vous pouvez déclarer légalement dans ce domaine ... le Route 53 A-Record "testbucket.example .com, "par exemple, ne peut être aliasé que vers un compartiment appelé" testbucket.example.com "... et aucun autre compartiment.
Dans votre question, vous brisez cette contrainte ... mais vous ne pouvez créer un alias que pour un compartiment nommé "simples3websitetest.com" à l'intérieur (et au sommet de) le domaine "simples3websitetest.com".
C'est par conception, et pas exactement une limitation de Route 53 ni de S3. Ils vous empêchent seulement de faire quelque chose qui ne peut pas fonctionner. Les serveurs Web ne connaissent aucun alias ou CNAME ou toute autre opération effectuée dans le DNS - ils ne reçoivent que le nom d'hôte d'origine auquel le navigateur pense qu'il tente de se connecter, dans les en-têtes http envoyés par le navigateur ... et S3 l'utilise informations permettant d'identifier le nom du compartiment auquel s'applique la demande hébergée virtuelle.
Notez cependant que cette restriction ne s'applique que lorsque vous n'utilisez pas CloudFront devant votre compartiment.
Avec CloudFront, il y a plus de flexibilité, car l'en-
Host:
tête peut être réécrit (par CloudFront lui-même) avant que la demande ne soit transmise à S3. Vous configurez «l'hôte d'origine» dans votre distribution CloudFront commeyour-bucket.s3-website-xx-yyyy-n.amazonaws.com
où xx-yyyy-n est la région AWS de S3 où votre compartiment a été créé. Ce point de terminaison est affiché dans la console S3 pour chaque compartiment.la source
alias
enregistrements Route 53 pointant vers des compartiments S3 avec l'hébergement de site Web activé, ce qui entraîne la résolution du DNS vers le point de terminaison du site Web, pas le point de terminaison REST. Les points de terminaison du site Web ne prennent pas du tout en charge SSL ; seuls les points de terminaison REST le font. De plus, tous les certificats génériques ne prennent en charge qu'un maximum*
et ils ne peuvent apparaître que dans le composant de nom d'hôte le plus à gauche, ce qui n'est pas vraiment une limitation S3.https://s3-us-west-2.amazonaws.com/my-bucket.with-dots.in-us-west-2/key
. Point de terminaison régional incorrect = erreur de redirection.Supposons que vous ayez une zone hébergée abc.com. et vous créez un compartiment abc.com (qui n'apparaît pas dans la liste dans les alias de routes) - vous pensez peut-être que c'est le. après le nom - avec lequel vous ne pouvez pas nommer les seaux
Essayez cela aussi. Parce que la première fois, j'ai créé le seau avec le nom correct et je n'ai toujours pas fonctionné. Croyez-moi, j'ai un trouble obsessionnel-compulsif, donc je n'ai pas raté un point ou une virgule.
Cela a fonctionné pour moi en essayant presque tout - certaines suggestions que je vois est de se déconnecter et de se connecter pour une sorte de cache vide - pas sûr
la source