📚

小規模開発における本番環境の技術選定

に公開

この記事では小規模開発における本番環境の技術選定について紹介します。

はじめに

最近、開発環境構築手順の記事を2つ書きました。

https://zenn.dev/uchidaryo/articles/2025-12-windows11-dev-environment-setup

https://zenn.dev/uchidaryo/articles/2026-01-wsl-ubuntu2404-dev-environment-setup

今回は私が小規模開発で利用している本番環境の技術選定について紹介しようと思います。

開発環境のまとめ

開発環境の詳細は上記の記事を見てもらえたらと思いますが、主なものだけまとめると次のような感じです。

項目 名称
OS Windows
ブラウザ Google Chrome
メールクライアント Mozilla Thunderbird
テキストエディタ Visual Studio Code
仮想マシン WSL + Ubuntu
言語環境管理 mise
プログラミング言語 Ruby
Webフレームワーク Ruby on Rails

本番環境の技術選定

本番環境の技術選定を下表にまとめました。以降で私なりの選定理由について説明します。

項目 名称
OS Rocky Linux
Webサーバー Apache
Webサイト WordPress
Webアプリ(フレームワーク) Ruby on Rails
メールサーバー Postfix + Dovecot
DBサーバー MySQL
認証基盤 OpenLDAP

Rocky Linux

本番環境のOSは、Red Hat Enterprise Linux(以下 RHEL と略記)系の Rocky Linux です。これは Shibboleth で公式サポートされていること、RHEL系で長期間のソフトウェア・アップデートが期待できること、安定して動くことなどが理由になります。

Shibboleth

Shibbolethは、SAMLを使ってSSOを実現するソフトウェア実装の一つです。

私の開発するWebアプリは、本番環境の認証・認可で Shibboleth SP を利用することが多いです。このShibboleth SPの System Requirements に次の記述があるため、同じRHEL系でも AlmaLinux は選ばなくてもいいかなと判断しています。

We officially support the following Linux distributions (x86_64 and aarch64):

  • Red Hat Enterprise 8/9/10
  • Rocky Linux 8/9/10
  • Amazon Linux 2
  • Amazon Linux 2023

Apache

Webサーバーは Apache です。これもRocky Linuxと同じく、Shibboleth SPの System Requirements に次の記述があるため使っています。

Officially we support the use of Apache 2.4 and FastCGI.

長年の実績、ドキュメントの多さ、安定性なども魅力ですし、RailsのWebアプリにリクエストを振り向けるリバースプロキシとして問題なく利用できるのも良いです。

WordPress

Webサイトはなるべく WordPress で作ります。(なので必然的にサーバーに PHP をインストールすることになります)

場合によっては HTMLCSS または Tailwind CSS で作ることもあるのですが、Webサイトを作った後、誰かに運用を任せることまで考えると、WordPressの方が手離れが良いので好きです。なので、できるだけクライアントには「WordPressで作りましょう」とおすすめしています。

Ruby on Rails

Webアプリは原則 Ruby on Rails で開発します。

Ruby で書くのが楽しいこと、Gemのライブラリなどが充実していて早く開発できること、フレームワーク側で決めてくれる部分が大きくてあまり悩まなくて済むことが理由です。ちなみにDHHの The One Person Framework というブログにはかなり共感しています。

あとは RailsチュートリアルRailsガイド といったオンラインリソースや プロを目指す人のためのRuby入門たのしいRuby など書籍の存在も大きいです。

Postfix + Dovecot

メールサーバーを構築しないといけない時は PostfixDovecot を使います。

おそらく最も実績のある組み合わせですし、何かしら障害が起きた時のトラブルシューティング情報もネットに大量にあります。初期設定はちょっと面倒ですが、最初だけがんばって構築すれば、あとはあまり手をかけなくても大丈夫なのでおすすめです。

MySQL

WordPressでWebサイトを作ることから、DBサーバーは必然的に MySQL です。

互換性を考えれば MariaDB もアリですが、なんとなく DB-Engines Ranking を見た感じ、MySQLの方が使っている人も多そうだし、MySQLから離れずにいます。MySQLはRails(のActive Record)でも特に問題なく使えますし、良いんじゃないでしょうか。

OpenLDAP

認証基盤を構築しないといけない時は OpenLDAP を使います。

認証基盤の定番だと思いますし、Rocky Linuxとの相性も良いです。また、SSSDと連携させることでLinuxアカウントの管理が統一的にできるようになって便利です。設定がちょっと分かりにくいのは難点ですが、PostfixおよびDovecotと同じで、一度構築すれば長く安定して動きます。

その他

あとは細かいところになりますが、次に挙げるものも長く使っています。

項目 名称
バージョン管理 Git
設定管理 etckeeper
ログ監視 Logwatch
テキストエディタ Vim
シェル bash

定番ですね。

おわりに

この記事では小規模開発における本番環境の技術選定について紹介しました。

ここで挙げたソフトウェアはどれも枯れた技術でかなり安定していると思いますし、キャッチアップを最小限に抑えたい場合にはおすすめです。

GitHubで編集を提案

Discussion