1 | title: 云端LandingZone基础环境迁移 |
背景
在云端做迁移是非常简单的,迁移后的环境配置,按照待迁移的环境一点一点手动在Web Console进行配置过去即可。这种方式是可行的,但是是不符合规范要求而且也不符合敏捷迁移的。想象一个公有云的云端环境,这个公有云环境中,存在着十几个VPC与三十几个子网。成百上千条安全组规则。在这种环境下进行手动迁移显然是不合适的,因此我们需要设计出一套迁移方案来进行合理的敏捷迁移。
场景模拟
某公司在AWS的美西区域上有一套环境,这个环境中部署着web服务。由于审计要求。因此这个web服务的安全组管理的非常严格只允许特定的公网IP进行访问。
1 | 1.1.1.1 1.1.1.2 ... 1.1.1.50 |
迁移任务
甲公司由于业务需求,需要将美西的环境迁移到另外一个账号的新加坡。需要进行迁移任务
工具
terraform
Terraform基于AWS Go SDK进行构建,采用HashiCorp配置语言(HCL)对资源进行编排,具体的说就是可以用代码来管理维护IT资源,比如针对AWS,我们可以用它创建、修改或删除 S3 Bucket、Lambda,、EC2、Kinesis、VPC等各种资源。并且在真正运行之前可以看到执行计划(即干运行-dryrun)。由于状态保存到文件中,因此能够离线方式查看资源情况(前提是不要在 Terraform 之外对资源进行修改)。Terraform 配置的状态除了能够保存在本地文件中,也可以保存到 Consul, S3等处。
terraformer
terraform可以根据预先编写的资源文件(TF文件)。通过资源文件生成对应的资源,那么在迁移环境中我们应该如何编写这些资源文件呢?通过手动的方式必然是可以创建出这些资源文件的。但是我们所需要的是自动根据云端环境创建出这些资源文件。而这件事情通过terraformer就可以很好的完成。terraformer可以基于现有基础架构(反向 Terraform)资源文件。
安装教程
todo