
このブログは今までレンタルサーバーのエックスサーバー
で運用していましたが、さくら VPS に切り替えました。
このブログは WordPress で構築していますが、WEB サーバーや DB サーバーなどは Docker コンテナで。チャレンジングな環境ではありますが、今のところ問題なく稼動しています。
これからは WordPress の記事もさることながら VPS や Docker などについても記事をポストできればと思います。
Docker 運用にした理由
無料で公開されている様々な WEB アプリだとか、WordPress 関連でいえば WP REST API などの様々な 環境を試してみたいから、というのが Docker 運用にした理由です。
もちろん、それらを試すのに Docker である必要はないんだけど、Docker を用いれば、
1. サーバー(ホストOS)自体が汚れない。
2. 同じシステム環境を簡単に再現できる。
3. 運用後も DB サーバーのバージョンを変更するとか、システム構成を柔軟に変更しやすい。
などのメリットがあります(なはず)。
メリット1: Docker を使えばサーバーが汚れない
いろいろな WEB アプリとかを試そうと思うと、サーバーに様々なミドルウェアをインストールしたり様々な設定を変更したり WEB サーバーなどにモジュールを組み込んだりと、ある程度の試行錯誤が必要だったりしますが、そのような変更が他のシステムに影響を与えちゃうとか最悪動かなくなっちゃうとか。
Docker ではサーバー(ホストOS)から隔離されたコンテナ内にミドルウェアなどをインストール・設定をするので、必要なくなったり、ゴチャゴチャになったらコンテナごと破棄すればそれで OK。サーバー自体に(ほぼ)ゴミが残ることはありません。
メリット2: 同じシステム環境を簡単に再現できる
もちろん新たなアプリなどを試す場合には本番環境とは別に Vagrant とかで作ったローカル環境などで試行錯誤してから本番環境へ移行するので一発勝負という訳ではありませんが、苦労して Vagrant の中でその仕組みを構築しても、本番環境に同じ環境を作るのは結構大変だったりします。
また、Vagrant 上では動いていたのに本番環境ではエラーが。。なんてことも
いつも同じ環境のサーバーを構成するために Chef だとか Ansible などの構成管理ツールがありますが、インストールした WEB アプリをやっぱり使うのやめたい(アンインストールしたい)とか、そんなシチュエーションにはどうにもならなかったりします。
Docker であれば基本的に Dockerfile さえあれば本番環境へデプロイするのも簡単。サクッと、というわけにはいきませんが、それでもより簡単に本番環境へデプロイできると思います。
メリット3: 運用後もシステム構成を柔軟に変更しやすい
システムを構成するミドルウェアはコンテナ単位で構成されるので、コンテナを差し替えることによってシステム構成を比較的簡単に変更することができます。
例えば、データーベースのバージョンを変えたいとか、php-fpm を HHVM に変えたいとか。
そうそう頻繁に変更するものではないと思うけど、nginx でリバースプロキシしてみたい、とかになった場合に便利。
さくら VPS + Docker のデメリット
最大のデメリットは何といっても、全て自分で管理する必要があること。サーバーの root 権限を持って(ほぼ)なんでもできることが VPS の最大のメリットである反面、なんでも出来るということは何にもしてくれない、ということです。
エックスサーバーはとても優秀で、速くて安定しています。しかも安価 & (ほぼ)ノーメンテナンス。
VPS ではセキュリティーなども含めて全て自分で管理する必要があります。また Docker は発展途上で、数年後に Docker がどうなっているかはわかりません。「一時期 Docker っていうのが流行ってたよね。」と言われる存在になってしまうかもしれません。
まとめ
というわけで さくら VPS + Docker に移行してみたわけですが、本当に思惑通りいくのでしょうか。
「やっぱり私には Docker 無理でした。」と宣言した場合は笑ってやってください。まぁ実験も兼ねてぼちぼちやってみたいと思います。
でわでわ。