获取Bucketname时的S3 Static Website Hosting?

时间:2014-04-02 03:02:29

标签: amazon-web-services amazon-s3 dns hosting

我试图通过我的AWS账户使用S3托管一个简单的静态网站。我有一个旧的尘土飞扬的帐户,多年来测试中有许多奇怪的设置,我还有一个S3帐户,有一个' mypersonaldomain.com'和' mypersonaldomain.com'桶。无论如何我想重新开始,所以我取消了帐户以开始新的。

现在,当我去创建一个' mypersonaldomain.com'和' www.mypersonaldomain.com'它表示即使帐户已被删除,也会获取存储桶名称。我曾假设亚马逊会将桶名发回给公众。但是,当我删除帐户时,我没有事先明确删除存储桶。

我认为使用S3进行静态网站托管的存储桶名称需要与DNS的域名相匹配才能工作。但是,如果我无法创建一个具有正确名称的存储桶,那么我可以使用S3进行静态托管吗?它只是一个简单的低流量网站,不需要在EC2实例中。

仅供参考我使用Route 53作为我的DNS。

[note' mypersonldomain.com'不是实际的域名]

3 个答案:

答案 0 :(得分:15)

解决问题的一种方法是将您的网站存储在S3上,但通过CloudFront提供服务:

  1. 您可以使用您喜欢的任何名称在S3 上创建存储桶(无需将存储桶名称与您的域名相匹配)。
  2. 您在CloudFront上创建分发
  3. 您将来源添加到指向您的广告投放管理的发布中。
  4. 您可以使分配的默认行为从上一步创建的来源中获取内容。
  5. 您可以通过添加 CNAME
  6. 来更改分发的设置,使其响应您的域名
  7. 您在Route 53 上创建托管区域,并创建指向您的发布的 ALIAS条目
  8. 那应该有用。通过这样做,您可以获得潜在改善最终用户性能的额外好处。

    另请注意,几个月前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/