英文:
AWS match unsupported TLD domain name and S3 bucket static website
问题
我创建了一个AWS S3存储桶作为静态网站。一切都运行得很完美。我获得了以下链接:
http://my-bucket-name.s3-website-us-east-1.amazonaws.com
我拥有自己的域名,由本地注册商注册,它已经在运行:
my-site.kiev.ua
这个域名有一些DNS服务器设置:
名称服务器1 ns1.servername.com
名称服务器2 ...
名称服务器3 ...
据我了解,我不能将'kiev.ua'乌克兰域名迁移到AWS。当我尝试时,我收到了以下消息:
UnsupportedTLD aws
那么,如何将这个域名与AWS S3存储桶的静态网站匹配起来?我需要做什么?
英文:
I created aws S3 bucket as static web site. Everything works perfect. I've got the link like:
http://my-bucket-name.s3-website-us-east-1.amazonaws.com
I have my own domain registred by local registrator, it's already works:
my-site.kiev.ua
This domain has some DNS servers settings
Name-server-1 ns1.servername.com
Name-server-2 ...
Name-server-3 ...
As I understand, I couldn't move 'kiev.ua' ukranian domain to aws. When I tried, I've got the masssage:
UnsupportedTLD aws
How can I match this domain with aws S3 bucket static web site then? What I have to do?
答案1
得分: 1
不必在AWS中拥有DNS即可通过您的域名提供网站。
更简单的选择:
在您的DNS提供商处创建一个CNAME记录,并将其指向您拥有的S3存储桶的网站URL。不确定,但您可能会遇到SSL问题,因为S3网站没有HTTPS。
更好的选择:
- 为您的网站创建ACM证书(您需要在您的DNS提供商中添加记录以确认它)。
- 创建一个CloudFront分发,将Origin指向您的S3存储桶。
- 为您的分发设置备用域名为
my-site.kiev.ua
。 - 复制AWS生成的CloudFront分发DNS名称,并在您的DNS提供商处为
my-site.kiev.ua
添加一个CNAME记录,将其指向此DNS名称。
英文:
You don't have to have a DNS in AWS to be able to serve a website through your domain.
Simpler option:
Create a CNAME record at your DNS provider and point it to the website URL of the S3 bucket that you have. Not 100% sure, but you might have an SSL problem because the S3 website doesn't have HTTPS
Better option:
- Create the ACM certificate for your website (you will need to add a record in your DNS provider to confirm it)
- Create a CloudFront distribution with Origin pointing to your S3 bucket.
- Set Alternate Domain Name for your Distribution to
my-site.kiev.ua
- Copy the CloudFront Distribution DNS name that AWS generates and add a CNAME record in your DNS provider for
my-site.kiev.ua
to point to this DNS name
答案2
得分: 0
这是关于HTTP协议的答案。
创建一个名为my-site.kiev.ua的S3存储桶,设置为公共访问,并添加S3存储桶策略(将[YOUR_BUCKET_NAME]
替换为您的实际存储桶名称):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[YOUR_BUCKET_NAME]/*"
}
]
}
然后保存并将静态网站托管设置为true。
创建名为www.my-site.kiev.ua的存储桶,不要设置完全访问权限,只需在静态网站托管部分添加重定向设置,指向先前的存储桶。
然后进入Route 53 -> 托管区域 -> 创建托管区域。命名为my-site.kiev.ua(公共托管区域)。
您将看到两个类型为NS和SOA的新字段。从NS Value/Route traffic复制4个值,逐个与您的DNS服务器设置匹配(不在AWS上,在域名提供商侧)。
然后按下以下步骤操作:
创建记录 -> 简单路由 -> 定义简单记录 -> 与S3存储桶my-site.kiev.ua匹配 -> 创建记录
最后,为www连接创建相同的记录。
英文:
This is the answer for http protocol.
Create S3 bucket my-site.kiev.ua with public access and add S3 bucket policy (replace '[YOUR_BUCKET_NAME]' with your actual bucket name):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[YOUR_BUCKET_NAME]/*"
} ]
}
Then save and set static website hosting true.
Create www.my-site.kiev.ua bucket without full access, just add redirect settings to previous bucket in static website hosting part.
Then go to Route 53 -> Hosted zones -> Create hosted zone. Name my-site.kiev.ua (Public hosted zone)
You will see new to fields with types NS and SOA. Copy 4 values from NS Value/Route traffic to and field by field match them with yours DNS-server settings (not in aws, on domain provider side).
Then press
Create record -> Simple routing -> Define simple record -> Match with S3 bucket my-site.kiev.ua -> Create records
And finally create the same record for www connection
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论