前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。
本記事では「暗号通貨のパンプ&ダンプスキームの検出」に関する論文をベースにbot開発の過程をまとめていきます。
Detecting Crypto Pump-and-Dump Schemes: A Thresholding-Based Approach to Handling Market Noisehttps://t.co/ctCJEV1MBs
— よだか(夜鷹/yodaka) (@yodakablog) March 22, 2025
🚀 本番環境の最適化 (Auto Scalingとリソース制御の導入)
次のステップとして、Kubernetesを活用した本番環境の最適化に取り組みます。
以下の3つのタスクを順に進めます:
- リソース制限の導入
- Horizontal Pod Autoscaler (HPA) の導入
- Helmを活用したデプロイの効率化
1. リソース制限の導入
🔍 目的
- 各Podが無制限にリソースを使用しないように制御
- CPUとメモリの使用上限を設定し、サーバー全体の安定性を確保
修正後の deployment.yaml
(リソース制限追加)
apiVersion: apps/v1 kind: Deployment metadata: name: crypto-bot spec: replicas: 3 selector: matchLabels: app: crypto-bot template: metadata: labels: app: crypto-bot spec: containers: - name: data-collector image: crypto_bot:latest command: ["python", "data_collector.py"] resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "512Mi" - name: pnd-detector image: crypto_bot:latest command: ["python", "pnd_detector.py"] resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "512Mi" - name: trade-executor image: crypto_bot:latest command: ["python", "trade_executor.py"] resources: requests: cpu: "200m" memory: "256Mi" limits: cpu: "600m" memory: "1Gi" - name: monitoring-system image: crypto_bot:latest command: ["python", "monitoring_system.py"] ports: - containerPort: 5000 resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "512Mi"
2. Horizontal Pod Autoscaler (HPA) の導入
🔍 目的
- 負荷の増減に応じて、自動でPod数をスケールアウト/スケールイン
- CPU使用率が70%以上に達した場合に、Pod数を増加させる
HPAの定義ファイル (hpa.yaml
)
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: crypto-bot-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: crypto-bot minReplicas: 3 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70
HPAの適用コマンド
kubectl apply -f hpa.yaml
HPAの確認コマンド
kubectl get hpa
3. Helmによるデプロイの効率化
🔍 目的
- Kubernetesマニフェストをより柔軟に管理
- バージョン管理と環境ごとの変数設定を一元化
Helm Chart構成
/helm ├── Chart.yaml ├── values.yaml ├── templates │ ├── deployment.yaml │ ├── service.yaml │ └── hpa.yaml
Chart.yaml
apiVersion: v2 name: crypto-bot description: A Helm chart for Crypto Trading Bot version: 0.1.0 appVersion: "1.0"
values.yaml
replicaCount: 3 image: repository: your_dockerhub_username/crypto_bot tag: latest pullPolicy: IfNotPresent resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "512Mi" hpa: enabled: true minReplicas: 3 maxReplicas: 10 cpuTarget: 70
Helmデプロイ手順
- Helmチャートのインストール
helm install crypto-bot ./helm
- アップデート (パラメータ変更時)
helm upgrade crypto-bot ./helm
- ステータス確認
helm status crypto-bot
4. 完了後の確認
✅ Pod数の確認
kubectl get pods
✅ リソース使用状況の確認
kubectl top pods
✅ HPAのスケール状況確認
kubectl get hpa
5. 次のステップ
次は、セキュリティ強化 (APIキーの安全な管理と監視機能の強化) に進みます。
具体的には以下を実施します:
✅ APIキーの安全な管理:Kubernetes Secretsの活用
✅ 監視機能の強化:Prometheus + Grafanaを使用したシステム監視

次の記事では、システムのセキュリティを強化についてまとめます。
-
-
開発記録#150(2025/3/25)「論文ベースのbot開発フローpart.12」
続きを見る