跳至主要内容

盘点那些 AWS 提供的管理工具

AWS 提供了很多管理工具,帮助我们管理云基础设施资源。

从 EC2 管理,到基础设施即代码(IaC),基础设施模版治理,日志监控,账户活动监控,均有一套完整的解决方案。

System Manager

System Manager 是 AWS 提供的 Serverful 资源管理中心。它主要有以下几个模块:

  • 运营管理(Operations Management);
  • 应用程序管理(Application Management);
  • 变更管理(Change Management);
  • 节点管理(Node Management)。

里面有很多实用工具。

比如说应用程序管理中的 Parameter Store, 用于存储敏感字符串,密钥等数据,提供给 EC2、ECS、Lambda、CodePipeline 等服务使用。

还有变更管理中的自动化(Automation)工具,可以自动执行常见的运维工作,如对 RDS 数据库进行备份。AWS 提供很多现成的自动化文档(Automation Document),也可以自己增加自动化文档。

节点管理中的 Session Manager 可以让我们不用堡垒机、不用 SSH,连接 EC2,提高安全性。通过 Run Command 手动执行命令文档(Command Document),可对 EC2 进行升级、打补丁等操作。Patch Manager 则可以配置规则定期给 EC2 打补丁。Compliance 还能扫描并监控 EC2 的补丁、配置合规性。

System Manager 提供大量管理 EC2 的工具,当我们面对 EC2、混合云的运维场景时,它会非常有用。

CloudFormation

CloudFormation(CFN) 是用于基础设施即代码的服务。通过代码化,可以减少手动配置的成本,能对基础设施进行回滚。还能结合 CI/CD,搭建基础设施的 Pipeline。

CloudFormation 通过 YAML 或者 JSON 定义的模板,创建一系列资源,并以堆栈形式管理。还能通过堆栈集(StackSets)跨区域、跨账户创建堆栈资源。

关于堆栈资源的更新行为,有三种类型,依资源更新属性而定:

  • 无中断更新;
  • 时而中断更新;
  • 替换资源。

我们可以通过 UI、CLI、API 或者 Ansible 这类部署工具对堆栈进行创建、更新、删除操作。通过 TaskCat 等工具,可对 CloudFormation 模板进行测试。

此外,借助 AWS CDK(Cloud Development Kit),我们可以使用编程语言定义基础设施,CDK 可将其转化为 CloudFormation 模板,用于基础设施创建。目前支持的语言有 TS、JS、Python、Java、C#、Go。

相较于很多跨平台的三方开源工具,CloudFormation 更稳定,有着较好的资源依赖处理、回滚机制,推荐作为 AWS 基础设施代码化的首选方案。

SAM

SAM(Serverless Application Model) 是 AWS 提供的一个工具包,用于创建 Lambda、API Gateway、DynamoDB 等 Serverless 资源。

SAM 模板基于 CloudFormation 模板,同时又可以用精简语法定义 Serverless 资源。SAM 工具包可以本地执行 Lambda、API Gateway,提高开发效率。

如果是在 AWS 开发 Serverless 应用,相比用 Cloudformation 模板去创建,SAM 会是一个更好的选择。

Service Catalog

Service Catalog 是一个用于实现 CloudFormation 模板治理的服务。

Service Catalog 管理员可以创建“产品组合”(Portfolios),预先定义“产品”(Products)的 CloudFormation 模板,以提供给 AWS 组织下的用户使用,并且可以通过 IAM 细粒度地管理用户权限。

用户也可以便捷地通过预先配置好的 CloudFormation 模板快速启动所需要的基础设施服务。

Service Catalog 提供多种约束规则来确保用户使用 CloudFormation 模板的合规性:

  • 启动约束:定义了当用户启动“产品”时,Service Catalog 所具备的权限;
  • 通知约束:可指定 SNS 接受堆栈事件通知;
  • 标签更新约束:可以设置允许或禁止用户更新标签
  • 堆栈集约束:配置堆栈集,指定用户可以在哪些账户、可用区下面启动“产品”;
  • 模板约束:可限定用户启动“产品”时,CloudFormation 所用的参数。

同时,“产品组合”还支持跨组织、账号分享

对于使用 AWS 的企业来说,可使用 Service Catalog 治理基础设施资源,满足合规性要求。当有新人加入时,也能避免创建出不符合规范,有安全风险的资源。

CloudWatch

CloudWatch 是 AWS 提供的日志监控服务。

CloudWatch 可收集 EC2、ECS 等服务的 CPU、内存指标、运行日志。并可创建警报,通过 SNS 发送给我们。同时还能创建自定义控制面板,监控 AWS 资源。除了监控服务以外,还能监控账单数据。

CloudWatch 可以监控服务的运行状况,帮助我们定位应用问题,寻找基础设施优化方向,是 AWS 里面很常用的一个管理工具。

CloudTrail

CloudTrail 是一个用于监控 AWS 账户活动,管理风险、合规性的服务。

CloudTrail 可监控用户、角色等对 AWS 服务的操作记录,记录包括 UI、CLI、API 在内的所有操作。并将其记录加密存储到 S3 中。通过日志,可以有效追踪基础设施变更历史,定位问题,确保变更的合规性。

CloudWatch 和 CloudTrail 相比,前者是监控服务的运行状况,而后者则是监控 AWS 账户的活动记录。

总结

我们可结合具体的需求选择合适的服务。

对于 EC2 的管理,System Manager 提供了完善的打补丁、状态管理等解决方案。如果我们需要存储 EC2、ECS、Lambda 等服务的环境变量,或是数据库的秘钥,System Manager 中的 Parameter Store 是不错的选择。但是如果要考虑秘钥轮换,则 Secret Manager 会是更佳的选择。

CloudFormation 则是 AWS 提供的基础设施即代码工具,以堆栈方式管理一系列云资源。结合 Service Catalog 可以对 CloudFormation 模板进行治理。

而 CloudWatch 可以有效监控服务运行情况。CloudTrail 则可以监控整个账户的活动记录。

评论

此博客中的热门博文

归并排序的两种方式

概述 归并排序是目前最高效的排序算法之一,它兼具稳定和低复杂度的特点,其最坏时间复杂度 O(nlogn) ,空间复杂度 O(n) 。 归并排序采用计算机科学的分治思想,因此有两种实现方式:自顶向下和自底向上。

博客迁移至 Blogger 小记

最早博客是基于 Hexo 搭建,并部署在 Github Page 上。后来因为访问速度原因,迁至大陆腾讯云裸机器上(因为做活动一年¥100不到),使用 Nginx 代理静态文件。裸机器到期后迁至腾讯云 cos 里,成本倒是降低了,但不久备案被吊销,博客停更。