Amazon Linux 2023へのサーバー移行の際の考慮点
はじめに
最近魚料理にハマっているkohachanです。
今回は別OSからAmazon Linux 2023 OSへの環境移行を検証する機会があったので、移行の際の考慮点についてまとめていきたいと思います。
前提
移行前のOSはCentOS 7とし、WordPressが動作するLAMP環境を構築する前提でポイントをまとめていきたいと思います。
ロケール、タイムゾーン
移行前のOSでロケールやタイムゾーンが設定されている場合は、同じように設定を合わせる必要があるかと思います。
Amazon Linux 2023での設定方法については、以下の記事に詳細がまとまっているので参考になりそうです。
https://docs.aws.amazon.com/ja_jp/appstream2/latest/developerguide/enable-japanese-support-linux.html
OSユーザー、グループ
OSユーザーとグループについても作成されている場合、Amazon Linux 2023で作成し直す必要があります。
また、各ユーザーディレクトリ配下の.ssh
ディレクトリ以下も、移行前と同様にする場合、設定を合わせる必要があるかと思います。
.ssh/authorized_keys
.ssh/id_rsa
(秘密鍵。名前は任意).ssh/id_rsa
(公開鍵。名前は任意)
パッケージ
yum等でインストールできるLinuxにインストールされているパッケージについても、インストールのし直しが必要になります。
yum list installed
(yumでインストール済みのパッケージのリストを取得するコマンド)などで使用しているパッケージを把握し、必要なパッケージをインストールしておきましょう。
また、Amazon Linux 2023ではパッケージ管理ツールに「dnf」を使用しているので、その点も違いとして認識しておくと良いかと思います。
dnfはyumの後継となるパッケージ管理ツールで、多くのコマンドはyumと同じように使うことができます。
詳細はAWSの公式ドキュメントにも記載されています。
https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/package-management.html
さらに、Amazon Linux 2023はCentOSでは標準でインストールされている、cronやrsyslogなどの主要なパッケージがデフォルトでインストールされていない点にも注意が必要です。
こちらは以下の記事に、Amazon Linux 2023にデフォルトでインストールされているパッケージなど詳細にまとまっているので参考になるかと思います。
https://dev.classmethod.jp/articles/diff-al-2023-and-al-2-packages-and-services/
Apacheの設定
Apacheも独自で設定している部分がある場合、同じ内容で設定し直す必要があります。
Apacheの設定ファイルは、CentOSだとデフォルトで以下の場所に配置されているので内容を確認しておきましょう。
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/
以下の各confファイル
PHPの設定
PHPも同様に設定し直すことになります。
PHPの設定ファイルは、CentOSだとデフォルトで以下の場所に配置されています。
/etc/php.ini
/etc/php.d/
以下の各confファイル/etc/php-fpm.conf
(PHP-FPMを使用している場合)/etc/php-fpm.d/
以下の各confファイル (PHP-FPMを使用している場合)
定期実行ジョブの設定
cronなどで実行している定期実行ジョブがある場合、それらも移行する必要があります。
定期実行処理はcronの他にもEventBridgeで実装している場合もあるかと思いますが、関連する定期実行処理を洗い出し、必要に応じて設定内容の移行・実装の修正などを行いましょう。
ログ出力・ログローテーションの設定
ApacheやPHPのログや、rsyslogから出力されるログなどの出力設定についても考慮する必要があると思います。
ログ出力に関する各設定ファイルの内容も移行するようにしておきましょう。
また、EC2内にログを保持する場合には、容量を圧迫しないよう、定期的にログの削除をするなどのログローテーションを行っているシステムも多いと思います。
ログローテーションにはlogrorateが使用されるので、以下の設定ファイルを確認し、移行しておきましょう。
/etc/logrotate.conf
/etc/logrotate.d/
以下の各confファイル
サーバー内にあるファイル
規模にもよりますが、サーバー内には運用で日々使用するスクリプト、定期実行用のスクリプト、これまで蓄積されたログファイルなど、多岐にわたるファイルが保持されているかと思います。
それらも移行先のサーバーに移行したり、別の場所にバックアップとして保管しておいたりするなどして、考慮に入れる必要があります。
おわりに
今回は別OS間で移行する際の考慮点と、Amazon Linux 2023特有の留意点について簡単にまとめました。
移行する環境によってはこれだけでは不十分で、さらに考慮が必要な観点もあるかと思いますが、取っ掛かりとして参考になれば幸いです。