Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用更新的代码扩展EC2实例_Php_Amazon Web Services_Amazon Ec2_Amazon Ami - Fatal编程技术网

Php 使用更新的代码扩展EC2实例

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启动的任何新实例都将具有完全相

我有一个运行PHP网站的EC2实例,我也在使用AWS的缩放策略,这意味着当满足某些条件时,会生成一个新实例

问题是AMI是由旧的AMI代码生成的

假设我使用
amix
创建了
instance1
。现在,我会不时更新instance1上的代码。现在,当生成一个新实例时,它是使用AMIX代码创建的,而不是使用我所做的更新

除了每次手动更新AMI之外,当前场景的解决方案是什么?

Amazon机器映像(AMI)是磁盘映像的只读副本,将用于启动新的Amazon EC2实例。从该AMI启动的任何新实例都将具有完全相同的启动磁盘

如果在实例上更新代码,这不会影响底层AMI,这是正确的。将来从同一AMI启动的任何实例都不会有更新的代码,因为这些更改不会影响AMI

如果希望将来的实例具有更新的代码,有几个选项:

  • 更新代码,然后创建一个新的AMI。从新AMI启动未来实例
  • 在用户数据字段中使用启动脚本从中央存储库下载代码。这样,代码实际上并不存储在AMI上。它可以在每次启动实例时重新下载
  • 使用配置管理实用程序如Puppet或Chef来配置系统,从中央存储库提取代码

关键是要使您的流程自动化,以便在您希望发布更新时不需要手动参与。

您是否有现成脚本的示例,因为我不知道用户数据字段。脚本可以执行任何您想要的操作。最简单的方法是从S3下载一个包含所有代码的zip文件,解压后执行。用户数据文档: