さくらのVPS(Ubuntu)でSSHの設定をする

エックスサーバーやロリポップ!といったレンタルサーバーは、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を使えばいいのかな?