Oracle Cloud Always Free で FX Bot を 24 時間無料運用する方法


はじめに

FX 自動売買 Bot を 24 時間動かすには、常時稼働のサーバーが必要です。VPS を借りると月額 1,000〜3,000 円程度かかりますが、Oracle Cloud の Always Free を使えば月額 0 円で運用できます。

この記事では、私が実際に Bot を運用している構成と設定手順を紹介します。

Oracle Cloud Always Free の概要

Oracle Cloud Infrastructure (OCI) は、永久無料枠として以下を提供しています:

リソーススペック
CPUARM (Ampere A1) 最大 4 OCPU
メモリ最大 24 GB
ストレージ200 GB (Boot Volume)
帯域月 10 TB
OSUbuntu, Oracle Linux 等

今回は 1 OCPU / 6 GB を使用。Bot には十分すぎるスペックです。

構成図

┌─ Oracle Cloud (ARM A1, 1 OCPU / 6GB) ─────────────┐
│                                                      │
│  Docker Compose                                      │
│  ├─ autotrade     (Bot 本体)         512MB          │
│  ├─ watchdog      (死活監視)          64MB          │
│  ├─ dashboard     (Streamlit)        384MB          │
│  ├─ nginx         (リバプロ+HTTPS)    64MB          │
│  └─ certbot       (SSL証明書更新)    (起動時のみ)    │
│                                                      │
│  合計メモリ使用量: 約 1.0 GB / 6 GB                  │
└──────────────────────────────────────────────────────┘

セットアップ手順

1. OCI アカウント作成

Oracle Cloud にアクセスし、Always Free アカウントを作成。クレジットカードの登録は必要ですが、Always Free 枠のみ使う限り課金されません。

2. ARM インスタンス作成

重要: ARM インスタンスは人気が高く、作成できないことがあります。その場合:

  • 時間帯を変えて再試行 (日本の深夜が通りやすい)
  • リージョンを変更 (大阪 vs 東京)

設定:

  • Shape: VM.Standard.A1.Flex
  • OCPU: 1, Memory: 6 GB
  • OS: Ubuntu 22.04 (aarch64)
  • Boot Volume: 50 GB

3. セキュリティリスト設定

ポート開放:

  • 80 (HTTP — Let’s Encrypt 用)
  • 443 (HTTPS — ダッシュボード公開用)

SSH (22) はデフォルトで開放済み。

4. サーバー初期設定

# Ubuntu ファイアウォール
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save

# Docker インストール
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

# Docker Compose (v2 は Docker に同梱)
docker compose version

5. Bot デプロイ

git clone https://github.com/your-repo/autotrade.git
cd autotrade

# 環境変数を設定
cp .env.example .env
vim .env  # API キー等を設定

# 起動
docker compose up -d

リソース制限の設定

Docker Compose で各コンテナのリソースを制限し、Bot 暴走時もサーバーが死なないようにします:

deploy:
  resources:
    limits:
      cpus: "0.5"
      memory: 512M
    reservations:
      cpus: "0.25"
      memory: 128M

監視体制 (3層)

Bot が止まると損失が出るので、多層の監視を組んでいます:

Layer 1: Bot 内部ヘルスチェック

  • 30 秒ごとに heartbeat.json を更新
  • Docker の healthcheck で監視

Layer 2: Watchdog コンテナ

  • Bot コンテナとは別のプロセスで heartbeat を監視
  • Bot が 3 分以上応答なし → LINE 通知

Layer 3: 外部ヘルスチェック (UptimeRobot)

コスト比較

サービス月額スペック
Oracle Cloud Always Free¥0ARM 4 OCPU / 24 GB
AWS Lightsail¥500〜1 vCPU / 512 MB
ConoHa VPS¥880〜1 vCPU / 512 MB
Xserver VPS¥830〜2 vCPU / 512 MB

Oracle Cloud は無料なのにスペックが圧倒的です。

注意点

Always Free のリスク

  • インスタンス回収: Idle Instance と判定されると回収される可能性がある。Bot が常時動いていれば問題なし (CPU 使用率 > 0)
  • リージョン制限: 無料枠はホームリージョンのみ
  • サポート: 無料なのでサポートは期待できない

ARM (aarch64) の注意

  • Docker イメージが ARM 対応か確認が必要
  • Python + pip は問題なし
  • 一部の Node.js ネイティブモジュールは非対応の場合あり

まとめ

Oracle Cloud Always Free は、FX Bot のような軽量な常時稼働ワークロードに最適です。月額 0 円で十分なスペック、Docker が動く、グローバル IP 付き。個人の Bot 運用にこれ以上の環境はないと思います。

実際の Bot 運用実績は AutoTrade 実績ページ で公開しています。