存储公共数据的位置以及如何从GitHub部署它

时间:2015-09-11 12:04:57

标签: amazon-web-services github amazon-ec2 aws-code-deploy

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

我已经学习了两天关于Elastic Beanstal,CodeDeploy,CodePipeline,Ops Works等的AWS文档,但我很困惑。

2 个答案:

答案 0 :(得分:1)

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

以下是一些选项:

  1. 由于它们是静态的,只需让每个EC2主机将S3资产作为BeforeInstall脚本上传到您的存储桶。您需要将静态内容包含在与CodeDeploy一起使用的捆绑包中。
  2. 使用领导者选举算法从单个主机执行(1)。您可以将Zookeeper部署为CodeDeploy部署的一部分。
  3. 将您的静态资产与CodeDeploy部署分开上传。您可能希望将广告CodePipeline视为更复杂的多阶段部署的解决方案(可以使用CodeDeploy进行服务器部署)。
  4. 在任何一种情况下,您都需要确保不要覆盖静态资产,否则最终会导致您的旧服务器代码尝试使用新的静态资产。您应该始终小心,在部署期间可以并排运行两个版本的代码。

答案 1 :(得分:0)

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