如何在 AWS 中组织项目?

如何在 AWS 中组织项目?

在我们的团队中,我们使用 AWS 作为我们的主要云提供商,目前,我们在他们的平台上托管了 3 个项目。

我们将在接下来的几周内再有 2 个项目,但首先,我们要组织我们的项目,因为我们目前的组织有点混乱。

我们希望我们的项目按照以下规则进行组织:

  • 每个项目都必须有一个暂存环境和生产环境。
  • 每个项目都是彼此独立的,因此无法从另一个项目内部看到一个项目的资源,即 VPC 和 S3 Buckets。
  • 客户负责支付项目(暂存和生产环境)的费用。
  • 即使客户负责支付账单,我们也必须能够访问环境来部署我们的代码并执行与开发、测试和运营相关的其他任务。
  • 我们可以为每个项目分配一个开发团队。开发人员应该可以同时参与一个或多个项目。此外,我们应该可以在项目之间调动开发人员,并取消他们对项目的访问权限。

那么,是否可以按照前面提到的规则在 AWS 中组织项目?

答案1

逻辑组织的主要选项是:

  • 所有东西都放在一个账户/一个 VPC 中,通过标记或子网进行分离(不太理想)
  • 每个环境每个应用程序一个帐户/一个 VPC(更好)
  • 每个环境每个应用程序一个帐户(我认为对于较大的组织来说最好,但对于较小的组织来说有一些开销)

主要考虑因素为:

  • 轻松启用或阻止访问,特别是如果您的帐户与 AD 联合。只需将某人添加到 AD 组即可授予他们访问权限,然后将其删除即可撤销访问权限,这很方便,他们只需承担您希望他们拥有的策略的角色即可
  • 工作负载之间的隔离
  • 减少爆炸半径
  • 避免每个账户的 AWS API 限制
  • 成本分配,使用标签是可以的,但使用账户更容易(如果您使用中央通信账户或回程到本地,则带宽除外)
  • 监控
  • 复杂性 - 账户越多,管理起来就越困难,但应用程序隔离也有助于降低复杂性
  • 合规性 - 使用单独的账户可能更容易实现 PCI 合规性,因为您可以更轻松地证明隔离

AWS 控制塔是截至 2022 年 AWS 在该领域的最佳实践,您应该了解一下。它使用 AWS Organizations,这对于进行合并计费和使用服务控制策略非常有用。如果您需要设置账户之间的通信,Transit Gateway 很有用。您不能只运行 Control Tower 并称其足够好,您仍然需要处理网络、安全和用户管理,但这是一个很好的开始。

旧版 AWS Landing Zone这个答案在 2019 年推荐的现在已成为遗留问题,并标记为“不会获得更新”。

我花了很多时间考虑这个问题,这只是一个简短的回答。如果您需要更多信息,请发表评论,我会尽力扩展我的答案。

相关内容