AWS_Architecture_Diagrams

作者: RJ.Wang
邮箱: wangrenjun@gmail.com
创建时间: 2025-12-25
更新时间: 2025-12-25


📋 目录

  1. Mermaid 流程图
  2. ASCII 艺术图
  3. 层次结构图
  4. 组件关系表
  5. 网络拓扑图

🎨 Mermaid 流程图

标准三层架构

graph TB
    %% 用户和外部访问
    User[👤 用户] --> Internet[🌐 Internet]
    Internet --> CloudFront[☁️ CloudFront CDN]

    %% VPC 边界
    subgraph VPC["🏢 VPC (10.0.0.0/16)"]
        %% 公有子网
        subgraph PublicSubnet["🌍 Public Subnet (10.0.1.0/24)"]
            ALB[⚖️ Application Load Balancer]
            NAT[🔄 NAT Gateway]
        end

        %% 私有子网 - 应用层
        subgraph PrivateSubnet1["🔒 Private Subnet - App (10.0.2.0/24)"]
            EC2_1[💻 EC2 Instance 1<br/>Web Server]
            EC2_2[💻 EC2 Instance 2<br/>Web Server]
        end

        %% 私有子网 - 数据层
        subgraph PrivateSubnet2["🔒 Private Subnet - DB (10.0.3.0/24)"]
            RDS_Primary[(🗄️ RDS Primary<br/>MySQL)]
            RDS_Standby[(🗄️ RDS Read Replica)]
        end
    end

    %% S3 存储(VPC 外部)
    S3[📦 S3 Bucket<br/>Static Assets]

    %% 连接关系
    CloudFront --> ALB
    CloudFront --> S3
    ALB --> EC2_1
    ALB --> EC2_2
    EC2_1 --> RDS_Primary
    EC2_2 --> RDS_Primary
    EC2_1 --> S3
    EC2_2 --> S3
    RDS_Primary --> RDS_Standby

    %% 样式定义
    classDef aws fill:#ff9900,stroke:#232f3e,stroke-width:2px,color:#fff
    classDef compute fill:#ec7211,stroke:#232f3e,stroke-width:2px,color:#fff
    classDef database fill:#3498db,stroke:#232f3e,stroke-width:2px,color:#fff
    classDef storage fill:#569a31,stroke:#232f3e,stroke-width:2px,color:#fff
    classDef network fill:#9d5025,stroke:#232f3e,stroke-width:2px,color:#fff
    classDef user fill:#6c757d,stroke:#232f3e,stroke-width:2px,color:#fff

    %% 应用样式
    class CloudFront,ALB,NAT network
    class EC2_1,EC2_2 compute
    class RDS_Primary,RDS_Standby database
    class S3 storage
    class User user

微服务架构版本

graph TB
    %% 用户层
    User[👤 用户] --> API_Gateway[🚪 API Gateway]

    %% VPC 容器
    subgraph VPC["🏢 VPC"]
        %% 负载均衡层
        subgraph LB_Layer["⚖️ 负载均衡层"]
            ALB_Web[ALB - Web]
            ALB_API[ALB - API]
        end

        %% 微服务层
        subgraph Microservices["🔧 微服务层"]
            Auth_Service[🔐 认证服务<br/>ECS/Fargate]
            User_Service[👥 用户服务<br/>ECS/Fargate]
            Order_Service[📦 订单服务<br/>ECS/Fargate]
            Payment_Service[💳 支付服务<br/>ECS/Fargate]
        end

        %% 数据层
        subgraph Data_Layer["🗄️ 数据层"]
            RDS_Users[(👥 用户数据库)]
            RDS_Orders[(📦 订单数据库)]
            ElastiCache[⚡ Redis 缓存]
        end
    end

    %% 外部服务
    S3[📦 S3 存储]
    SQS[📨 SQS 队列]

    %% 连接关系
    API_Gateway --> ALB_Web
    API_Gateway --> ALB_API
    ALB_Web --> Auth_Service
    ALB_API --> User_Service
    ALB_API --> Order_Service
    ALB_API --> Payment_Service

    User_Service --> RDS_Users
    Order_Service --> RDS_Orders
    Auth_Service --> ElastiCache
    Order_Service --> SQS
    Payment_Service --> S3

🎭 ASCII 艺术图

