CloudFront与Elastic Beanstalk结合用于动态应用程序?

时间:2012-05-27 12:15:34

标签: php amazon-web-services amazon-cloudfront elastic-beanstalk

我正在考虑将CloudFront与Elastic Beanstalk应用程序结合使用来实现动态内容。

我喜欢Elastic Beanstalk提供的功能(git部署,自动容量配置,负载平衡,自动扩展和应用程序运行状况监控),我也喜欢CloudFront上周推出的新功能(http://bitly.com/aws-cloudfront-dynamic) ,所以我在考虑在我的Elastic Beanstalk应用程序前面使用CloudFront。

你怎么想?

这是一个好方法吗? (请参阅此处的简单图表:http://d.pr/i/f6sa

或者我应该使用普通的EC2实例和LoadBalancer(也许使用CloudFormation设置)?

如果我将CloudFront与Elastic Beanstalk结合使用,我应该将CloudFront原点指向Beanstalk为我的应用程序自动创建的Elastic LoadBalancer(即:awseb-My-Environment-00000.us-east-1.elb.amazonaws 。)我认为如果环境失败并且它会自动创建一个新环境,或者我应该将原点指向应该始终相同的应用程序URL(即:http://myapp.elasticbeanstalk.com),它可能会改变吗?

建议欢迎!

谢谢!

3 个答案:

答案 0 :(得分:2)

虽然您的问题已经过时但我认为我会对您的解决方案发表评论,因为我认为您不需要在Elastic Beanstalk前面使用Cloudfront有两个原因。

  1. 如上所述,您的网站是动态的。
  2. 您网站的任何更新都需要时间来更新到CF POP
  3. 如果您需要速度,请使用Cloudflare作为反向代理,并确保您的RDS服务器与EB实例位于同一区域。您还可以在S3中存储静态资产(即图像,css,js)并通过CF提供服务。

    我对您的最终解决方案感兴趣还是完全放弃了?

答案 1 :(得分:1)

无论是作为CDN还是反向代理,CF绝对是最佳选择。

我不确定如何使用PHP和.NET(我是Java Dino),但如果您的环境容易出现故障,我建议您将零停机时间功能与双重环境相结合

(可能在发布后快速冒烟测试之后切换DNS CNAME),以帮助您最大限度地减少对这些问题的影响,因此这只是一个流程问题。)

答案 2 :(得分:0)

您可以使用ebextenions修改基础CF模板:ngModelController

这是我看到它与EB一起正常工作的唯一方法,因为正如您所说的那样,它会动态创建ELB-手动指向其中一个将是个坏主意

我想做的是看看是否有可能在该模板中创建一个Cloudfront发行版并将其指向动态创建的ELB-不确定是否可行

也许来自亚马逊的人可以插话?