Files
hi-server/ops/hifast-current-architecture-zh.md
2026-05-26 09:14:59 -07:00

6.3 KiB

Hifast 当前架构文档(东京主站版)

最后更新:2026-05-21

这份文档只描述当前真实生效的架构,不描述理想目标,不混入已经下线或待迁移的香港旧链路。

如果后续东京 ALB / WAF / 正式域名 上线,应继续更新这份文档,而不是回头参考旧香港架构文档。

1. 当前结论

当前已经实际跑起来的是:

用户 / 运维 -> 东京 EC2 -> ppanel-server + Redis + observability -> 东京 RDS MySQL

当前还没有实际生效的组件:

  • ALB
  • WAF
  • 正式域名切流
  • 104.238.220.230 重挂东京 MySQL / Redis 从库

也就是说,东京环境目前是:

  • 一台业务 EC2 已可用
  • 一台东京 RDS 已可用
  • 本机 Redis 已可用
  • ppanel-server 已成功启动并连通 MySQL / Redis
  • 灾备链路参数已准备好,但 104 还没最终挂上去

2. 当前真实拓扑

flowchart TB
    USER["用户 / 运维"] --> EIP["东京 EC2 公网入口\n3.114.29.208"]
    EIP --> NGINX["Nginx\nEC2 本机"]
    NGINX --> APP["ppanel-server\nhost network\n127.0.0.1:8080"]
    APP --> REDIS["Redis Docker\n127.0.0.1:6379"]
    APP --> RDS["Tokyo RDS MySQL\nppanel-mysql-jp"]
    APP --> OBS["Grafana / Loki / Tempo / Prometheus"]

    RDS -. 预留复制 .-> DRMYSQL["104.238.220.230\nMySQL DR\n未最终接入"]
    REDIS -. 预留复制 .-> DRREDIS["104.238.220.230\nRedis DR\n未最终接入"]

3. 云资源清单

3.1 Region

  • AWS account: hifastvpn (200810848252)
  • Region: ap-northeast-1

3.2 网络

  • VPC: ppanel-jp-prod
  • VPC ID: vpc-0846b23b4a7d64eac
  • CIDR: 10.20.0.0/16

公有子网:

  • ppanel-jp-public-a / subnet-091232bdb53e71490 / 10.20.0.0/24
  • ppanel-jp-public-c / subnet-01ba0975c525ce8cf / 10.20.1.0/24

私有子网:

  • ppanel-jp-private-a / subnet-0bd13111c02f0edbe / 10.20.10.0/24
  • ppanel-jp-private-c / subnet-0d86c5c756dbc84b2 / 10.20.11.0/24

3.3 安全组

  • ppanel-jp-sg-alb
    • 80/tcp <- 0.0.0.0/0
    • 443/tcp <- 0.0.0.0/0
  • ppanel-jp-sg-ec2
    • 80/tcp <- sg-0b3a23c31041a5a5a
    • 22/tcp <- 64.118.144.142/32
    • 6379/tcp <- 104.238.220.230/32
  • ppanel-jp-sg-rds
    • 3306/tcp <- sg-01f2a5a81e7505c91
    • 3306/tcp <- 104.238.220.230/32

4. 计算与数据库

4.1 业务 EC2

  • Name: ppanel-app-jp-01
  • Instance ID: i-07839130074cd7ed9
  • Type: c7i.xlarge
  • AZ: ap-northeast-1c
  • Private IP: 10.20.1.168
  • Public IP / Elastic IP: 3.114.29.208
  • Public DNS: ec2-3-114-29-208.ap-northeast-1.compute.amazonaws.com
  • Root volume: gp3 100GiB
  • Status: running

说明:

  • 当前公网入口是这台 EC2 自己
  • 这里绑定的是 EIP,不是依赖实例自动分配的临时公网 IP
  • 绑定 EIP 的目的,是保证以后 Redis 主从、白名单、DNS、文档里的公网地址不因为实例变更而漂移

