首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS中的cloudformation最佳实践

AWS中的cloudformation最佳实践
EN

Stack Overflow用户
提问于 2014-12-07 21:40:15
回答 1查看 894关注 0票数 0

我们在AWS上运行我们的服务还处于早期阶段。我们的服务器托管在AWS中,在VPC中,有私有和公共子网,在私有和公共子网中有多个实例,使用ELB和前端web服务器的自动扩展设置(使用AMI)。整个环境(私有网络、安全组、EC2实例、数据库实例、S3存储桶、云前端)首先使用亚马逊网络服务控制台手动设置。应用程序服务器托管jboss,并且在服务器上部署war文件。

根据AWS的最佳实践,我们希望使用cloudformation创建整个基础架构,并设置测试/阶段/生产环境。

-Would将所有上述组件(VPC、安全组、EC2实例、数据库实例、S3存储桶、云前端等)都使用一个云信息堆栈/模板是否是一个好主意?或者我们应该创建两个堆栈: 1)具有网络复制组件,2)具有EC2相关组件?

-Once我们有一个prod envoronemtn正在使用cloudformation运行,如果我们想要在将来更新prod上的新AMI,我们如何使用cloudformation更新正在运行的EC2实例而不会中断?

-What在发布新版本时,将代码部署到多个EC2 notes的最佳实践/多种方式是什么?我们目前不使用Contineus集成。

EN

回答 1

Stack Overflow用户

发布于 2014-12-09 05:13:58

将你的设置分成多个堆栈是一个非常好的主意。一个明显的原因是,堆栈有一定的限制,您最终可能会达到。一个更实际的原因是,您不需要每次只想部署新版本时都更新您的VPC。网络架构通常不会频繁更改。避免使用一个巨大的模板,或者对“重要”模板进行不必要的更改的另一个原因是,您总是冒着把事情搞砸的风险。如果你的模板中有一个错误,你不小心删除了一个重要的资源(例如,注释掉了),你会非常抱歉。因此,出于绝对的谨慎,分离堆栈可能是一个好主意。

如果想要更新应用程序,只需用新的AMI更新模板,CFN就会知道需要重新创建或更新什么。您可以阅读有关滚动更新here的内容。但是,我建议您考虑使用更直接的方式来部署实际代码,比如Ansible或Chef。

我还建议您研究一下Docker,以打包和部署应用程序的节点。非常方便。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27343212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档