经典三层架构

                    🌐 Internet
                         │
                ┌────────▼────────┐
                │  ☁️ CloudFront   │
                │      CDN        │
                └────────┬────────┘
                         │
        ┌────────────────┼────────────────┐
        │                │                │
        ▼                ▼                │
   ┌─────────┐      ┌─────────┐          │
   │ 📦 S3   │      │ ⚖️ ALB   │          │
   │ Bucket  │      │         │          │
   └─────────┘      └────┬────┘          │
                         │               │
           ┌─────────────┼─────────────┐ │
           │    🔒 Private Subnet     │ │
           │  ┌─────────┐ ┌─────────┐ │ │
           │  │💻 EC2-1 │ │💻 EC2-2 │ │ │
           │  └────┬────┘ └────┬────┘ │ │
           └───────┼───────────┼──────┘ │
                   │           │        │
           ┌───────▼───────────▼──────┐ │
           │   🗄️ Database Tier      │ │
           │ ┌─────────┐ ┌─────────┐ │ │
           │ │RDS Main │ │RDS Read │ │ │
           │ └─────────┘ └─────────┘ │ │
           └─────────────────────────┘ │
                                       │
└──────────────────────────────────────┘

网络流量图

用户请求流程:
👤 → 🌐 → ☁️ → ⚖️ → 💻 → 🗄️
│    │    │    │    │    │
│    │    │    │    │    └─ 数据查询
│    │    │    │    └────── 业务逻辑
│    │    │    └─────────── 负载分发
│    │    └──────────────── 内容缓存
│    └───────────────────── 网络传输
└────────────────────────── 用户交互

静态资源流程:
👤 → 🌐 → ☁️ → 📦
│    │    │    │
│    │    │    └─ S3 存储
│    │    └────── CDN 缓存
│    └─────────── 网络传输
└──────────────── 用户请求

🌳 层次结构图

服务层次

AWS 三层架构
├── 🌐 边缘层 (Edge Layer)
│   ├── ☁️ CloudFront
│   │   ├── 全球 CDN 节点
│   │   ├── SSL/TLS 终止
│   │   └── 缓存策略
│   └── 📦 S3 Bucket
│       ├── 静态网站托管
│       ├── 图片/CSS/JS 资源
│       └── 版本控制
│
├── 🏢 VPC 网络层 (Network Layer)
│   ├── 🌍 公有子网 (Public Subnet)
│   │   ├── ⚖️ Application Load Balancer
│   │   │   ├── 健康检查
│   │   │   ├── SSL 证书
│   │   │   └── 路由规则
│   │   └── 🔄 NAT Gateway
│   │       ├── 出站网络访问
│   │       └── 弹性 IP
│   │
│   ├── 🔒 私有子网 - 应用层 (App Tier)
│   │   ├── 💻 EC2 Instance 1
│   │   │   ├── Web 服务器 (Nginx/Apache)
│   │   │   ├── 应用服务器 (Node.js/Python)
│   │   │   └── 监控代理
│   │   └── 💻 EC2 Instance 2
│   │       ├── 负载均衡配置
│   │       ├── 自动扩缩容
│   │       └── 故障转移
│   │
│   └── 🔒 私有子网 - 数据层 (Data Tier)
│       ├── 🗄️ RDS Primary
│       │   ├── MySQL 8.0
│       │   ├── 自动备份
│       │   └── 参数组配置
│       └── 🗄️ RDS Read Replica
│           ├── 读取负载分担
│           ├── 跨 AZ 部署
│           └── 延迟监控
│
└── 🔐 安全与监控层 (Security & Monitoring)
    ├── 🛡️ Security Groups
    │   ├── 入站规则
    │   ├── 出站规则
    │   └── 端口控制
    ├── 🔍 CloudWatch
    │   ├── 性能监控
    │   ├── 日志聚合
    │   └── 告警设置
    └── 📊 CloudTrail
        ├── API 调用记录
        ├── 合规审计
        └── 安全分析

📊 组件关系表

核心组件配置

