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/小时
部署过程
自动执行的步骤
- 前置检查: 验证 AWS CLI 配置和权限
- 基础设施创建:
- VPC 和网络配置
- 安全组设置 (开放端口: 22, 3000, 9000, 11434)
- SSH 密钥对生成
- EC2 实例启动: Ubuntu 22.04 LTS 实例
- 系统初始化: 安装 Node.js, Docker, Docker Compose
- 应用部署:
- 代码克隆/上传
- Docker 镜像构建
- 服务启动
- 健康检查: 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. 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 监控
需要帮助?
- 查看项目 Issues: https://github.com/Beijing-Datoms-Technology-Corp/datomsDBS/issues
- 联系技术支持: jerry.zhang@datoms.cn