number64.netドメインのwebサイトは、さくらのVPSを借りて構築しています。
私の財力が貧弱なため、一番安価なプラン(2Core/1GB)から上げるに上げられずいるのですが、細いなりに軽量なインフラ設計で乗り切ろう、ということで今回色々調べてみました。
いきなり矛盾するのですが、技術的な勉強も兼ねているため、Docker導入は外せません。
Docker入れる以上は他を削るしかなく、リニューアル前はコンテナ運用特化OSのRancherOSを使っていました。
しかし、RancherOSはとにかく便利機能も含めて極限までそぎ落としていて、Linuxにそこまで強くない私にはピーキー過ぎて乗りこなせていませんでした。しかも何年振りかで公式を見たらもうEOSしており...。
色々検討して、今回はベースをDebianで行くことにしました。比較的軽量な割に、充分使いやすいです。
また、Dockerに対して誤解があったのですが、ホストOSの資材とDocker上のコンテナが使う資材を共有化することで、複数コンテナ起動によるオーバーヘッドを抑止できるらしく、思ってたほどはメモリを浪費しないように出来るというのです。
ということで、ホストからコンテナまで全てOSをDebianに統一する作戦を立てました。
コンテナはNginxが2つとMariaDBが1つ稼働しています。
これまでは惰性でApacheだけ使っていたのですが、新しい知識を得る、またより軽量な環境を作るためNginxに切り替えました。やってみると思ったより理解しやすく、これは切り替えて正解でした。
フロントが2台なのは、先代のサイトが乗っ取りを食らったことの反省から、MT本体をNginxごと隔離・ポートも分けたうえで、mTLSでガッチリガードするためです。
記事投稿は決まった端末からしか行わないので、mTLSがピッタリハマります。証明書はオレオレですが防御力はほぼ完璧。
MTの仕様上、CGIを完全に分離するのがちょっと面倒だったのですが、そのあたりは機会があれば(記事ネタが尽きたら)書きたいと思います。
この構成で、安定状態で200MB程度しか使っていないので、軽量インフラ構成としては成功したかなと思います。
阿部寛の公式サイトのような軽みには及びませんが...