【问题标题】:Can AppConfig be used for cross-account deployments?AppConfig 可以用于跨账户部署吗?
【发布时间】:2021-10-08 02:26:44
【问题描述】:

我正在考虑使用 AppConfig,但我很难理解在测试和暂存部署位于不同帐户的情况下如何使用配置。

在这两个帐户中使用两个完全不同的 AppConfig 设置似乎适得其反,因为这会使配置升级到不同的部署变得困难。

我也可以设置一个 AppConfig,然后从我的应用程序中调用它,但这需要跨账户访问,使用我假设的不同角色,因为无法使用 ARN 或基于资源的策略访问 AppConfig。

那么如何跨多个帐户访问 AppConfig?

【问题讨论】:

  • https://aws.amazon.com/about-aws/whats-new/2019/11/simplify-application-configuration-with-aws-appconfig/

标签: amazon-web-services aws-lambda aws-app-config


【解决方案1】:

堆栈集

某些服务确实通过控制台提供原生多帐户支持。但如果失败,您可以随时使用StackSets。如果您可以设法将您的AppConfig 很好地打包到CloudFormation 模板中,您可以将一组堆栈部署到Organizational Unit,它将部署到该OU 中的所有帐户。

根据您的要求,这可能适合也可能不适合您的用例。典型的用例是在这些账户中强制执行合规性和统一性,即 VPC 设置是一致的、启用了日志记录等。不一定要将应用程序部署到不同的账户中,并不是说这不是一个好主意,这取决于。

CI/CD - 首选 (IMO)

我相信大多数人所做的是在 AWS 中拥有一个 CI/CD 帐户,或者在 AWS 之外拥有一个单独的 CI/CD 工具,其中将有一个管道(AWS 中的Code Pipline),其中每个都有帐户作为一个单独的阶段。在您的管道中,如果需要,您将拥有每个账户的环境变量,并对您手动执行 ATM 的 AWS 进行 CLI/API 调用。 IMO 这将是大多数时候最可维护的方法,原因如下:

  • 很容易在环境中产生差异,(CloudFormation 中的条件很难维护 IMO
  • 如果您的堆栈组中的一个堆栈存在问题,则不是这样的问题,因为您可能有一个堆栈影响其他堆栈。
  • 与仅使用 CloudFormationStackSets 相比,您通常拥有更多的粒度和控制力,尽管在技术上您可以使用 CloudFormation 完成所有操作。

服务目录

另一种选择是使用 AWS Service Catalog,自动更新预置产品,here 有一个示例。但这又是针对组织中的独立 IT 团队使用公司可用的 IT 产品的一个稍微不同的用例。

【讨论】:

  • “消费账户”中的委托人能否获得 IAM 权限以从“CI/CD”账户的 appconfig 中提取配置值?还是委托人需要“CI/CD”帐户中的凭据?
  • 我认为可能与您所说的接近的是使用 s3 作为您配置的源,如果可以引用另一个帐户中的存储桶并允许使用资源策略进行读取很棒,但是否则,如果没有,那么您将需要使用 s3 复制将配置复制到不同的帐户或手动将配置复制到每个存储桶,并使用堆栈集在每个帐户中创建应用程序配置。如果你问我会很痛苦,但如果你肯定想在多帐户中使用 AppConfig,你将不得不这样做。
【解决方案2】:

App Config 应该是特定于环境的,并且云形成可能是解决部署复杂性的解决方案之一。

【讨论】:

  • 这是什么意思?
猜你喜欢
  • 2020-01-12
  • 1970-01-01
  • 2020-01-25
  • 2019-05-09
  • 2020-07-07
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 2022-08-02
相关资源
最近更新 更多