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