iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0

我打算在AWS上跑的服務有兩種

  1. 自動交易程式(Trader)

    • 多個 Python 程式,策略不同、依賴庫可能不同。
    • 每種策略程式各自打包成 Docker image。
    • 執行時將 log 統一格式寫入共享目錄 /mnt/trade_logs
  2. Dashboard Web

    • 單一 Python Web 程式(例如 Flask/FastAPI)。
    • /mnt/trade_logs 讀取 log,提供網頁查詢與瀏覽。
    • 預設只啟動一個實例。

我設想的運作流程

  1. Trader container 執行交易策略 → 輸出 log 到 /mnt/trade_logs
  2. 所有 Trader 共用相同目錄,因此 log 集中存放。
  3. WebServer container 掛載同一目錄,提供網頁查詢/檢視 log。
+---------------- ECS Cluster ------------------+
|                                               |
|   EC2 VM #1 (Container Instance)              |
|   - ECS Agent                                 |
|   - Docker Daemon                             |
|   - Volume: /mnt/trade_logs ------------------+--- Shared logs
|      |                                        |
|      +--> Trader-BTC-StrategyA container      |
|      +--> Trader-ETH-StrategyB container      |
|      +--> WebServer container (1個)           |
|                                               |
+-----------------------------------------------+

打算採用的架構:AWS ECS (EC2 模式) + EC2 Volume

  1. EC2 Cluster

    • 建立一組 EC2 instance,作為 ECS Cluster 的「Container Instances」。
    • 在這些 EC2 上建立一個共享 volume(例如 /mnt/trade_logs)。
  2. ECS Task Definitions

    • Trader Task

      • 每個策略一個獨立的 Docker image。
      • 透過 Task Definition 定義容器執行方式。
      • Task 掛載 host volume /mnt/trade_logs,將 log 寫入其中。
    • WebServer Task

      • 單一 Docker image,定義成一個 Task Definition。
      • desiredCount = 1。
      • 同樣掛載 /mnt/trade_logs,讀取 log 提供瀏覽。
  3. 容器調度

    • ECS Agent 負責在 Cluster 的 EC2 上調度與啟動 container。
    • Trader 可以彈性啟動多個 Task(多策略並行)。
    • WebServer 只需啟動一個 Task。

上一篇
Day 1 - 創建AWS帳號
下一篇
Day 3 - 創建AWS EC2 Instance
系列文
從零開始:AWS 部署 Python 自動交易程式與交易監測 Dashboard 實戰筆記3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言