2014-04-02 129 views
5

我正尝试从S3的AWS账户托管一个简单的静态网站。我有一个旧的尘土飞扬的帐户,有很多来自多年来测试的奇怪设置,我也有一个“mypersonaldomain.com”和“wwww.mypersonaldomain.com”桶的S3帐户。无论如何,我想开始新鲜的,所以我取消了账户开始新的。当采用Bucketname时,S3静态网站托管?

现在,当我去创建一个'mypersonaldomain.com'和'www.mypersonaldomain.com'时,它表示即使该帐户在前一段时间被删除也会获取存储桶名称。我曾假设亚马逊会将这个bucketname释放给公众。但是,当我删除该帐户时,我并未事先明确删除这些存储桶。

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

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

[注意“mypersonldomain.com”不是实际的域名]

回答

5

在我看来,这是方式的巨大的设计缺陷,S3要求桶名称是普遍的所有用户是唯一的。

例如,我可以为任何知名公司名称(假设他们未被采用)制作存储桶,然后这些域的合法用户将被阻止使用它们来创建静态s3网站if他们曾经想过。

我从来不喜欢这个要求,即s3存储桶名称在所有用户中都是唯一的,这是一个主要的设计缺陷(我确信它在第一次设计时有合法的原因),但无法想象如果AWS可以回到制图板上,他们现在不会重新考虑它。

对于您的情况,使用删除帐户,可能需要向s3技术支持人员发送便条 - 他们可能会很轻松地帮助您。

+0

是的,我在考虑关于恶意用例的完全相同的事情。我想我会向AWS发送一条消息。 –

+4

是否有任何东西出来(联系AWS团队)?我也一直在想:“存储桶名称必须与域名匹配”+其他人可能抢占你的域名肯定是一个问题。因为除了这些狡辩之外,S3对静态托管非常有用! – vijucat

+2

这是我现在的问题。我拥有一个域名,但有人已经为它创建了存储桶:(((在我的情况下,我使用CloudFront,因此顶点地址工作正常,但我无法设置www重定向,不开心) –

8

一个为您解决问题的方法是将存储您的网站上的S3,但服务它通过CloudFront的:

  1. 您对S3创建桶任何你喜欢的名字(不需要匹配斗的名称到您的域名)。
  2. 您在CloudFront上创建分配。
  3. 您将一个原产地添加到您的分配中,指向您的存储桶。
  4. 您使分配的默认行为获取上一步创建的原点的内容。
  5. 你改变分配的设置,使其回复您的域名,通过添加CNAME
  6. 您创建一个托管区的干线53创造别名条目指向您的分发。

这应该有效。通过这样做,您可以获得潜在改善最终用户性能的额外好处。

另请注意,几个月前CloudFront已包含在免费套餐中(http://aws.amazon.com/free)。

+0

我从未想过谢谢! –

+0

这是一个有效的解决方案,也在Linux Academy CSA课程中演示过。非常愚蠢,甚至需要一种解决方法。 – seeafish

1

我终于想出了一个适合我的解决方案。对于我的apex域名,我使用的是CloudFront,这不是某人已经拥有我的存储桶名称的问题。问题是www重定向。我需要一个服务器来重写URL并发出永久重定向。由于我为我的API使用Elastic Beanstalk,我利用Nginx完成重定向。你可以在这里阅读我的帖子中的所有细节:http://brettmathe.com/aws/aws-apex-redirect-using-elastic-beanstalk/