本日、サイトのメンテナンスの為、一時的に停止していました。
ついでに新しい環境についても少々書いていきたいと思います(ほぼ自分の備忘録の為に…)
OSが古かったのでアップデート
今まで古いバージョンのCentOS(7だったかな…)で運用していましたが、SSL更新に使っているLet’s EncryptのスクリプトがサポートされていないOSだと警告を吐いていたりOSのサポートもなくなりそうだということで、あらたに環境を立ち上げ直しました。
Container-Optimized OS
今回、GoogleのContainer-Optimized OSというイメージを使ってVM立ち上げています。
概要については公式を見ていただくとよいでしょう。
コンテナの運用に特化したOSということで、コンテナ運用に不要な機能をLinuxから取り除いたようなもののようです。
外部から攻撃を受ける要因になりそうな余計なものが組み込まれていないのと、触れる部分に制限があるかわりにGoogle自体が自動でアップデートをかけてくれるというメリットがあります。
…が、まあまあ普通のLinuxと違ってコンテナ特化OSということで、今までの知識が通用しないところが多々ありました。
/etc配下などはVM再起動するとリセットされてしまいますので、基本的はすべてコンテナで運用する感じです。
タイムゾーンの指定もVM再起動するとリセットです。ホスト自体がDocker的な感じで状態を持たない…ステートレスな感じになっています。
Cloud-init
というVM起動時にもろもろ設定してくれる仕組みには対応しているので、タイムゾーンの指定はそこでやる感じです。
/root配下もリセットされるのでいきなり sudo su -
での男気運用(?)も通用しません。
定期的にアプリを動かすcronという仕組みもありません。さらにはaptやyumなどのパッケージマネージャーもありません。
そのかわりDockerとGitは最初から入ってます。
こんな感じなのでホストでそのまま動作するアプリはまず入れるのはかなり無理があると思います。docker-composeすらコンテナで起動してくださいという徹底ぶり。
他にもいろいろはまりどころはあるのですが、こちらのサイトが詳しいので使われる方は参考にされると良いと思います。
WordPressは動いた
https-portal
と nginx
と php-fpm
と mariadb
のコンテナを組み合わせオールコンテナで構築しました(というかそうしないとこのOSでは動かない)。
OS自体はGoogleがメンテしてくれるし、時折コンテナも最新にビルドしていくだけでメンテできるようになったかなと思います。
手間が掛からずリソースを削減できる構成に
前のサーバーではブログ以外にもMastodonなどいろいろ動かしていましたが、そのあたりもバッサリ削除。ディスクの容量もあいてミニマルな構成にできたかなと思います。
個人的な事情ですが私は開発第一線からは離れているので、ゴリゴリに環境を作って全部メンテしていくのもややモチベーション的にしんどいですし、最近GCPの課金が上がってきていったので、少しでも使用リソースを削減したいというのもありまして、なんとか今回やっと改善できたかなと思います。
思いのほか手間取ったので土日を潰してしまいもう日付的には月曜なので、ここら辺にしておきます。