因此,我们正在建立一个基于magento的电子商务商店。我们希望使用RDS作为数据库服务,并在需要时使用Amazon自动缩放和弹性负载平衡器来将其部署在Amazon EC2实例上。
我不明白的是: 我已在EC2实例(数据库位于RDS中)上安装并配置了生产magento环境。这样很好。但是现在当我想动态扩展实例数量
对于该主题的一些资源的详细解释或方向,将不胜感激。
答案 0 :(得分:3)
您可以在AutoScalingGroup启动配置中执行此操作。 CloudFormation中的LaunchConfiguration中有一个UserData部分,您可以在其中编写一个脚本,该脚本在ASG扩大规模并部署新实例时运行。
这与EC2实例中的UserData部分相同。您可以使用LifeCycle挂钩,该挂钩将告诉ASG在您要配置的所有内容都设置好之前不要将EC2实例加载。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html
我链接了所有CloudFormation页面,但是您可能会使用其他CI / CD工具来部署基础架构,但是希望可以帮助您入门。
答案 1 :(得分:2)
要开始,请检查AWS CloudFormation。您将创建模板来设计应用程序的基础结构的工作方式〜基础结构作为代码。有了这些模板后,您可以通过推送对模板和/或应用程序代码的更改来向基础结构发布更新。
在我当前的项目中,我们有一个专用于这些基础结构模板的github存储库,以及一个用于我们的应用程序代码的单独存储库。创建一个用于创建AWS资源的管道,该管道将在您每次推送到特定分支上的存储库时将更新发布到AWS。
每次如何将代码部署在动态生成的实例上?
containers
的工作方式,这样会更好,并且会大大补充您对启动新版本的应用程序的工作方式的学习。首先,请参见docker,但请随时检查可用的资源image
,它将成为docker文档中的一个容器。aws会复制整个实例,为它分配一个新的IP并将其作为新实例生成,还是我必须编写一些代码来自动化该过程?
加上每次生成新实例时从git中提取代码并进行部署都不会产生开销吗?