エックスサーバーやロリポップ!といったレンタルサーバーは、Wordpressを使う分には便利なのですが、Pythonのプログラムを動かすには制約が多くて面倒になってきました。
そこで、とうとうVPSに手を出そうと思います。VPSサーバーにも色々ありますが、初心者なので速度や容量よりも、安定稼働重視で評判の良いさくらのVPSを選びました。
もくじ
レンタルサーバーでは出来なかったこと
ファイルの分割
レンタルサーバーでPythonのプログラムを動かすには、間にCGIを挟まないと動きません。そのことが原因なのかわかりませんが、ファイルを分割して読み込むと途端に動かなくなります。
ファイルを分割しても動かす方法があるのかもしれませんが、私にはわかりません。そのためにCGIの勉強をするのは無駄が多いように思います。特に、初心者にはハードルが高いです。
ローカル環境では問題なく動いていたプログラムを、レンタルサーバーで動かすために書き直すのも面倒です。エラーが出ると、どこを直したらいいのかもわかりません。
sqliteが動かない時がある
SQLAlchemyを使っていると、sqliteを上手く読み込めないのか、プログラムが動かないことがあります。プログラム中にSQL文で書くと読み込めたりします。何が原因か検証してないのでよくわかりませんが、SQLAlchemyをSQLに変えるのも面倒です。何より個人の趣味で作っているプログラムなので、レンタルサーバーにこだわる必要もありません。
PostgreSQLを使いたい
エックスサーバーやロリポップ!だとMySQLは使えますが、PostgreSQLは使えません。しかも、外部からデータベースに接続できないみたいです。エックスサーバーは一応できるみたいですが、SSH経由しなければいけないとか、私にはよくわかりません。
しかも、ローカル環境では何となくPostgreSQLでデータベースを構築してしまったので、今更MySQLのことを調べるのは面倒です。
さくらのVPS 1G
そんな感じで、レンタルサーバーではPythonの勉強に限界を感じてきたので、VPSを借りてみます。
メモリが512Mか1Gか迷ったのですが、データベースを動かすにはメモリは多い方がいいらしいので1Gにしました。どちらもSSDで、512Mが月額643円~、1Gが月額880円~です。この価格差なら、1Gの方がコストパフォーマンスがいい気がします。
初期費用無料なうえ、年間契約すると9,680円(税込)です。1万円以下で1年遊べるなら、まあいいかなという感じです。
2週間も無料期間があるので、本契約する前に色々と試せます。
選んだOSは、Ubuntuです。最初はDebianにしようと思い、試しにインストールしてみましたが、インストールが結構面倒だったので、簡単にインストール出来るUbuntuに変更しました。Ubuntuはあまり好きではないのですが、インストールとインストール後の設定の手軽さの方が魅力的でした。
パケットフィルター
以前書いた記事を参考に、SSHを鍵認証に変更します。しかし、SSHの設定でPortを22番から変更したところ、接続出来なくなりました。
調べてみると、初期状態ではパケットフィルターが設定されているようで、接続可能ポートにカスタムで開放するポートを追加しなければいけないようです。
パケットフィルターを切ってしまってもいいのですが、セキュリティの知識がないため、しばらくはパケットフィルターを利用したままポートを追加していきます。
初期状態では、ufwはinactiveでした。パケットフィルターを切る場合は、ufwを使えばいいのかな?