コンテンツにスキップ

AEGIS インフラストラクチャ構成図

概要

AEGIS本番環境は Synology NAS (DS1823+) + Mac mini + GitHub + Cloudflare で構成される。 本番サービス(PT, LDAS, Dashboard, Monitor)はSynologyのDockerコンテナで稼働し、 開発・Slack Bot はMac miniに残る。


全体構成図(概要)

graph LR
    subgraph Mac["Mac mini — 開発"]
        DEV["開発環境<br/>Claude Code / Codex / Gemini"]
        BT["バックテスト"]
    end

    subgraph GH["GitHub"]
        REPO["dev-Project"]
        GA["GitHub Actions"]
    end

    subgraph Synology["Synology DS1823+ — 本番"]
        PT["aegis-pt<br/>Paper Trading"]
        TK["aegis-token-keeper-live<br/>OAuth2更新"]
        LDAS["aegis-ldas<br/>データ収集"]
        DASH["aegis-dashboard<br/>Web UI"]
        MON["aegis-monitor<br/>監視+アラート"]
        SLBOT["aegis-slack-bot<br/>Claude CLI + Bolt"]
    end

    subgraph Cloud["外部サービス"]
        SAXO["Saxo Bank API"]
        POLY["Polygon.io"]
        UW["Unusual Whales"]
        FH["Finnhub"]
        FRED["FRED (St. Louis Fed)"]
        CF["Cloudflare"]
        SLACK["Slack / Twilio"]
    end

    subgraph TS["Tailscale VPN"]
        TSMAC["Mac mini"]
        TSSYN["Synology"]
    end

    DEV -->|git push| REPO
    GA -->|SSH via Tailscale| Synology
    PT & TK --> SAXO
    LDAS --> POLY & UW & FH & FRED
    MON & SLBOT --> SLACK
    CF -->|Tunnel| DASH
    TSMAC <-->|"メッシュVPN"| TSSYN
    Mac -.-> TSMAC
    Synology -.-> TSSYN

コンテナ詳細

graph LR
    subgraph PT_Group["Paper Trading"]
        PT["aegis-pt<br/>Python 3.13-slim"]
        TK["aegis-token-keeper-live<br/>Python 3.13-slim"]
    end

    subgraph Data_Group["Data Collection"]
        LDAS["aegis-ldas<br/>Python 3.13-slim + cron"]
    end

    subgraph Web_Group["Web Access"]
        DASH["aegis-dashboard<br/>:8080"]
        CFTD["aegis-cloudflared"]
    end

    subgraph Ops_Group["Operations"]
        MON["aegis-monitor<br/>60s interval"]
    end

    TOKENS[("🔑 tokens/<br/>saxobank_tokens.json")]
    LDA[("📁 live_data_archive/<br/>7.1GB")]
    STATE[("📄 pt_state/<br/>scenarios_v3.json")]

    PT <-->|"RW"| TOKENS
    TK <-->|"RW"| TOKENS
    PT -->|"RO"| LDA
    LDAS <-->|"RW"| LDA
    PT <-->|"RW"| STATE

    MON -.->|"Docker socket<br/>ヘルスチェック"| PT
    MON -.->|"Docker socket"| TK
    MON -.->|"Docker socket"| LDAS
    MON -.->|"Docker socket"| DASH

    CFTD -->|"proxy :8080"| DASH

    classDef vol fill:#27ae60,stroke:#1e8449,color:#fff
    class TOKENS,LDA,STATE vol

データフロー

flowchart LR
    subgraph Sources["外部データソース"]
        POLY["Polygon.io<br/>Options Advanced"]
        UW["Unusual Whales"]
        YF["Yahoo Finance<br/>(VIX fallback)"]
        FRED["FRED<br/>HY OAS (Bear Gate)"]
    end

    subgraph LDAS_Process["aegis-ldas"]
        EOD["EOD収集<br/>17:15 ET"]
        INTRA["Intraday収集<br/>09:30-16:00 ET"]
    end

    subgraph Archive["live_data_archive/"]
        OPT["options/{SYMBOL}/{Y}/{M}/{D}.parquet"]
        STK["stocks/{SYMBOL}/{Y}/{M}/{D}_poly.parquet"]
        VIX["vix/{Y}/{M}/{D}.parquet"]
        IVR["iv_rank/{Y}/{M}/{D}.parquet"]
        GEX["gex_summary/{Y}/{M}/{D}.parquet"]
        UWF["uw_flow/{Y}/{M}/{D}.parquet"]
    end

    subgraph Trading["aegis-pt"]
        SCAN["銘柄スキャン<br/>500+シンボル"]
        ENTRY["エントリー判定<br/>CR≥25%, DTE 10-30"]
        EXEC["Saxo API<br/>指値注文"]
    end

    POLY --> EOD & INTRA
    UW --> EOD
    YF --> EOD
    FRED --> EOD

    EOD --> OPT & STK & VIX & IVR & GEX & UWF
    INTRA --> OPT

    OPT & STK & VIX & IVR --> SCAN
    SCAN --> ENTRY --> EXEC

CI/CD パイプライン

sequenceDiagram
    participant Dev as 🛠️ Mac mini (開発)
    participant GH as 🐙 GitHub
    participant GA as ⚙️ GitHub Actions
    participant SYN as 🖥️ Synology

    Dev->>GH: git push (main)
    GH->>GA: Trigger workflow
    GA->>SYN: SSH via Tailscale
    SYN->>SYN: alpine/git pull latest
    SYN->>SYN: docker compose rebuild
    SYN->>SYN: Health check validation
    GA-->>GH: Deploy status ✅/❌

監視・アラートフロー

flowchart TB
    MON["aegis-monitor<br/>(60秒間隔)"]

    MON -->|"Docker socket"| C1["コンテナ死活監視<br/>pt / token-keeper / ldas / dashboard"]
    MON -->|"ファイルmtime"| C2["Saxoトークン有効期限<br/>30分前で警告"]
    MON -->|"parquet確認"| C3["LDASデータ鮮度<br/>最終ファイルタイムスタンプ"]
    MON -->|"/host/proc"| C4["ホストリソース<br/>CPU/Memory 90%超 3分持続"]

    C1 & C2 & C3 & C4 -->|"異常検知"| ALERT{"アラート判定"}

    ALERT -->|"全アラート<br/>市場中30分 / 時間外1時間 throttle"| SLACK["📱 Slack通知<br/>🔒aegis_管理"]
    ALERT -->|"重大障害のみ<br/>市場時間 9:30-16:00 ET<br/>1時間 throttle"| SMS["📲 Twilio SMS<br/>+81-90-8350-9740"]

ホスト役割分担

役割 Synology DS1823+ Mac mini
Paper Trading (本番) ✅ aegis-pt LaunchAgent (移行済み)
Token Keeper ✅ aegis-token-keeper-live LaunchAgent (移行済み)
LDAS データ収集 ✅ aegis-ldas LaunchAgent (移行済み)
Dashboard (本番) ✅ aegis-dashboard + Cloudflare Tunnel dev版 (localhost)
インフラ監視 ✅ aegis-monitor
Slack Bot ✅ aegis-slack-bot
開発環境 ✅ VSCode + AI並行作業
バックテスト ✅ venv + QuantData CSVs
Git操作 CI/CDで自動pull ✅ 開発・push元

作成日: 2026-03-14 | 担当: Claude Code