我试图通过我的AWS账户使用S3托管一个简单的静态网站。我有一个旧的尘土飞扬的帐户,多年来测试中有许多奇怪的设置,我还有一个S3帐户,有一个' mypersonaldomain.com'和' mypersonaldomain.com'桶。无论如何我想重新开始,所以我取消了帐户以开始新的。
现在,当我去创建一个' mypersonaldomain.com'和' www.mypersonaldomain.com'它表示即使帐户已被删除,也会获取存储桶名称。我曾假设亚马逊会将桶名发回给公众。但是,当我删除帐户时,我没有事先明确删除存储桶。
我认为使用S3进行静态网站托管的存储桶名称需要与DNS的域名相匹配才能工作。但是,如果我无法创建一个具有正确名称的存储桶,那么我可以使用S3进行静态托管吗?它只是一个简单的低流量网站,不需要在EC2实例中。
仅供参考我使用Route 53作为我的DNS。
[note' mypersonldomain.com'不是实际的域名]
答案 0 :(得分:15)
解决问题的一种方法是将您的网站存储在S3上,但通过CloudFront提供服务:
那应该有用。通过这样做,您可以获得潜在改善最终用户性能的额外好处。
另请注意,几个月前CloudFront已包含在免费套餐中(http://aws.amazon.com/free)。
答案 1 :(得分:8)
在我看来,这是一个巨大的设计缺陷,因为S3要求存储桶名称在所有用户中都是独一无二的。
例如,我可以为任何知名公司名称制作存储桶(假设它们未被占用),然后这些域的合法用户将被阻止使用它们以创建静态s3网站,如果他们曾经想过。我从来没有喜欢过这样的要求:s3存储桶名称在所有用户中都是唯一的 - 这是一个主要的设计缺陷(我确信它在最初设计时有正当理由),但无法想象如果AWS可以去回到绘图板上他们现在不会重新考虑它。
在您的情况下,使用删除帐户,可能值得向s3技术支持下注 - 他们可能很容易帮助您。
答案 2 :(得分:1)
我终于想出了一个对我有用的解决方案。对于我的顶级域名,我使用的是CloudFront,这不是某人已拥有我的存储桶名称的问题。问题是www重定向。我需要一台服务器来重写URL并发出永久重定向。由于我使用Elastic Beanstalk作为我的API,我利用Nginx来完成重定向。您可以在此处阅读我发布的所有详细信息:http://brettmathe.com/aws/aws-apex-redirect-using-elastic-beanstalk/