具有2个AWS账户的AWS CodePipeline最佳做法

时间:2018-04-29 07:53:51

标签: amazon-web-services aws-lambda amazon-cloudformation continuous-deployment aws-codepipeline

目前,我的项目使用2个AWS账户 - 一个用于我们的客户可以依赖进行测试而另一个用于生产/现场。我正在尝试为新的无服务器应用程序设置CodePipeline。我想知道这个设置是否合适,是否有办法改进它。

暂存AWS账户:GitHub来源 - > AWS CodeBuild(测试和构建分段环境) - >手动批准门 - >在暂存中部署应用程序

然后,我将在批准生产部署之前验证暂存中的更改:

生产AWS账户: GitHub来源 - > AWS CodeBuild(测试和构建prod env) - >手动批准门 - >在prod

中部署应用程序

似乎测试和构建将是多余的,但似乎更容易设置它,因为我基本上可以使用相同的Cloudformation模板用于管道。此外,我不必担心跨帐户资源访问。

每当我推动掌握它时,它基本上会触发这两个管道。冗余是一个可以轻松修复的缺陷吗?让暂存帐户具有手动批准以促销到prod帐户的管道并触发它是否更简单?

1 个答案:

答案 0 :(得分:3)

单独的分期和生产帐户是个好主意。您是否考虑过使用单一管道(可能在第三个帐户中)?可以在CodePipeline中配置跨帐户操作。否则,您将很难在两个管道上协调发布。

我认为跨帐户操作是此类设置的最佳做法。也就是说,一些可能的解决方法是:

  • 手动批准可能是协调管道之间释放的最简单方法。它也是最容易出错的,因为人们很容易错误地宣传错误的东西。如果提交1和提交2在很短的时间内发生,管道1可能会观察到提交1,管道2可能会观察到提交2。
  • 让登台管道发布到作为生产管道源的S3对象(即不要复制源,构建和测试阶段)。这种方法的好处是生产管道只会释放遍历了分段管道的更改。