new*_*ike 2 ruby-on-rails amazon-web-services autoscaling
我尝试使用 AWS Auto Scaling 框架运行我的生产服务器。
我想知道如何将新发布的代码部署到正在运行的生产服务器中。
我不在乎down time现在。
我使用nginx和运行网络服务器puma
执行此任务的常用方法是什么?
我认为登录 AWS 控制台可以找到所有服务器 IP 和 SSH。更新代码库并重新启动 puma Web 服务器不是保持产品质量的好方法
在 Amazon EC2 实例上部署代码的方法有多种选择。事实上,它与您在任何普通计算机上部署代码的方式大致相同,但 Amazon EC2 有一些技术可以使这变得更容易。
选项 1:配置 AMI
启动新的 Amazon EC2 实例时,必须选择 Amazon 系统映像 (AMI)。AMI 是一个磁盘映像,它被复制到新实例的启动磁盘,然后实例使用该映像启动。
因此,部署新代码的一种选择是:
minimum实例数量)minimum并等待自动缩减进程,或通过降低desired-capacity.强制缩减。根据Auto Scaling 终止策略,将首先自动删除旧实例选项 2:用户数据脚本
这类似于选项 1,但不是配置新的 AMI,而是通过启动脚本自行配置实例。可以通过用户数据字段传递脚本,该脚本将在启动新实例时执行。
该脚本可以做任何您想做的事情,例如下载和安装软件,使用 Puppet/Chef/Ansible 进行部署,以及启动/停止 Web 服务器。
用户数据脚本应存储在 Auto Scaling 启动配置中(类似于选项 1 中的 AMI)。然后,只需启动新实例(类似于选项 1),它们就会自动使用您的软件的最新版本自行配置。
选项 3:使用部署服务
AWS 有多个系统可以将代码部署到 Amazon EC2 实例,包括:
前三个可以部署基础设施和代码。
虽然这些系统比简单地提供脚本更复杂,但它们允许更可重复、更有弹性的架构(例如处理故障和回滚)。
| 归档时间: |
|
| 查看次数: |
1782 次 |
| 最近记录: |