1
1
forked from wangqifan/calc
2025-03-27 17:27:42 +08:00
222
2025-03-26 15:59:19 +08:00
2025-03-27 17:27:42 +08:00
111
2025-03-26 12:48:43 +08:00
222
2025-03-26 15:59:19 +08:00
111
2025-03-26 12:48:43 +08:00
222
2025-03-26 15:59:19 +08:00
111
2025-03-26 12:48:43 +08:00
111
2025-03-26 12:48:43 +08:00
2025-03-26 12:14:52 +08:00

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. 克隆项目并进入项目目录:
git clone <repository-url>
cd calc
  1. 创建环境变量文件:
cp .env.example .env

然后编辑 .env 文件,填入必要的环境变量。

  1. 运行安装脚本:
chmod +x install.sh
./install.sh

安装脚本会自动:

  • 检查必要的命令是否已安装
  • 创建必要的目录结构
  • 构建前端项目
  • 检查环境变量配置
  • 检查 SSL 证书(如果有)
  • 启动所有服务
  • 检查服务状态

访问应用

安装完成后,可以通过以下地址访问应用:

目录结构

.
├── 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 证书

  1. 将 SSL 证书文件放在 nginx/ssl/ 目录下:

    • cert.pemSSL 证书文件
    • key.pemSSL 私钥文件
  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 运行安装脚本:
sudo ./install.sh
  1. 如果服务启动失败,可以查看日志:
docker-compose logs
  1. 如果需要重新构建前端:
cd frontend
npm run build

维护说明

更新应用

git pull
./install.sh

停止服务

docker-compose down

查看日志

docker-compose logs -f

安装说明

开发环境部署

后端设置

  1. 创建虚拟环境:
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置AWS凭证 创建.env文件并添加以下内容:
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=your_region
  1. 运行后端服务:
cd backend
uvicorn main:app --reload

前端设置

  1. 安装依赖:
cd frontend
npm install
  1. 运行开发服务器:
npm run serve

生产环境部署

后端部署

  1. 安装生产环境依赖:
pip install -r requirements.txt
pip install gunicorn
  1. 使用 Gunicorn 启动后端服务:
cd backend
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000
  1. 配置 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. 构建生产版本:
cd frontend
npm run build
  1. 配置 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. 构建后端镜像:
cd backend
docker build -t aws-calc-backend .
  1. 构建前端镜像:
cd frontend
docker build -t aws-calc-frontend .
  1. 使用 Docker Compose 启动服务:
docker-compose up -d
  1. 查看服务状态:
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

使用说明

  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

Description
aws,阿里云,谷歌云等产品计算器
Readme 22 MiB
Languages
Vue 72.3%
Python 23.8%
JavaScript 2.6%
Shell 1.3%