跳到主要内容

AWS EC2 自动化部署指南

概述

DatomsDBS 提供了完全自动化的 AWS EC2 部署解决方案,只需一条命令即可在云端快速部署完整的 DatomsDBS 系统。整个过程包括基础设施创建、应用程序部署和服务验证,通常在 10-15 分钟内完成。

前置条件

1. AWS 环境配置

# 安装 AWS CLI (如果未安装)
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

# 配置 AWS 凭证
aws configure

配置时需要提供:

  • AWS Access Key ID
  • AWS Secret Access Key
  • Default region (推荐: ap-southeast-1)
  • Default output format (推荐: json)

2. GitHub 访问配置 (可选)

# 如果需要访问私有仓库,设置 GitHub Token
export GH_TOKEN="your_github_personal_access_token"

快速开始

1. 执行部署脚本

bash scripts/aws_ec2_test_deployment.sh

2. 选择操作

脚本提供三个选项:

  • 选项 1: 启动测试 - 完整部署和测试流程
  • 选项 2: 清理资源 - 删除所有相关 AWS 资源
  • 选项 3: 退出程序

3. 确认部署

选择"启动测试"后,脚本会显示配置信息并要求确认:

  • 实例类型: t3.xlarge
  • 存储: 200GB GP3 SSD
  • 区域: ap-southeast-1
  • 预估费用: ~$0.20/小时

部署过程

自动执行的步骤

  1. 前置检查: 验证 AWS CLI 配置和权限
  2. 基础设施创建:
    • VPC 和网络配置
    • 安全组设置 (开放端口: 22, 3000, 9000, 11434)
    • SSH 密钥对生成
  3. EC2 实例启动: Ubuntu 22.04 LTS 实例
  4. 系统初始化: 安装 Node.js, Docker, Docker Compose
  5. 应用部署:
    • 代码克隆/上传
    • Docker 镜像构建
    • 服务启动
  6. 健康检查: API 可用性验证

部署时间

  • 基础设施创建: 2-3 分钟
  • 实例启动和初始化: 5-8 分钟
  • 应用部署和验证: 3-5 分钟
  • 总计: 10-15 分钟

部署结果

服务端点

部署成功后,您将获得以下访问地址:

  • 主服务: http://[PUBLIC_IP]:9000
  • 管理界面: http://[PUBLIC_IP]:9000/admin
  • 开发服务: http://[PUBLIC_IP]:3000
  • AI 服务: http://[PUBLIC_IP]:11434

默认登录凭证

  • 用户名: admin
  • 密码: admin123

测试报告

脚本会自动生成详细的测试报告,包括:

  • 系统信息 (Node.js, Docker 版本)
  • 容器状态
  • 健康检查结果
  • 访问地址清单

成本控制

资源配置

  • 实例类型: t3.xlarge (~$0.1856/小时)
  • 存储: 200GB GP3 (~$16/月,按实际使用计费)
  • 网络: 标准数据传输费用

自动清理

脚本提供两种清理方式:

  1. 部署后选择: 测试完成后可选择立即终止实例
  2. 手动清理: 使用脚本的"清理资源"选项

重要: 请记得及时清理资源以避免不必要的费用!

故障排除

常见问题

1. AWS 认证失败

# 检查 AWS 配置
aws sts get-caller-identity

# 重新配置如果需要
aws configure

2. SSH 连接超时

  • 检查安全组是否正确配置
  • 确认实例处于 running 状态
  • 验证密钥文件权限: chmod 400 *.pem

3. Docker 权限问题

脚本会自动处理 Docker 权限,包括:

  • 用户添加到 docker 组
  • 权限刷新和验证
  • 必要时使用 sudo

4. 容器启动失败

脚本包含自动错误检测和修复机制:

  • 依赖缺失自动修复
  • 镜像重新构建
  • 详细日志输出

手动操作

如需手动管理服务:

# SSH 连接到实例
ssh -i datomsdbs-test-key.pem ubuntu@[PUBLIC_IP]

# 查看容器状态
sudo docker compose ps

# 查看日志
sudo docker compose logs

# 重启服务
sudo docker compose restart

# 停止服务
sudo docker compose down

高级配置

自定义配置

脚本中的关键配置项:

AWS_REGION="ap-southeast-1"          # AWS 区域
INSTANCE_TYPE="t3.xlarge" # 实例类型
AMI_ID="ami-047126e50991d067b" # Ubuntu 22.04 LTS

多区域部署

修改 AWS_REGION 变量以在其他区域部署:

  • us-east-1: ami-0c55b159cbfafe1d0
  • us-west-2: ami-0d1cd67c26f5fca19
  • eu-west-1: ami-08ca3fed11864d6bb

性能调优

不同实例类型的建议:

  • 开发测试: t3.large (2 vCPU, 8GB RAM)
  • 小规模生产: t3.xlarge (4 vCPU, 16GB RAM)
  • 大规模部署: c5.2xlarge (8 vCPU, 16GB RAM)

安全最佳实践

网络安全

  • 脚本默认配置最小权限安全组
  • 仅开放必要端口
  • 支持 IP 白名单配置

访问控制

  • SSH 密钥自动生成和管理
  • Docker 容器间网络隔离
  • 应用层认证和授权

数据保护

  • EBS 卷加密选项
  • 自动备份配置
  • 敏感信息环境变量化

下一步

生产环境考虑

  • 配置 SSL 证书
  • 设置自定义域名
  • 集成监控和告警
  • 配置自动备份

扩展选项

  • 多可用区部署
  • Load Balancer 配置
  • Auto Scaling 设置
  • CloudWatch 监控

需要帮助?