【发布时间】:2018-06-27 22:00:41
【问题描述】:
我使用的是免费层级 aws 帐户,其中有一台 ec2 机器 (Linux)。我有一个简单的网站,后端服务器在 django 上以 8000 端口运行,前端服务器以 Angular 编写并在 http (80) 端口上运行。我使用 nginx 进行 https 并将调用重定向到后端和前端服务器。
现在对于后端构建系统,我完成了这 3 个主要步骤(我通过在同一台机器上运行 jenkins 来自动化这些步骤)。
1) git pull (Pull the latest code from repo).
2) Do migrations (Updating my db with any new table).
3) Restarting the django server. (I was using gunicorn).
现在,我使用 Auto Scaling 组将我的前端和后端服务器分成 2 台不同的机器,我现在使用 ELB(Aws 弹性负载均衡器)来路由请求。我完成了设置。但是现在我在持续部署中遇到了问题。主要的是 ELB 使用自动缩放组,而后者又使用 AMI。
现在,由于 AMI 只创建一次,我的第一个问题是如何自动化此过程并将我的最新代码部署到已经运行的 aws 服务器中。
其次,如果我只想为所有服务器运行几个步骤,例如使用新表更新数据库的第二步,那么如何实现。
如果这些步骤需要在机器上运行,那么我是否需要另一个 ec2 实例来自动执行创建 AMI、使用它更新 Auto Scaling 组然后在其中部署最新代码的过程。
所以,基本上我想知道人们在 AMI 的帮助下在由 Auto Scaling 组创建的 AWS 机器中部署最新代码时遵循的最佳实践。我也使用 bitbucket 进行代码管理。
【问题讨论】:
-
您看过 AWS CodeDeploy 吗?
标签: django amazon-web-services jenkins deployment continuous-integration