今回「5日間くらいかかるデータ処理のPythonプログラム」を実行するために、以下の条件に合うサーバーを探していました。
- スポットで時間課金で使える。
- 費用はできるだけ抑えたい(できれば1,000円程度)。
- メモリは後からスケールアップできる。
- 200GBくらいのデータ用ディスクスペースが確保できる。
本来なら手元のパソコンを使えばよいのですが、今年は暑い日が多くCPU使用率が100%に近い状態で何日も放っておくのが心配になりました。温暖化により今後も同様の不安があるので、これを機に数日かかる処理をスポットで実行できる外部環境を見つけたいと思いました。
様々なクラウドやVPSを見てみましたが、GMOインターネットの「ConoHa VPS」 が今回のようなケースにとても便利に利用できることがわかりました。
そこで、今回は実際に利用した結果にもとづき、便利だと思った特徴をまとめてみましたので、ぜひ参考にしてください。
本記事の目次
VPSの活用はさくらのVPSとConoHa VPSのいいとこ取りがベストプラクティスだと考えております。以下の記事にその理由を説明しているので、こちらもぜひ参考にしてください。
クラウド感覚で使えるVPS
これまでの認識では、数日単位のスポット利用、かつスペックに自由度を求めると「クラウド」を選択していました。一方、「VPS」というと定額で利用できるメリットはありますが、クラウドとくらべると柔軟性に乏しいというイメージがあります。
しかし、今回利用した「ConoHa VPS」はVPSではありますが、かなりクラウドに近いです。
時間課金、スケールアップ・ダウン、ディスク(SSD)の追加、ローカルネットワークによるシステム構築、ロードバランサーの利用、保存したイメージを用いた複製サーバーの作成などが可能です。
もうほとんどクラウドですが、プランごとに月額の最大金額が設定されており、コスト面でのVPSのメリットはそのままなので安心して利用できます。だからいろんな機能を気軽に試せます。
当社ではいままでクラウドもVPSもどちらも利用してきましたが、ConoHa VPSはクラウドに近い使用感をサービスでうまく実現していて、非常に便利なVPSだと思います。
1時間単位で使える
今回はこれが最大のメリットでした。当社のようにスポットでPythonのデータ処理プログラムを流すような場合は最適です。
他のVPSでは最低利用期間が3ヶ月に設定されていることがよくありますが、数日のスポット利用には費用面で不利です。ConoHa VPSは1時間単位で利用できるのでコストをグッと抑えられます。
以下が今回の明細ですが、利用時間の単位が「Hrs(hours)」になっています。
なお、1時間に満たない利用については、1時間分の利用として計上されています。また、実際の支払い金額は、上記の金額「925円」に10%のサービス維持調整費が加算されます(執筆時点はまだ確定していませんが、税抜きの10%が加算されるので、おそらく総額「1,010円」になります)。
もしもこのまま1ヶ月フルに利用していたら?
今回は1ヶ月に満たない利用なので関係しませんでしたが、もしも1ヶ月フルに利用しても定額の月額料金を超えて請求されないので安心です。
例えば、メモリ4GBのプランは「7.3円/hour」なので、30日間利用すると24x30x7.3=「5,256円」ですが、請求は月額料金の「3,969円」だけになります。
支払い方法の選択肢が多い
支払いはクレジットカードを利用する「後払い形式」とConoHaチャージと呼ばれる「前払い(プリペイド)形式」を選べます。
今回はConoHaチャージに2,000円をクレジットカード(デビットカード可)で入金しましたが、以下のようにAmazon Pay、銀行決済(ペイジー)、コンビニ決済、PayPalも利用できます。
チャージ残高が不足するとサービスが停止しますが、チャージからの引き落としは翌日なので、毎日チェックして不足しないようにしておけば大丈夫です。
これだけ支払い方法の選択肢が多いと経費で処理しやすい方法を選べるので助かります。
サーバーをそのままにした状態でスケールアップできる
今回は当初メモリが2Gのプランで利用していましたが、途中でメモリ不足で落ちてしまいました。Pythonのプログラム実行中に「killed」と表示されてしまい、強制終了されました。
そこで、一度サーバーをシャットダウンして、そのままの状態でメモリが4Gのプランに変更しました。以下の画面で「プラン変更」をクリックして操作できます。
プラン変更が完了するまでには約20分かかりましたが、そのまま再度起動してすぐに作業を再開できました。
なお、今回はスケールアップしたまま最後まで利用しましたが、ConoHa VPSはスケールダウンも可能なので、一時だけ高いスペックのマシンでプログラムを実行することもできます。
簡単にディスクを追加できる
メモリが1GB以上のプランには100GBのSSDが付いていますが、途中で足りなくなり200GBを追加しました。今回は読み書きを頻繁に行うデータ処理なので、ネットワーク経由のストレージではなく、ディスクを追加できるのは助かりました(しかもSSD!4.3円/hour!)。
ディスクは「200GB」と「500GB」から選択できます。追加して接続先のサーバーを設定すると以下のようにサーバーに接続されたのを確認できます。
接続したらあとは以下のようにパーティションを初期化、ファイルシステムを作成、そしてマウントすればすぐに利用できます(今回はUbuntuで実行したコマンドです)。
# MBR形式でパーティション初期化
$ sudo parted -s -a optimal /dev/vdb -- mklabel msdos mkpart primary ext4 1 -1
# ext4でファイルシステム作成
$ sudo mkfs.ext4 /dev/vdb1
# マウントポイント作成(今回はユーザーディレクトリに作成)
$ mkdir ~/data
# マウント実施
$ sudo mount /dev/vdb1 ~/data
# ユーザーとグループをユーザーに変更(sudoでマウントしてrootになってしまうため)
$ sudo chown -R ichiro:ichiro ~/data
最後に(欠点はあるのか?)
ConoHa VPSは「クラウド並みのサーバーをVPSの価格で利用できる」優れたサービスです。
言うことないサービスですが、あえて1つだけ改善を希望する点をあげるならば、コントロールパネル(管理画面)での操作の遅さです。
しかし、SSHの設定が完了すれば、あとは自分のパソコンのターミナルから操作するので不便に感じることはなかったです。ConoHa VPSのSSHはレスポンスもよく、接続も安定していました。
サーバーの追加からSSHの設定までは、慣れればほとんど時間はかかりません。さらに、サーバーに利用されるUbuntuなどのOSには、Pythonはプレインストールされているので、すぐに自分のPythonプログラムをアップロードして実行できます。
遠隔のサーバーでプログラムを実行できるようになると以下の記事にもあるように自動化できることが増えるなど様々なメリットがあります。ぜひ一度VPSを試してみることをおすすめします。