4.2 Tokyo RDS

  • Identifier: ppanel-mysql-jp
  • Engine: MySQL Community 8.4.8
  • Class: db.r7g.xlarge
  • Storage: gp3 100GiB
  • Master user: admin
  • Endpoint: ppanel-mysql-jp.cpo0keikgh80.ap-northeast-1.rds.amazonaws.com
  • Public access: enabled
  • Credential management: self-managed
  • Current status: available

当前实际连接值:

  • Host: ppanel-mysql-jp.cpo0keikgh80.ap-northeast-1.rds.amazonaws.com
  • Port: 3306
  • User: admin

4.3 Redis

  • 部署位置:东京 EC2 本机
  • 部署方式:Docker
  • 容器名:ppanel-redis
  • 当前角色:master
  • 当前监听:127.0.0.1:6379(应用本机访问)
  • 当前对灾备开放:3.114.29.208:6379

4.4 应用与可观测

业务容器:

  • ppanel-server

可观测容器:

  • ppanel-grafana
  • ppanel-loki
  • ppanel-promtail
  • ppanel-prometheus
  • ppanel-tempo
  • ppanel-cadvisor
  • ppanel-node-exporter
  • ppanel-nginx-exporter

5. 当前部署方式

部署目录:

  • /opt/ppanel

关键文件:

  • /opt/ppanel/docker-compose.cloud.yml
  • /opt/ppanel/configs/ppanel.yaml
  • /opt/ppanel/.env

业务启动方式:

  • ppanel-server 使用 docker compose
  • network_mode: host

当前配置指向:

  • MySQL -> 东京 RDS
  • Redis -> 本机 Docker Redis
  • Trace -> 127.0.0.1:4317

6. 当前已验证状态

截至 2026-05-21 已确认:

  • docker exec ppanel-redis redis-cli -a 'hifast67yj' PING 返回 PONG
  • MYSQL_PWD=... mysql -h ppanel-mysql-jp.cpo0keikgh80.ap-northeast-1.rds.amazonaws.com -u admin -e "select 1" 返回正常
  • docker compose -f /opt/ppanel/docker-compose.cloud.yml up -d ppanel-server 已成功
  • docker logs ppanel-server 无 MySQL / Redis 连接报错
  • curl http://127.0.0.1:8080/v1/common/heartbeat 返回成功

可以认为当前东京单站已经具备:

  • 服务启动能力
  • 数据库连接能力
  • Redis 连接能力
  • 基础可观测能力

7. 当前未落地项

下面这些还属于“目标方案”,不是“当前实际架构”:

  • ALB
  • WAF
  • ACM 证书完成 DNS 验证
  • 正式域名切换到东京
  • 104.238.220.230 完整接成东京 DR

所以现在请不要把当前架构理解成:

DNS -> ALB -> WAF -> EC2 -> RDS

当前真实架构更准确地说是:

EIP -> EC2(Nginx + ppanel-server + Redis + observability) -> RDS

8. 灾备准备状态

8.1 MySQL DR

已准备好:

  • DR host: 104.238.220.230
  • 复制账号:repl@104.238.220.230
  • binlog retention hours: 24
  • current binlog file: mysql-bin-changelog.000189
  • current binlog position: 185053

当前状态:

  • 东京侧已准备完成
  • 104 侧还没有最终执行挂从

8.2 Redis DR

已准备好:

  • 东京 Redis 主地址:3.114.29.208:6379
  • 东京 Redis 当前角色:role:master
  • 东京 Redis 当前状态:connected_slaves:0

当前状态:

  • 东京侧已可作为主库提供同步
  • 104 侧还没有最终执行 REPLICAOF

9. 权威文档入口

与当前东京架构直接相关的文档,以这些为准:

下面这些旧文档可以继续保留,但不要作为“当前实际架构”依据:

  • 香港旧主站相关文档
  • 仍以 ap-east-1 为主语的历史架构说明