forked from wangqifan/calc
5.7 KiB
5.7 KiB
AWS EC2 价格计算器
这是一个基于Vue.js和Python FastAPI开发的AWS EC2价格计算器网站,可以帮助用户计算和比较不同EC2实例的价格。
功能特点
-
价格计算器
- 选择实例类型、区域、操作系统和购买选项
- 实时计算价格
- 显示详细的价格信息
-
价格对比
- 支持多个配置的价格对比
- 表格和图表展示
- 导出对比结果
-
预算估算
- 支持自定义和预设使用时长
- 显示月度成本趋势
- 详细的成本明细
技术栈
- 前端:Vue.js 3 + Element Plus + ECharts
- 后端:Python FastAPI + Boto3
- 数据源:AWS API
系统要求
- Docker 20.10+
- Docker Compose 2.0+
- Node.js 14+
- npm 6+
快速开始
- 克隆项目并进入项目目录:
git clone <repository-url>
cd calc
- 创建环境变量文件:
cp .env.example .env
然后编辑 .env 文件,填入必要的环境变量。
- 运行安装脚本:
chmod +x install.sh
./install.sh
安装脚本会自动:
- 检查必要的命令是否已安装
- 创建必要的目录结构
- 构建前端项目
- 检查环境变量配置
- 检查 SSL 证书(如果有)
- 启动所有服务
- 检查服务状态
访问应用
安装完成后,可以通过以下地址访问应用:
- 前端界面:http://localhost
- 后端 API:http://localhost:8000
目录结构
.
├── backend/ # 后端服务
├── frontend/ # 前端项目
├── nginx/ # Nginx 配置
│ ├── conf.d/ # Nginx 配置文件
│ └── ssl/ # SSL 证书目录
├── docker-compose.yml
├── install.sh
└── README.md
开发说明
前端开发
cd frontend
npm install
npm run serve
后端开发
cd backend
pip install -r requirements.txt
python manage.py runserver
部署说明
使用 SSL 证书
-
将 SSL 证书文件放在
nginx/ssl/目录下:cert.pem:SSL 证书文件key.pem:SSL 私钥文件
-
修改
nginx/conf.d/default.conf中的server_name为你的域名。
环境变量
在 .env 文件中配置以下环境变量:
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=your_region
常见问题
- 如果遇到权限问题,请确保使用
sudo运行安装脚本:
sudo ./install.sh
- 如果服务启动失败,可以查看日志:
docker-compose logs
- 如果需要重新构建前端:
cd frontend
npm run build
维护说明
更新应用
git pull
./install.sh
停止服务
docker-compose down
查看日志
docker-compose logs -f
安装说明
开发环境部署
后端设置
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
- 安装依赖:
pip install -r requirements.txt
- 配置AWS凭证:
创建
.env文件并添加以下内容:
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=your_region
- 运行后端服务:
cd backend
uvicorn main:app --reload
前端设置
- 安装依赖:
cd frontend
npm install
- 运行开发服务器:
npm run serve
生产环境部署
后端部署
- 安装生产环境依赖:
pip install -r requirements.txt
pip install gunicorn
- 使用 Gunicorn 启动后端服务:
cd backend
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000
- 配置 Nginx 反向代理(可选):
server {
listen 80;
server_name your_domain.com;
location /api {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
前端部署
- 构建生产版本:
cd frontend
npm run build
- 配置 Nginx 服务静态文件:
server {
listen 80;
server_name your_domain.com;
root /path/to/frontend/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Docker 部署
- 构建后端镜像:
cd backend
docker build -t aws-calc-backend .
- 构建前端镜像:
cd frontend
docker build -t aws-calc-frontend .
- 使用 Docker Compose 启动服务:
docker-compose up -d
- 查看服务状态:
docker-compose ps
环境变量配置
后端环境变量
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=your_region
CORS_ORIGINS=http://localhost:8080,https://your_domain.com
ENVIRONMENT=production
前端环境变量
VUE_APP_API_URL=http://localhost:8000
VUE_APP_ENV=production
使用说明
- 访问 http://localhost:8080 打开应用
- 使用导航菜单切换不同的功能页面
- 在表单中选择所需的配置
- 点击计算按钮查看结果
注意事项
- 确保已配置有效的AWS凭证
- 后端服务默认运行在 http://localhost:8000
- 前端开发服务器默认运行在 http://localhost:8080
- 生产环境部署时请确保:
- 使用 HTTPS
- 配置适当的安全头部
- 启用 CORS 保护
- 设置适当的缓存策略
- 配置错误监控和日志记录
贡献指南
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
许可证
MIT License