2012/02/27

MT4用EA実行環境構築 - 障害対策でVPSは必要?自宅でどうする?



さて前回は、MT4用EA開発で、本番開始までの奮闘状況をまとめた「MT4用EA開発時代」が完了したところまで書きました。今回からは、開発したMT4用EAを実行させる環境を構築する様子を書いていきます。第一弾は、実行環境の概略について書いてみたいと思います。

まず方針としては、安定して動作して、障害発生を検出できて、短時間で復旧できるかがポイント。
 
災害/障害対策としては、過去以下の様なブログを書いてた。

【過去記事】
------------------------
------------------------

そもそもME4用EAを、自宅で動かすか、VPS上で動かすか。
以下は、某有名VPSサービスに過去障害も含めて冗長化構成を中心に、ヒアリングをしてみた結果。

【某有名VPSサービスとの質疑】
------------------------
1.リモート接続障害に関して
  自宅からのリモートデスクトップ接続の障害があった旨がありましたが、その際、
  レンタルサーバから別の外部サイトへの通信にも障害が発生していたのでしょうか?
  それともリモートデスクトップ接続だけが障害となったのでしょうか?

  【回答  
  弊社提供サーバーの問題であるため、外部への通信にも問題が発生してございました。

2.サーバはクラスタ構成でしょうか?
  リモートデスクトップが動作しているサーバが起動不可等の障害となった場合、どうなるのでしょうか?
  クラスタ構成を組んでいて、外付けディスクの情報を引き継いだ状態で、自動的に別サーバに切り替
  わる様になっているのでしょうか?

  【回答 】 
  申し訳ございません。自動的に切り替わる状況とはなりません。
  なお、HDD / ソフトウェア障害によるデータ復旧はできかねます。

   ○ 追加質問1
     この点ですが、サーバ障害となった場合は、ディスクの中身がクリアされるとして、
     リモート接続可能な状態になるまでどの程度の時間がかかりますでしょうか?
     #5分程度なのか、数時間レベルなのか、数日というレベルなのかといった精度でかまいません

     【回答】
     障害の状況によって異なる状況ではございますが、弊社にて
     想定しうるケースは数時間と判断されます。

   ○ 追加質問2
     サーバ障害発生時は、利用者にメール通知等がありますでしょうか?
     メール通知が無い場合、どういった方法で利用者に連絡があるのか教えて
     頂けないでしょうか?

     【回答】
     おそれいりますが弊社にて障害やメンテナンスのご案内
     商材ページにてご案内させていただいております。

3.サーバ内臓ディスクはミラーリング(RAID1等)等はされてますでしょうか?

  【回答】
  ミラーリングしております。

4.ネットワーク機器
  内部ネットワーク機器は多重化されてますでしょうか?
  SPOF(※1後述)となる箇所はありますでしょうか?

  【回答】
  すべての機器において、多重化されておりません。
  詳細なご案内も控えてさせていただいてます。

5.外部のインターネット接続の冗長構成について
  サーバから外部のインターネットに接続する際、特定1つのISPを使用しているのでしょうか?
  それとも、複数のISPを併用していて、1つのISPが通信不可になった場合でも、自動的に
  他のISPで通信可能になる様になっているのでしょうか?

  【回答】
  特定の通信サービスとなります。

6.外部ネットワーク接続機器は冗長構成になっていますでしょうか?

  【回答】
  こちらにつきましてもすべての機器において、冗長化されておりません。
  詳細なご案内も控えてさせていただいてます。

7.電源の引き込みについて
  電力会社からサーバ設置しているビル内への電源の引き込みは2系統からでしょうか?
  それとも、1系統のみでしょうか?

  【回答】
  2系統となります。
------------------------
※1 SPOF:Single Point Of Failuer
     参考:単一障害点 - Wikipedia
    
このVPSを使う事で対処できる障害
VPSで使用しているハードウェアが故障した時でも予備機器で自動復旧されるのは、ハードディスク障害か電力供給障害の時のみ。

■このVPSを使用しても対処できない障害と弊害
 ・サーバそのものやネットワークで障害が発生してもメールで通知してくれないので障害に
  気づく事ができない。
   #後述のmyfxbookを使えば気づく事は可能にはなる。
 ・サーバ障害時は数時間停止するし、障害状況によってはディスクがクリアされるかもしれない。
  障害実績を見ると、思った以上の頻度で障害が発生している。 
 ・ネットワーク障害発生時復旧時間は通信事業者次第。
 ネットワーク障害中は、当然自宅やスマホからリモートでログインすることができないケースが
  考えられ、EAを稼動させているMT4がどうなっているのかも見ることができない。
  当然、自前で予備ISPを追加する事もできない。
  → サーバにリモート接続できなければ、状況把握できないし、どういう対処をすればいいか
     わからない。
    EAはトレードしてるかもしれないし、していないかもしれないという心理的にドキドキする状況。
      #自宅PCの場合、ケーブルを抜けば少なくとも確実に新規発注はしなくなる。
 障害が復旧したとしても上記回答内容から想像するに復旧連絡なんて来ないだろうから、
  時々障害復旧状況をHPに見に行かないといけない。

【結論】
手持ち機器の状況と、インターネット障害やVPS障害発生時の事を考えると、やっぱり自宅で動かしたほうがいいという結論。
#使ってない古いPCがあったのが大きいかも

