我有一个小网站,我们想将其部署到 Amazon EC2。原因是它比大多数其他 VPS 系统便宜,而且我们希望拥有完全自定义的配置,因此共享主机是不可能的。此外,使用相同图像扩展到更大服务器的选项也是选择 EC2 的原因之一。
因为我们从 t1.micro 实例开始,所以我们将使用 EBS 启动实例 (x64_64)。我们选择的操作系统是 Ubuntu Server。我们不自己编译任何软件包,而是坚持使用存储库中的稳定软件包。
我们所有的网络服务器数据都存储在另一个 EBS 数据卷上。
现在的问题是:我们如何才能最好地部署我们的网络服务器,同时保持数据更新。
我目前考虑过的选项:
- 使用我们需要安装的所有软件来制作我们自己的图像。
- 缺点:我们必须定期更新映像,以便在重新启动服务器时获得安全更新的映像。此外,当我们切换到发行版的新版本时,我们必须重新安装所有内容。
- 优点:启动服务器时无需花费时间进行任何安装程序
- 使用标准 Ubuntu 镜像,在启动时安装所有服务器并从数据盘复制所有非标准配置文件
- 缺点:启动时间较长,安装时可能出错,容易出错
- 优点:可以非常轻松地使用新的发行版或更新的图像
最好的做法是什么?我是否错过了什么好的选择,或者我的选择中还有哪些方面是我没有考虑到的。
答案1
答案2
查看 Chef 和 OpsCode 提供的托管服务。Chef 允许您自动化部署和配置。chef-client 作为守护进程在服务器上运行,如果您愿意,可以为您升级软件包。
Fabric 也很棒,我们主要用它来操作实时服务器。
答案3
我创建了自己的 AMI,其中已安装 LAMP 堆栈和所有应用程序。我会跟踪所有更改,然后在有足够的更改时更新映像。我将 apache、mysql 和 php 配置文件以及 mysql 数据库符号链接到 EBS。这样我就不必跟踪这些更改,当我将当前快照附加到新实例时,这些更改就会被捕获。