1

我正在研究放置在 AWS EC2 实例上的项目。我使用 CodeDeploy 将应用程序从 GitHub 部署到 EC2。但我想将公共数据存储为 S3 上的样式表、JS、图像等。甚至可以在 EC2 和 S3 上一步部署应用程序?还是应该只将所有文件放到 EC2 实例中?

这两天我一直在学习有关 Elastic Beanstal、CodeDeploy、CodePipeline、Ops Works 等的 AWS 文档,但我很困惑。

4

2 回答 2

1

听起来您希望在部署中有两个步骤。一种是更新 S3 中的静态资产,另一种是更新服务器和 EC2 实例上的动态内容。

以下是一些选项:

  1. 由于它们是静态的,只需让每个 EC2 主机将 S3 资产作为 BeforeInstall 脚本上传到您的存储桶。您需要将静态内容作为与 CodeDeploy 一起使用的捆绑包的一部分。
  2. 使用领导者选举算法从单个主机执行 (1)。您可以将 Zookeeper 之类的东西部署为 CodeDeploy 部署的一部分。
  3. 将您的静态资产作为与您的 CodeDeploy 部署分开的方式上传。您可能希望将 CodePipeline 视为更复杂的多阶段部署(可以使用 CodeDeploy 进行服务器部署)的解决方案。

无论哪种情况,您都需要确保不只是覆盖静态资产,否则您最终会遇到旧服务器代码尝试使用新静态资产的情况。您应该始终小心,您可以在部署期间并排运行两个版本的代码。

于 2015-09-11T16:44:32.440 回答
0

我不会把它复杂化。我会将所有文件放到 EC2 中,包括来自 GitHub 的 CodeDeploy 的 CSS 和 JS,因为没有简单而理想的解决方案。

于 2015-09-11T19:10:03.630 回答