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
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では対応するとの情報もあるようです。
( おまけ) 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
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を利用出来るようにしましょう。
rsyslog をインストールして起動時に有効化
$ sudo dnf -y install rsyslog
$ sudo systemctl enable rsyslog
$ sudo systemctl restart rsyslog
④Cronがインストールされていない
Amazon Linux 2023 はデフォルトでCronがインストールされていないため、利用する場合は下記のコマンドでCronを利用出来るようにしましょう。
Cron をインストールして起動時に有効化
$ sudo dnf -y install cronie -noanacron
$ sudo systemctl enable crond
$ sudo systemctl restart crond
Amazon Linux 2023 で LAMP 環境を構築手順
続いて LAMP 環境の構築手順です。
すべてのソフトウェアパッケージが最新の状態であることを確認するため、インスタンスでソフトウェアの更新を実行します。
-y オプションを指定すると、確認メッセージを表示せずに更新をインストールします。
インストール前に更新を検査する場合は、このオプションを省略できます。
$ sudo dnf update -y
Apache ウェブサーバーの最新バージョンと Amazon Linux 2023 用の PHP パッケージをインストールします。
$ sudo dnf install -y httpd wget php -fpm php -mysqli php -json php php -devel
インストール出来るmariadb 関連のソフトウェアパッケージ バージョンを確認します。
$ sudo dnf search mariadb
(「mariadb 」が名前や概要に含まれているパッケージを一覧表示する)
mariadb105 -server
mariadb105 . x86_64
mariadb105 -common . x86_64
mariadb105 -gssapi -server . x86_64
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 .
systemctl コマンドを使用して、システムがブートするたびに Apache ウェブサーバーが起動するように設定します。
$ sudo systemctl enable httpd
httpd が有効であることは、次のコマンドを実行して確認できます。
$ sudo systemctl is -enabled httpd
LAMP サーバーをテストするには、Apache ドキュメントルートで PHP ファイルを作成します。
root ユーザになります。
$ sudo su -
# echo "<!--?php phpinfo(); ?-->" > /var/www/html/phpinfo.php
ウェブブラウザで、作成したファイルの URL を入力します。
http : //my.public.dns.amazonaws.com/phpinfo.php
例:http : //xx.xx.xx.xx/phpinfo.php
PHP 情報ページが表示されるはずです。
phpinfo . php ファイルを削除します。
# rm /var/www/html/phpinfo.php
一般ユーザに戻ります。
# exit
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 」と入力して権限テーブルを再ロードし、変更を保存します。
MariaDB サーバーの自動起動を有効にします。
$ sudo systemctl enable mariadb
(オプション phpMyAdmin をインストールする)
phpMyAdminは、EC2 インスタンスで MySQL データベースを表示して編集するために使用できる、ウェブベースのデータベース管理ツールです。
phpMyAdmin をインストールして設定するには、以下の手順に従ってください。
phpMyAdmin をインストールするには必要な依存ファイルをインストールします。
$ sudo dnf install php -mbstring php -xml -y
Apache を再起動します。
$ sudo systemctl restart httpd
php -fpm を再起動します。
$ sudo systemctl restart php -fpm
/var /www /html で Apache ドキュメントルートに移動します。
$ cd /var /www /html
https://www.phpmyadmin.net/downloads で最新の phpMyAdmin リリース用のソースパッケージを選択します。 ファイルディレクトリをインスタンスにダウンロードするには、次の例のようにリンクをコピーして wget コマンドに貼り付けます。
$ sudo wget https : //files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
phpMyAdmin フォルダを作成し、次のコマンドでパッケージを展開します。
$ sudo mkdir phpMyAdmin & & tar -xvzf phpMyAdmin -5.2.1 -all -languages . tar . gz -C phpMyAdmin --strip -components 1
phpMyAdmin -5.2.1 -all -languages . tar . gz Tarball を削除します。
$ sudo rm phpMyAdmin -5.2.1 -all -languages . tar . gz
( オプション) MySQL サーバーが実行中ではない場合は、今すぐ起動します。
$ sudo systemctl start mariadb
ウェブブラウザで、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ライフを!