Amazon Linux 2023 が正式リリース
AWSが提供する第3世代のOSとなるAmazon Linux 2023が2023年3月15日に正式リリースされています。
また、今後のAmazon Linuxのライフサイクルが次のようにシンプルになることも発表されました。
- リリースから5年間の無償サポート
- 2年ごとのメジャーバージョンアップ
これまでのAmazon Linuxは「Amazon Linux 2」とバージョン番号で呼称されていましたが、今回のバージョンから「Amazon Linux 2023」といった具合にリリースされた年号が末尾に付くようになったのは、このライフサイクルポリシーを分かりやすく表現するためだと思われます。
今回はこのAmazon Linux 2023の利用を開始する上で最低限抑えておきたいポイントと、Amazon Linux 2023でLAMP環境を構築する手順を紹介します。
Amazon Linux 2023 を利用する上で最低限抑えておきたいポイント
①Amazon Linux 2023 のEOLについて
本格運用を想定しているのでは、ディストリビューションのEOLを確認しておく必要があります。
Amazon Linux 2023 のEOLは2028年03月15日となっております。
他のRedHat系ディストリビューションとのEOL比較
ディストリビューション | リリース | EOL |
---|---|---|
Amazon Linux 2 | 2018年06月26日 | 2025年06月30日 |
Amazon Linux 2023 | 2023年03月15日 | 2028年03月15日 |
Amazon Linux 2025 | 2025年03月 | 2030年(月日未定) |
RedHat Enterprise Linux 8 | 2019年05月07日 | 2029年05月31日 |
RedHat Enterprise Linux 9 | 2022年05月18日 | 2032年05月31日 |
Rocky Linux 8 | 2021年06月21日 | 2029年05月31日 |
Rocky Linux 9 | 2022年07月14日 | 2032年05月31日 |
Alma Linux 8 | 2021年03月30日 | 2029年05月01日 |
Alma Linux 9 | 2022年05月26日 | 2032年05月31日 |
②Tera Term(ver4)でSSH接続できない
今までのAmazon Linuxと大きく異なっているポイントとして、Tera TermでSSH接続ができないという点が挙げられます。
これを知らずにAmazon Linux 2023の利用を開始するといきなり躓いてしまいます。
SSHクライントソフトとして日本国内でも広く利用されているこのTera TermでのSSH接続が出来ないという問題ですが、正確にはTera Term(ver4)でSSH接続が出来ないだけで、本記事の掲載時点でベータ版であるTera Term(ver5)であればSSH接続が可能です。
これは、Amazon Linux 2023ではRHEL9などと同様にSHA1がDEFAULT暗号化ポリシーで制限されていることが原因で、AWSの公式サイトにも記載がある以下の対応を行うことで、Tera Term(ver4)でのSSH接続が可能となります。
https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/ssh-host-keys-disabled.html
1 2 3 4 5 6 7 8 9 10 |
AWS管理画面よりブラウザを使ったSSH接続を利用して対象サーバにログイン後に下記のコマンドを実行 $ sudo dnf install crypto-policies-scripts $ sudo update-crypto-policies --set LEGACY crypto-policies-scriptsは、Linuxシステムでセキュリティポリシーを構成するためのスクリプトツールの一部であり、 機密情報の保護や暗号化などのセキュリティに関連する機能を実装するために使用されます。 Linuxシステムの暗号化ポリシーを「LEGACY」レベルに設定するために使用されます。 |
セキュリティレベルが下がることになりますので、Windowsのコマンドプロンプトを使ったssh接続か、rsa-sha2-256,rsa-sha2-512に対応しているツールへの変更を検討した方が良いでしょう。
なお、次期バージョンであるTera Term 4.107では対応するとの情報もあるようです。
1 2 3 4 5 6 |
(おまけ) Windowsのコマンドプロンプトを使ったssh接続 は下記を参考にしてください。 C:\User\$User>cd .ssh C:\User\$User\.ssh>ssh -i "鍵名.pem" ec2-user@xx.xx.xx.xx |
③rsyslogがインストールされていない
Amazon Linux 2023 はデフォルトでrsyslogがインストールされておらず、その結果以下のログが出力されていません。
/var/log/messages
/var/log/secure
/var/log/maillog
/var/log/cron
/var/log/boot.log
しかしデフォルトで journal がインストールされているため、journalctlで各種のログを確認することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
journalのステータス確認 $ systemctl status systemd-journald ● systemd-journald.service - Journal Service Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static) Active: active (running) since Tue 2023-07-25 05:56:30 UTC; 2h 6min ago TriggeredBy: ● systemd-journald-audit.socket ● systemd-journald.socket ● systemd-journald-dev-log.socket Docs: man:systemd-journald.service(8) man:journald.conf(5) Main PID: 766 (systemd-journal) Status: "Processing requests..." Tasks: 1 (limit: 464) Memory: 11.7M CPU: 809ms CGroup: /system.slice/systemd-journald.service mq766 /usr/lib/systemd/systemd-journald Jul 25 05:56:30 ip-172-26-7-92.ap-northeast-1.compute.internal systemd-journald[766]: Journal started |
1 2 3 4 5 6 7 8 9 |
sshd.service のログ $ journalctl -u sshd Jul 25 02:21:53 ip-172-26-7-92.ap-northeast-1.compute.internal systemd[1]: Starting sshd.service - OpenSSH server daemon... Jul 25 02:21:53 ip-172-26-7-92.ap-northeast-1.compute.internal sshd[1552]: Server listening on 0.0.0.0 port 22. Jul 25 02:21:53 ip-172-26-7-92.ap-northeast-1.compute.internal sshd[1552]: Server listening on :: port 22. Jul 25 02:21:53 ip-172-26-7-92.ap-northeast-1.compute.internal systemd[1]: Started sshd.service - OpenSSH server daemon. |
Amazon Linux2 や CentOS7 などからの乗り換えで使い慣れたrsyslogを使いたい場合には下記のコマンドでrsyslogを利用出来るようにしましょう。
1 2 3 4 5 6 7 |
rsyslog をインストールして起動時に有効化 $ sudo dnf -y install rsyslog $ sudo systemctl enable rsyslog $ sudo systemctl restart rsyslog |
④Cronがインストールされていない
Amazon Linux 2023 はデフォルトでCronがインストールされていないため、利用する場合は下記のコマンドでCronを利用出来るようにしましょう。
1 2 3 4 5 6 7 |
Cron をインストールして起動時に有効化 $ sudo dnf -y install cronie-noanacron $ sudo systemctl enable crond $ sudo systemctl restart crond |
Amazon Linux 2023 で LAMP 環境を構築手順
続いて LAMP 環境の構築手順です。
1 2 3 4 5 6 7 |
すべてのソフトウェアパッケージが最新の状態であることを確認するため、インスタンスでソフトウェアの更新を実行します。 -y オプションを指定すると、確認メッセージを表示せずに更新をインストールします。 インストール前に更新を検査する場合は、このオプションを省略できます。 $ sudo dnf update -y |
1 2 3 4 5 |
Apache ウェブサーバーの最新バージョンと Amazon Linux 2023 用の PHP パッケージをインストールします。 $ sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel |
1 2 3 4 5 6 7 8 9 10 11 |
インストール出来るmariadb関連のソフトウェアパッケージ バージョンを確認します。 $ sudo dnf search mariadb (「mariadb」が名前や概要に含まれているパッケージを一覧表示する) mariadb105-server mariadb105.x86_64 mariadb105-common.x86_64 mariadb105-gssapi-server.x86_64 |
1 2 3 4 5 6 7 |
MariaDB ソフトウェアパッケージをインストールします。 dnf install コマンドを使用すると、複数のソフトウェアパッケージと関連するすべての依存関係を同時にインストールできます。 $ sudo dnf install mariadb105-server |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
次のコマンドを使用して、パッケージの現在のバージョンを表示できます。 $ sudo dnf info mariadb105 Last metadata expiration check: 2:56:45 ago on Tue Jul 25 02:22:05 2023. Installed Packages Name : mariadb105 Epoch : 3 Version : 10.5.18 Release : 1.amzn2023.0.1 Architecture : x86_64 Size : 18 M Source : mariadb105-10.5.18-1.amzn2023.0.1.src.rpm Repository : @System From repo : amazonlinux Summary : A very fast and robust SQL database server URL : http://mariadb.org License : GPLv2 and LGPLv2 Description : MariaDB is a community developed fork from MySQL - a multi-user, multi-threaded : SQL database server. It is a client/server implementation consisting of : a server daemon (mariadbd) and many different client programs and libraries. : The base package contains the standard MariaDB/MySQL client programs and : utilities. |
1 2 3 4 5 |
systemctl コマンドを使用して、システムがブートするたびに Apache ウェブサーバーが起動するように設定します。 $ sudo systemctl enable httpd |
1 2 3 4 5 |
httpd が有効であることは、次のコマンドを実行して確認できます。 $ sudo systemctl is-enabled httpd |
1 2 3 4 5 6 7 8 9 10 |
LAMP サーバーをテストするには、Apache ドキュメントルートで PHP ファイルを作成します。 rootユーザになります。 $ sudo su - # echo "<!--?php phpinfo(); ?-->" > /var/www/html/phpinfo.php |
1 2 3 4 5 6 7 |
ウェブブラウザで、作成したファイルの URL を入力します。 http://my.public.dns.amazonaws.com/phpinfo.php 例:http://xx.xx.xx.xx/phpinfo.php |
PHP 情報ページが表示されるはずです。
1 2 3 4 5 6 7 8 9 |
phpinfo.php ファイルを削除します。 # rm /var/www/html/phpinfo.php 一般ユーザに戻ります。 # exit |
1 2 3 4 5 |
MariaDB サーバーを起動します。 $ sudo systemctl start mariadb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
mysql_secure_installation を実行します。 $ sudo mysql_secure_installation プロンプトが表示されたら、ルートアカウントのパスワードを入力します。 現在のルートパスワードを入力します。デフォルトでは、ルートアカウントにはパスワードが設定されていません。Enter キーを押します。 「Y」と入力してパスワードを設定し、安全なパスワードを 2 回入力します。 「Y」と入力して匿名ユーザーアカウントを削除します。 「Y」と入力してリモートルートログインを無効にします。 「Y」と入力してテストデータベースを削除します。 「Y」と入力して権限テーブルを再ロードし、変更を保存します。 |
1 2 3 4 5 |
MariaDB サーバーの自動起動を有効にします。 $ sudo systemctl enable mariadb |
(オプション phpMyAdmin をインストールする)
phpMyAdminは、EC2 インスタンスで MySQL データベースを表示して編集するために使用できる、ウェブベースのデータベース管理ツールです。
phpMyAdmin をインストールして設定するには、以下の手順に従ってください。
1 2 3 4 5 |
phpMyAdmin をインストールするには必要な依存ファイルをインストールします。 $ sudo dnf install php-mbstring php-xml -y |
1 2 3 4 5 |
Apache を再起動します。 $ sudo systemctl restart httpd |
1 2 3 4 5 |
php-fpm を再起動します。 $ sudo systemctl restart php-fpm |
1 2 3 4 5 |
/var/www/html で Apache ドキュメントルートに移動します。 $ cd /var/www/html |
https://www.phpmyadmin.net/downloads で最新の phpMyAdmin リリース用のソースパッケージを選択します。 ファイルディレクトリをインスタンスにダウンロードするには、次の例のようにリンクをコピーして wget コマンドに貼り付けます。
1 2 3 |
$ sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz |
1 2 3 4 5 |
phpMyAdmin フォルダを作成し、次のコマンドでパッケージを展開します。 $ sudo mkdir phpMyAdmin && tar -xvzf phpMyAdmin-5.2.1-all-languages.tar.gz -C phpMyAdmin --strip-components 1 |
1 2 3 4 5 |
phpMyAdmin-5.2.1-all-languages.tar.gz Tarball を削除します。 $ sudo rm phpMyAdmin-5.2.1-all-languages.tar.gz |
1 2 3 4 5 |
(オプション) MySQL サーバーが実行中ではない場合は、今すぐ起動します。 $ sudo systemctl start mariadb |
1 2 3 4 5 |
ウェブブラウザで、phpMyAdmin のインストール URL を入力します。 http://my.public.dns.amazonaws.com/phpMyAdmin |
phpMyAdmin ログインページが表示されます。
前の手順で作成した root ユーザー名と MySQL のルートパスワードを使って、phpMyAdmin インストールにログインします。
ログイン出来ればAmazon Linux 2023 での LAMP環境の構築は完了となります。
Amazon Linux 2023 に触ってみた所感
今年リリースされたOSということもあり、別途リポジトリを追加することなくPHP8.2がインストール出来る部分と、本記事では触れていませんがOSを再起動することなくカーネルのパッチを適用出来るようになったことは、Amazon linux 2023 の強みと言えそうです。
パッケージ管理を楽に行えたamazon-linux-extrasが使えなくなってしまったことは若干残念でした。
同じパッケージ管理がらみとしては yum が dnf に変わっているものの同じ感覚で利用出来るため、こちらについては変更による問題は感じにくいと思います。
今後もAmazon Linux 2023 関連の記事を掲載していく予定です。
それでは良いLinuxライフを!