题 Amazon CloudFront和EC2:全局负载平衡


我们有一个应用程序,它将在S3中存储并提供大量数据,以便将延迟降至最低。因此,我们一直在使用Amazon CloudFront进行测试,并且已经看到了有利的结果。

但是,我们需要一个瘦的中间件层(做安全性等),我们想把它放在EC2中。由于安全限制,此中间件层将从S3 / CloudFront执行文件流传输:

S3 / CloudFront - > EC2 - >客户端

我们可以在地理位置上分发EC2节点(美国东/西和爱尔兰),但问题是欧盟的客户会打击我们的美国服务器并从那里获取数据,从而使CloudFront的大部分性能优势都没有实际意义。我一直在挖掘EC2文档,但我找不到一种内置的方法来获得EC2和CloudFront的地理分布版本。

Elastic Load Balancing听起来像是要走的路,但我似乎找不到基于路由的方式......最好是,我们希望保留EC2 / S3 /等以外的东西数量。至少(出于显而易见的原因)。

任何想法如何在EC2 / S3框架内做到这一点? DNS /路由技巧?

谢谢!


6
2018-04-13 17:49






答案:


使用中间层通常会抵消分布式CDN的好处,因为在大型中央数据中心中只有少数节点为内容提供服务而不是许多边缘缓存节点。如果您的计划确实需要首先通过服务器管理内容,那么请跳过CloudFront并坚持使用S3,因为您不会从中获得任何好处。

更好的方法是将“安全等”的意思形式化。并查看您是否可以使用内置于CDN中的身份验证和访问控制。 S3和Cloudfront使用签名提供 广泛的控制 谁可以访问内容,你甚至可以创建 时间限制的URL 将在几小时或几分钟后过期。这些特殊网址可以由您的网站创建,以便用户无法深入链接到内容或与其他人共享链接,并且通常提供足够好的安全性,仍然可以让您从边缘缓存中受益。

我对亚马逊文档不太熟悉,但Windows Azure也有这个概念 共享访问签名 这使您可以在不释放私钥的情况下委派上载或下载权限。最近有一个 第9频道的Cloud Cover剧集 它很好地描述了如何创建共享访问签名以及如何使用它们来保护CDN上的内容和委派权限。


4
2018-04-13 23:18



只需阅读今天早上发送的AWS简报,发现CloudFront提供了他们称之为“私有内容”的内容,用于控制谁有权访问数据。有关如何设置私人内容的更多详细信息,请访问: docs.amazonwebservices.com/AmazonCloudFront/latest/... - Greg Bray


您可以使用支持将基于用户所在国家/地区的请求路由到不同服务器的DNS服务,但如果您从EC2提供数据,则使用Cloudfront可能没有任何意义,而且从使用S3看起来没有任何意义,因为你总是从你的EC2实例发送数据。

也许如果您提供了有关您发送的数据类型的更多信息,则可能会看到更好的解决方案。


1
2018-04-13 18:10



使用我们想要维护的S3还有其他好处,所以它并不像看起来那么疯狂。其他东西将为S3池提供数据...这只是需要这个安全层的检索。 - Matt Rogish


您可以部署全局负载平衡解决方案,其中使用地理邻近度将客户端(通过DNS答案)定向到最近的数据中心。您可以在云中运行软件解决方案(在您的情况下为EC2),例如Zeus GLB。您甚至可以获得免费评估并在您的环境中进行测试。


0
2018-04-14 13:20