そして、自宅でMT4用EAの実行環境を以下の様にした。
※参考(過去検討していた時のブログ記事):「MT4用EA開発時代 - PC障害対策の設計ミスと、デモ口座期限切れ対策

【構成概略】
------------------------
●機器構成 

●ソフトウェア構成
------------------------

【構成詳細】
------------------------
●パソコン
 ・トレード用PC : SONY 「VAIO VGN-FE90S」 
  ※メモリは2Gに増設済み。CPUはカスタマイズで2coreを選択。
 ・予備用トレードPC : SHARP 「PC-MV1-C1F
 ・外出時持ち出し用PC : SONY 「VAIO PCG-SRX7
  ※ メモリは256MBに増設済み
 ・普段使い用PC : SONY 「VAIO Fシリーズ VPCF14AFJ」 
  ※カスタムメイド:メモリ8G、SDD200GB、CPU Intel Core(TM) i7 M640 2.8GHz
●インターネット・LAN
 ・NTT東日本/フレッツ光ネクスト
 ・ぷらら/ぷらら光セット
 ・TA/ルータ(レンタル) : 「PR-S300SE」 
 ・無線LANステーション : バッファロー「WZR-HP-G300NH」 
 ・スイッチングハブ : コレガ「CG-SW08GTX2W
 ・UQ-WiMAX(予備インターネット) : ステッププラン
 ・WiMAXルータ(予備インターネット用) : 「AtermWM3500R
●ハードディスク
 ・NAS : IODATA 「HDL2-G」 
 ・外付けHDD : IODATA 「HDJ-U1.0」 
●その他
 ・スマホ : docomo 「AQUOS PHONE SH-12C」 
 ・UPS : APC 「ES 750 BE750G-JP」   → NASに接続
------------------------

【ソフトウェア・利用サービス】
------------------------
●パソコン用ソフトウェア
 ・TeamViewer Host  → スマホからのリモートアクセス用
 ・UltraVNC 日本語インストール版  → 普段使い用PCからトレード用PCアクセス用
 ・BunBackup → トレード用PCのMT4環境バックアップ。1回/1日。
 ・Backup → 5分間隔での大域変数のバックアップ
 ・ExPing → NW切替用。詳細は後日。
 ・LiveMessenger  → 外出先からトレード用PCの通信状況確認用。
 ・WinMailCmd → MT4障害検出時のメール送信用
 ・Acronis True Image Home 2010 → トレード用PCのディスク全体をイメージバックアップ
●スマホ用ソフトウェア
 ・TeamViwer → トレード用PCへのリモート接続
 ・Mercury Mobile(Free) → LiveMessengerクライアント。トレード用PCがISP接続できているか確認
●利用サービス
 ・myfxbook  → トレード用PC障害検出、トレード状況確認
------------------------

トレード用として新規に購入したのは、WiMAXルータとスマホだけ。
PCがたくさんあるのは、過去の古いPCを妻の分も含めて総動員したため。
UPSは東京電力の計画停電対応用に購入していた。

これでVPS利用と比較して可用性がどうなったかと言うと、以下の通り。

【VPS利用時との違い】
------------------------
各障害発生時の可用性比較結果。
:向上、:若干低下、×:低下

1.トレード用PC障害 
  myfxbookにより検出(これはVPSでも可能)。外出先からスマホで予備用のトレード用PCに
  手動切替可能になった。
2.ディスク障害 
  発生時はPC障害と同じはずなので、上記「1.」と同じ。
  但し、HDD単発障害でトレード用PC切替が必要になる。
  (VPSの場合は、単発障害では影響がほぼない)
  復旧はディスク復旧後にゆっくりすればいい。設定はバックアップ。
3.ネットワーク機器障害/外部のインターネット接続の冗長構成 
  myfxbookにより検出(これはVPSでも可能)。UQ-WiMAXに自動切換えされる様になった。
  → 替わりに733円/月固定費(実測値)がかかってしまう。
4.停電対策について ×
  1系統のみになったので、停電時はトレード用のノートPC搭載バッテリが無くなるまでに
  何らかの対応が必要。また、NW切替が発生する。
------------------------

元々古いPCが妻の分も含めると3台残っていたことも幸いし、上記の自宅構成の方が可用性観点で良いので、自宅で動作させる事に。
一番判断材料として大きいのは、ISP障害発生時にVPSでは手も足もでないこと(サーバにリモートログインもできないので)。ISPはマーケットが開いていても定期的にメンテナンスを実施していたりするので予備ISPは必須。唯一悩んだのは、電源観点のみ。

今回の自宅MT4用EA実行環境は、PC障害時に自動切換えできないし、MT4からmyfxbookへのパブリッシャーはよく停止してしまうという貧弱さはあるものの、なんとか満足いくレベル。







なんかFXのブログ記事に見えない。。。。




そして、「FXシステムトレード初心者奮闘記」は、「MT4用EA実行環境構築」で、NW切替の仕組み構築に奮闘している様子に続くのでした。
#今ライブ口座で動作中のEA君は当初資金から1.15%減少。。しかも一回間違えて意図せず保有中オーダを全決済。。

0 件のコメント:

コメントを投稿