# 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. 当前真实拓扑

```mermaid
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. 权威文档入口

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

- [当前架构文档](./hifast-current-architecture-zh.md)
- [东京资源清单](../deploy/aws/ap-northeast-1/configs/resource-inventory.current.md)
- [东京迁移 Runbook](./hifast-aws-jp-migration-runbook-zh.md)
- [东京切换清单](./hifast-aws-jp-cutover-checklist-zh.md)

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

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