组件类型 服务名称 实例规格 网络位置 主要功能 依赖关系
CDN CloudFront Global Internet 内容分发 S3, ALB
存储 S3 Bucket Standard Global 静态资源 CloudFront
负载均衡 ALB Public Subnet 流量分发 EC2 Instances
网关 NAT Gateway Public Subnet 出站访问 Private Subnet
计算 EC2 Instance 1 t3.medium Private Subnet Web 服务 RDS, S3
计算 EC2 Instance 2 t3.medium Private Subnet Web 服务 RDS, S3
数据库 RDS Primary db.t3.micro Private Subnet 主数据库 Read Replica
数据库 RDS Replica db.t3.micro Private Subnet 只读副本 Primary DB

网络配置

网络层 CIDR 块 可用区 路由表 安全组
VPC 10.0.0.0/16 Multi-AZ Main VPC-SG
Public Subnet 10.0.1.0/24 us-east-1a Public-RT ALB-SG
Private Subnet 1 10.0.2.0/24 us-east-1a Private-RT EC2-SG
Private Subnet 2 10.0.3.0/24 us-east-1b Private-RT RDS-SG

安全组规则

安全组 类型 协议 端口 描述
ALB-SG Inbound HTTP 80 0.0.0.0/0 Web 流量
ALB-SG Inbound HTTPS 443 0.0.0.0/0 安全 Web 流量
EC2-SG Inbound HTTP 80 ALB-SG 来自 ALB
EC2-SG Outbound HTTPS 443 0.0.0.0/0 外部 API
RDS-SG Inbound MySQL 3306 EC2-SG 数据库访问

🌐 网络拓扑图

数据流向图

sequenceDiagram
    participant U as 👤 用户
    participant CF as ☁️ CloudFront
    participant S3 as 📦 S3
    participant ALB as ⚖️ ALB
    participant EC2 as 💻 EC2
    participant RDS as 🗄️ RDS

    Note over U,RDS: 静态资源请求流程
    U->>CF: 请求静态资源
    CF->>S3: 缓存未命中,获取资源
    S3-->>CF: 返回资源
    CF-->>U: 返回缓存资源

    Note over U,RDS: 动态内容请求流程
    U->>CF: 请求动态内容
    CF->>ALB: 转发到负载均衡器
    ALB->>EC2: 分发到健康实例
    EC2->>RDS: 查询数据库
    RDS-->>EC2: 返回数据
    EC2-->>ALB: 返回处理结果
    ALB-->>CF: 返回响应
    CF-->>U: 返回最终结果

故障转移流程

graph LR
    subgraph "正常流程"
        A[用户请求] --> B[ALB 健康检查]
        B --> C[EC2-1 正常]
        C --> D[处理请求]
    end

    subgraph "故障转移"
        E[用户请求] --> F[ALB 检测故障]
        F --> G[EC2-1 不健康]
        G --> H[路由到 EC2-2]
        H --> I[处理请求]
    end

    subgraph "数据库故障转移"
        J[应用请求] --> K[RDS 主库故障]
        K --> L[自动故障转移]
        L --> M[提升只读副本]
        M --> N[恢复服务]
    end

🔧 部署和维护

自动化部署流程

graph TD
    A[代码提交] --> B[CI/CD 触发]
    B --> C[构建镜像]
    C --> D[推送到 ECR]
    D --> E[更新 ECS 服务]
    E --> F[滚动更新]
    F --> G[健康检查]
    G --> H{部署成功?}
    H -->|是| I[完成部署]
    H -->|否| J[回滚版本]
    J --> K[通知运维]

监控和告警

graph TB
    subgraph "监控指标"
        A[CPU 使用率]
        B[内存使用率]
        C[网络流量]
        D[数据库连接数]
        E[响应时间]
    end

    subgraph "告警规则"
        F[CPU > 80%]
        G[内存 > 85%]
        H[响应时间 > 2s]
        I[错误率 > 5%]
    end

    subgraph "通知渠道"
        J[邮件通知]
        K[短信告警]
        L[Slack 消息]
    end

    A --> F
    B --> G
    E --> H
    F --> J
    G --> K
    H --> L

📝 总结

这个 AWS 三层架构提供了:

  • 高可用性: 多 AZ 部署,自动故障转移
  • 可扩展性: Auto Scaling,负载均衡
  • 安全性: VPC 隔离,安全组控制
  • 性能优化: CDN 缓存,数据库读写分离
  • 成本优化: 按需扩缩容,合理的实例规格

适用于中小型 Web 应用,支持高并发访问和数据安全要求。


文档版本: v1.0
最后更新: 2025-12-25
维护者: RJ.Wang