全栈应用部署服务

一个基于AWS ECS的生产级全栈应用部署解决方案,提供企业级安全、自动扩展和开发者友好功能。

  • by AKRAMSOUIDA
  • HCL
  • 本地部署
  • 更新于
在 GitHub 查看 akramsouida/lab-aws-mcp-servers-

使用说明

🚀 ECS全栈应用

部署在AWS ECS上的具有企业级功能的生产就绪全栈应用程序

🌐 现场演示 • 📖 文档 • 🚀 快速开始 • 🏗️ 建筑


✨ 特性

🔥 现代技术栈

  • 后端:Node.js+Express.js API
  • 前端:Next.js+React SPA
  • 容器化:Docker和Docker Compose
  • 云:AWS ECS+ECR+ALB

🛡️ 企业安全

  • SSL/HTTPS加密
  • CORS保护
  • 非根容器
  • VPC网络隔离

⚡ 生产就绪

  • 自动缩放功能
  • 健康检查监测
  • 负载均衡器集成
  • CloudWatch日志记录

🎯 开发者体验

  • 热装开发
  • 多阶段Docker构建
  • CI/CD管道就绪
  • 基础设施即代码

🏗️ 建筑

graph TB
    subgraph "AWS Cloud"
        ALB[Application Load Balancer<br/>SSL/HTTPS]
        
        subgraph "ECS Cluster"
            API[Node.js API<br/>Port 3001]
            WEB[Next.js Frontend<br/>Port 3000]
        end
        
        subgraph "Container Registry"
            ECR1[ECR: API Image]
            ECR2[ECR: Frontend Image]
        end
        
        CW[CloudWatch<br/>Logs & Monitoring]
    end
    
    USER[👤 Users] --> ALB
    ALB --> API
    ALB --> WEB
    WEB --> API
    API --> CW
    WEB --> CW
    ECR1 --> API
    ECR2 --> WEB

🚀 快速开始

先决条件

  • Docker&Docker编写
  • AWS CLI已配置
  • Node.js 18+(本地开发可选)

🐳 地方发展

# Clone the repository
git clone https://github.com/AKRAMSOUIDA/ECS_fullstack_app.git
cd ECS_fullstack_app/fullstack-app

# Start all services
docker compose up --build

# 🎉 Access your applications
# Frontend: http://localhost:3000
# API: http://localhost:3001

☁️ AWS部署

# Build and push to ECR
./deploy.sh

# Deploy to ECS
terraform apply

📁 项目结构

fullstack-app/
├── 🔧 api/                     # Node.js Express API
│   ├── server.js              # Main server application
│   ├── package.json           # Dependencies & scripts
│   └── Dockerfile             # Container configuration
├── 🎨 frontend/               # Next.js React App
│   ├── pages/                 # Application pages
│   ├── components/            # Reusable components
│   ├── public/                # Static assets
│   ├── package.json           # Dependencies & scripts
│   └── Dockerfile             # Container configuration
├── 🏗️ Terraform/              # Infrastructure as Code
├── 🐳 docker-compose.yml      # Local development
├── 📋 deployment-guide.md     # Deployment instructions
└── 📖 README.md              # You are here!

🔌 API终点

健康检查

GET /health
{
  "status": "OK",
  "timestamp": "2025-06-27T08:00:00.000Z"
}

用户管理

GET /api/users          # Get all users
POST /api/users         # Create new user

示例响应:

[
  {
    "id": 1,
    "name": "John Doe",
    "email": "john@example.com"
  }
]

🛠️ 技术栈

🔙 后端

  • 运行时:Node.js 18+
  • 框架:Express.js
  • 特性:REST API、CORS、运行状况检查
  • 容器:Alpine Linux

🎨 前端

  • 框架:Next.js 14
  • 图书馆:反应18
  • 特性:SSR,API路线,响应式
  • 构建:生产优化

☁️ 基础设施

  • 计算:AWS云服务器Fargate
  • 注册表:亚马逊ECR
  • 负载均衡器:LB应用程序
  • 监控:云观察

🔧 配置

环境变量

变量 描述 默认值
NODE_ENV 环境模式 development
PORT 服务器端口 3001
NEXT_PUBLIC_API_URL API端点URL http://localhost:3001

Docker配置

  • ✅ 多阶段构建以实现优化
  • ✅ 非root用户安全
  • ✅ 用于监测的健康检查
  • ✅ Alpine Linux实现最小尺寸

📊 性能与监控

🎯 优化

  • 容器:多阶段Docker构建
  • 前端:静态生成和代码拆分
  • 缓存:高效的Docker层缓存
  • 资源:适当的CPU/内存限制

📈 监控

  • 健康检查:容器和应用程序级别
  • 日志记录:结构化JSON日志到CloudWatch
  • 指标:CPU、内存和自定义指标
  • 警报:自动监控警报

🚀 部署选项

服务 用例 复杂性 成本
AWS ECS 生产应用程序 中等 $$
AWS应用程序运行程序 简单部署 低 $
AWS Lambda 无服务器 低 $

🛡️ 安全功能

  • 🔒 SSL/HTTPS:端到端加密
  • 🌐 跨域资源共享:正确的跨产地处理
  • 🐳 集装箱安全:非root用户
  • 🔐 环境变量:安全配置管理
  • 🏠 垂直路径计算机:隔离网络环境
  • ↩️ HTTP重定向:自动HTTPS重定向

📚 文档


🤝 贡献

我们欢迎捐款!以下是如何开始:

  1. 🍴 分叉存储库
  2. 🌿 创建要素分支(git checkout -b feature/amazing-feature)
  3. 💻 进行更改
  4. 🧪 本地测试 docker compose up
  5. 📝 提交您的更改(git commit -m 'Add amazing feature')
  6. 🚀 推到分支(git push origin feature/amazing-feature)
  7. 🎯 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。


🙏 致谢

  • 内置于❤️ 使用AWS服务
  • 由现代网络技术提供支持
  • 受云原生最佳实践的启发

⭐ 如果你觉得这个repo有用,请将其标记为星号!

由以下材料制成❤️ 靠近 AKRAM SOUIDA

🔝 返回页首