在 Terraform 模块中引入可编程 AWS Landing Zone

大家好! XNUMX月,OTUS推出新课程—— 云解决方案架构。 在本课程开始之前,我们将与您分享有关该主题的有趣材料的翻译。

在 Terraform 模块中引入可编程 AWS Landing Zone

AWS登陆区 是一种解决方案,可帮助客户根据最佳实践快速设置安全的多账户 AWS 环境。

五年多来,我们 Mitoc Group 的团队不懈努力,帮助大型组织成功进行数字化转型、构建数字足迹或将其数字足迹迁移到 AWS 云。 换句话说,引用我们在 AWS 的朋友的话:“我们的客户正在利用 AWS 重塑自己。” 代表客户本身重新发明和简化机制是一项永无休止的努力,AWS 在通过易于学习的解决方案解决复杂问题方面做得非常出色。

在 Terraform 模块中引入可编程 AWS Landing Zone
AWS 登陆区 ()

什么是 AWS 登陆区?

根据官方消息来源的信息:

AWS Landing Zone 是一种解决方案,可帮助客户根据 AWS 最佳实践快速建立具有多个账户的安全 AWS 环境。 由于选项众多,设置多账户环境可能非常耗时,涉及配置多个账户和服务,并且需要对 AWS 服务有深入的了解。

AWS Landing Zone 显着降低了交付给不同客户的类似设计模式的复杂性和一致性。 另一方面,我们的团队必须将一些 CloudFormation 组件重新配置为 Terraform 组件,以便进一步使用它们来实现自动化。

因此我们问自己,为什么不在 Terraform 中构建整个 AWS Landing Zone 解决方案? 我们能做到吗?它能解决客户的问题吗? 剧透:它将并且已经决定了! 🙂

什么时候不应该使用 AWS Landing Zone?

如果您在一两个 AWS 账户中处理常规云服务和云资源,这些措施可能有些过头了。 任何不涉及这一点的人都可以继续阅读:)

开始工作之前你应该考虑什么?

我们合作过的许多大型组织已经制定了某种云战略。 如果没有明确的愿景和期望,公司很难成功实施云服务。 请花时间定义您的策略并了解 AWS 如何融入其中。

在制定策略时,成功的 AWS Landing Zone 客户会积极关注以下方面:

  • 自动化根本不是一种选择。 云原生自动化是首选。
  • 团队始终使用相同的机制和相同的工具集来配置云资源。 最好使用 Terraform。
  • 最高效的云用户有能力创建可重用流程并将其作为可重用服务而不是可重用代码提供。 无服务器架构是首选。

推出 AWS Landing Zone 的 Terraform 模块

经过几个月的努力,很高兴向大家呈现 AWS Landing Zone 的 Terraform 模块. 源代码 存储在 GitHub 上,并且 稳定发布版本 发布在 Terraform 模块注册表上。

要开始使用,只需打开 main.tf 到你的代码:

module "landing_zone" {
  source     = "TerraHubCorp/landing-zone/aws"
  version    = "0.0.6"
  root_path  = "${path.module}"
  account_id = "${var.account_id}"
  region     = "${var.region}"
  landing_zone_components = "${var.landing_zone_components}"
}

注意:一定要开启 variables.tf 以及您可能需要的一切 outputs.tf.

为了更容易理解,我们添加了默认值 terraform.tfvars:

account_id = "123456789012"
region = "us-east-1"
landing_zone_components = {
  landing_zone_pipeline_s3_bucket = "s3://terraform-aws-landing-zone/mycompany/landing_zone_pipeline_s3_bucket/default.tfvars"
  [...]
}

这意味着当使用该模块时 terraform 你将需要:

  1. 改变数值 account_id и region 您自己的数据,对应于 AWS 组织中的数据;
  2. 改变数值 landing_zone_components 那些与您的 AWS Landing Zone 使用案例相匹配的;
  3. 改变 s3://terraform-aws-landing-zone/mycompany 到你的街区 S3 和键前缀 S3您将在哪里存储文件 .tfvars (或文件的绝对路径 .tfvars 在您的本地存储中)。

该模块可能有数十、数百或数千个可部署组件,但并非所有组件都应该或将被部署。 在运行时,不属于变量映射的组件 landing_zone_components 将被忽略。

结论

我们很高兴也很自豪能够分享我们帮助客户构建云原生自动化的努力成果。 AWS Landing Zone 的 Terraform 模块是另一个解决方案,可帮助组织根据 AWS 最佳实践快速设置具有多个账户的安全 AWS 环境。 我们深知 AWS 正在以惊人的速度增长,我们致力于快速开发一个涵盖所有基础并与其他 AWS 生产解决方案集成的 terraform 解决方案。

就这样。 我们正在等待您的评论并邀请您 免费网络研讨会 在其中我们 我们来研究一下Cloud Landing Zone域架构的设计,考虑一下主要域的架构模式.

来源: habr.com

添加评论