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) は、永久無料枠として以下を提供しています:
| リソース | スペック |
|---|---|
| CPU | ARM (Ampere A1) 最大 4 OCPU |
| メモリ | 最大 24 GB |
| ストレージ | 200 GB (Boot Volume) |
| 帯域 | 月 10 TB |
| OS | Ubuntu, 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)
- https://autotrade.uselect.jp/healthz を外部から監視
- サーバーごと落ちた場合のバックアップ
コスト比較
| サービス | 月額 | スペック |
|---|---|---|
| Oracle Cloud Always Free | ¥0 | ARM 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 実績ページ で公開しています。