Docker コンテナを使用した新サーバーへの移行対応

CentOS 6 で運用されているWebサーバーをコンテナを使用して新サーバーへ移行するプロジェクトを実行しました。

旧環境は CentOS 6 で運用されており、運用開始から5年以上が経過しておりました。旧環境で運用されていたシステムは3つで、1つは WordPress を使用したホームページ、他の2つはPHPで開発された社内とパートナー用のファイル連携システム、アカウント管理システムでした。

まずはこの3つのシステムのバージョンアップ検証を行い、開発環境において最新のバージョンを用意したPHP環境に3つのシステムをインストールし、問題なく動作するかの検証を行いました。

結果として、WordPressはバージョンアップを適応することで PHP 8.2 に対応することができたのですが、他の2つはソースコードの回収が必要になることから、PHP 5.6 の環境を用意することにしました。

PHP8.2 と PHP5.6 が共存する必要があるのですが、今後のメンテナンス性も考え、Docker を使用してPHP8.2コンテナとPHP5.6コンテナを用意し、前段のLoad Balancer として nginx コンテナを設置しました。

基本OSとしては CentOS 9 Stream で構築し、Docker を使用して機能を多重化することで、1台のサーバーリソースを極限まで有効活用できるシステムを構築しています。

 

困難を極めた箇所

PHP8.2 コンテナとPHP5.6 コンテナはそれぞれのコンテナ内からメールを送信する必要があるため、PHP8.2のベースイメージにpostfixを追加してメール環境を整備しました。またPHP5.6コンテナはオフィシャルのベースイメージが存在しないため、CentOS7 のベースイメージを使用し PHP 5.6 をyumでインストールしました。さらに postfix バージョン3 をインストールする必要があったため、Postfix のオフィシャルリポジトリをインストールし、そこからpostfix3 をインストールする方法を取りました。

コンテナは仮想ネットワークとして public, dmz, database の3つの可能ネットワークを作成し、セキュリティ向上を考慮した環境を構築しました。

 

プロジェクト期間

1ヶ月

 

予算

0~50万円