自宅PCで自動化システム構築!

自宅サーバ or VPS/クラウド

自動化のシステムを作るにあたり、サーバ(マシン)をどこに構築しようか、悩みました、という話です。

 

① 自宅にあるデスクトップPC上に構築する

② レンタルでインターネット上にサーバを構築する

 

結論から言うと、自宅に構築することにしました。

理由は、単純にレンタルでお金がかかるから。

本当は、レンタルのほうがメリット多いです。ディスク容量が足りなくなったら、追加が簡単にできるし、自宅でパソコンを常時起動する必要がないからパソコンの音がうるさくないし、バックアップも自分で取る必要があるし。

レンタルと言っても今は、月額500円くらいで1台借りれるので、そんなに高くないんです。

けれど、システムエンジニアという職業を生かして、お金をかけずに家にシステム構築してしまおう、と考えました。

 

自宅PCは、ゲーム用マシンなので十分な性能

自宅の僕のパソコンの性能ですが、FPSオンラインゲーム(AVA)をやるように少し良い性能のパソコンを持っていたので、全然問題なかったです。

ただ、仮想サーバを4台立てると、さすがに物理メモリが足りなくなったので、追加で購入しました。

 

OS:Windows 7 Home Premium SP1
CPU: Core i5-4570 3.20GHz
メモリ:16GB  ※増設後

 

システム構成の紹介

もったいぶるほどのモノではないですが、一応システム構成の簡単な絵を描きました。

DBサーバは、MySQLです。

使ったことなかったですが、インターネットで調べながら、少しずつ構築しました。

APサーバは、Perlスクリプトのみです。

WebAPIでレスポンスを文字列処理すると思ったのでライトウェイトで文字列操作が便利なPerlをインストールしました。

 

20170530_システム構成

 

自宅からインターネットに繋ぐところに、ルータを置いているので、自宅内のネットワークで各サーバにIPアドレス持たせています。

仮想化ソフトは、Oracle Virtual Box使っています。

 

今のところ問題なし!

APサーバが2台あるのは、WebAPIリクエスト(MWSやPAAPI)を送ってからレスポンスを受け取ってDB書き込みまでに2秒以上かかってしまうからです。

MWSのスロットリングを見れば分かりますが、1秒ごとに回復していくので極力ぎりぎりまで送りたいためです。

 

2017/06/04 17:34:14  START
17 ms : DB Connected
42 ms : ASIN Selected
91 ms : Updated Target ASIN Record
91 ms : Created Request Parameters
91 ms : Create Signature
1014 ms : Received Response
1093 ms : 4061565591 Decoded XML
1144 ms : 4091346650 Decoded XML
1199 ms : 4480091491 Decoded XML
1255 ms : 4576140620 Decoded XML
1339 ms : 4580803825 Decoded XML
1339 ms : Finished
2017/06/04 17:34:15  Total:5  Success:5

 

これは、自作プログラムが出力するログの抜粋です。

処理内容は、「DB内のASINコードを5個選んで、アマゾンから商品情報を取得して、DBに格納する」です。大体、1回の処理に1.3秒かかってますね。

このプログラムを繰り返すと、スロットリングめいっぱいまで情報取得ができないので、2台用意しました。

(少し分かりにくいですね、説明が・・)

ASINコードの数が、数100万レベルであるので、正直処理が追いつかないのです。。

今のところ、今の構成で困ることがないので、このままにしておこうと思います

 

それでは、また次回!

 

 

コメントを残す

メールアドレスが公開されることはありません。