# DevOps 检查清单（AWS）

基于：[AWS DevOps 检查清单](https://gruntwork.io/static/devops-checklist/)

```checklist
- DevOps 检查清单（AWS）
  - 服务端
   - 构建 AMI
   - 使用自动弹性组部署 AMI
   - 构建 Docker 镜像
   - 使用 ECS、EKS 或者 Fargate 部署 Docker 镜像
   - 使用 Lambda 和 API Gateway 部署 Serverless 应用
   - 配置 CPU、内存和内存回收设置
   - 配置硬件驱动
 - 客户端
   - 选择 JavaScript 框架
   - 选择一个编译到 JavaScript 语言
   - 选择一个编译到 CSS 的语言
   - 优化静态资源
   - 使用静态内容服务器
   - 使用 CDN
   - 配置缓存
 - 数据存储
   - 部署关系性数据库
   - 部署非关系性数据库
   - 部署队列（服务）
   - 部署搜索工具
   - 部署流处理工具
   - 部署数据仓库
   - 部署大数据系统
   - 配置定时任务
   - 配置硬盘空间
   - 配置备份
   - 配置跨账户备份
   - 测试你的备份
   - 设置 scheme 管理
 - 可伸缩和高可用
   - 在单体和微服务选择
   - 配置服务发布
   - 使用多实例
   - 使用多个可用分区
   - 设置负载均衡
   - 使用自动弹性
   - 配置自动恢复
   - 配置正常降级
   - 执行负载测试并使用混沌工程
 - 持续集成
   - 选择版本控制系统
   - 执行代码检视
   - 配置构建系统
   - 使用依赖管理
   - 配置静态分析
   - 设置自动代码格式化
   - 搭建自动化测试
   - 发布版本化的制品
   - 设置一个构建服务
 - 持续交付
   - 创建一个部署环境
   - 设置预环境配置
   - 定义基础设施既代码
   - 设置不可变基础设施
   - 发布制品
   - 在失败时可回滚
   - 自动化你的部署
   - 进行零停机时间部署
   - 使用金丝雀部署
   - 使用功能开关
 - 网络
    - 设置 VPC
    - 设置子网
    - 配置网络访问控制列表（ACL）
    - 配置案例组
    - 配置静态 IP
    - 配置 DNS 和 Route 53
 - 安全
    - 配置传输过程加密
    - 配置其余的加密：如磁盘
    - 配置 SSH 访问
    - 部署堡垒主机
    - 部署 VPN 服务器
    - 设置一个加密管理方案
    - 使用服务器强化实践
    - 检查 OWASP Top 10
    - 检查安全审计
    - 注册、加入安全咨询
    - 创建 IAM 用户
    - 创建 IAM 组
    - 创建 IAM 角色
    - 创建跨账号 IAM 角色
    - 创建密码策略并强制 MFA
    - 记录审计日志
 - 监控
    - 追踪可用性度量
    - 追踪业务度量
    - 追踪应用度量
    - 追踪服务器度量
    - 为可观察性配置服务
    - 存储日志
    - 搭建告警
 - 花费优化
    - 选择合适的 EC2 实例类型和大小
    - 将 Spot EC2 实例用于后台作业
    - 将预留的 EC2 实例用于专用工作
    - 不使用时关闭 EC2 实例和 RDS 数据库
    - 使用自动缩放
    - 尽可能使用 Docker
    - 尽可能使用 Lambda
    - 使用 S3 生命周期设置清理旧数据
    - 清理未使用的资源
    - 学习分析您的 AWS 账单
    - 创建帐单警报
```
