Php 使用更新的代码扩展EC2实例
我有一个运行PHP网站的EC2实例,我也在使用AWS的缩放策略,这意味着当满足某些条件时,会生成一个新实例 问题是AMI是由旧的AMI代码生成的 假设我使用Php 使用更新的代码扩展EC2实例,php,amazon-web-services,amazon-ec2,amazon-ami,Php,Amazon Web Services,Amazon Ec2,Amazon Ami,我有一个运行PHP网站的EC2实例,我也在使用AWS的缩放策略,这意味着当满足某些条件时,会生成一个新实例 问题是AMI是由旧的AMI代码生成的 假设我使用amix创建了instance1。现在,我会不时更新instance1上的代码。现在,当生成一个新实例时,它是使用AMIX代码创建的,而不是使用我所做的更新 除了每次手动更新AMI之外,当前场景的解决方案是什么?Amazon机器映像(AMI)是磁盘映像的只读副本,将用于启动新的Amazon EC2实例。从该AMI启动的任何新实例都将具有完全相
amix
创建了instance1
。现在,我会不时更新instance1上的代码。现在,当生成一个新实例时,它是使用AMIX代码创建的,而不是使用我所做的更新
除了每次手动更新AMI之外,当前场景的解决方案是什么?Amazon机器映像(AMI)是磁盘映像的只读副本,将用于启动新的Amazon EC2实例。从该AMI启动的任何新实例都将具有完全相同的启动磁盘
如果在实例上更新代码,这不会影响底层AMI,这是正确的。将来从同一AMI启动的任何实例都不会有更新的代码,因为这些更改不会影响AMI
如果希望将来的实例具有更新的代码,有几个选项:
- 更新代码,然后创建一个新的AMI。从新AMI启动未来实例
- 在用户数据字段中使用启动脚本从中央存储库下载代码。这样,代码实际上并不存储在AMI上。它可以在每次启动实例时重新下载
- 使用配置管理实用程序如Puppet或Chef来配置系统,从中央存储库提取代码
关键是要使您的流程自动化,以便在您希望发布更新时不需要手动参与。您是否有现成脚本的示例,因为我不知道用户数据字段。脚本可以执行任何您想要的操作。最简单的方法是从S3下载一个包含所有代码的zip文件,解压后执行。用户数据文档: