[AWS]AmazonLinux2023とRHEL9.3を比較してみた

2024/05/24

 EC2を展開する際に、「AmazonLinux2023」、「Redhat」をどれにするかを悩む人多いではないでしょうか、特にいままで「Redhat」「CentOS」などに馴染んできたエンジニアにとって、AmazonLinuxはどのようなものなのか、Redhatとどのような違いあるのか、気になりませんか?
 今回は、その違いをある程度本記事にてまとめていきたいと思います。

操作コマンド

 デフォルトで入っているコマンドと入っていないコマンドの違いを「compgen」コマンドを利用すれば、一発リストとして表示されるので、非常に便利ですね。

ものすごいの数が出てきますが、普段あまり利用しないコマンドはほとんどかと思います。その中で、運用の中でよく使われるコマンドをいくつか列挙してみました。

コマンドAmazon Linux 2023Redhat Enterprise Linux 9.3パッケージ
ifconfigありなしnet-tools
routeありなしnet-tools
netstatありなしnet-tools
sysstatありなしsysstat
telnetなしなしtelnet
wgetありなしwget
zip,unzipありなしzip
tracerouteありなしtraceroute
sarありなしsysstat

起動サービス

 OS起動時に、デフォルトとして自動的に立ち上げるサービスの違いについては

AmazonLinux2023のほうは起動されるサービスはやや少なかった。
ネットワークの設定を管理するデーモン「systemd-networkd.service」がRedhatのところで起動ておらず、デーモンにより管理されていないのが分かります。一方、「rsyslog.service」はAmazonLinux2023のほうでは、サービスとして立ち上がっていなく、いわゆるデフォルトの状態だと、「/var/log/message」ログファイルに、ログ生成されないとのことのため、今までの運用上相当ショック受けるだろう。AmazonLinux2023を使うにあたり、ぜひ入れたい項目であろう。

インストールパッケージ

 デフォルトでは、パッケージの種類をどのくらい入っているかを「dnf list installed」コマンドにて確認することは可能となります。

使われるレポジトリの違いによる多少バージョンは異なるが、ここの一覧の中で、AmazonLinux2023のほうでは、「crond」サービスが入っていません。乗り換え先として選定した場合、インパクトとしてかなり大きいのではないでしょうか。使う場合は、あとから別途手動でインストールする必要がある。

設定ファイル

 AmazonLinux2023とRedhat Enterprise Linux 9.3には、設定ファイルのところ、いくつか相違点があり、それぞれ考察してまいります。
SElinux
 AmazonLinux2023の場合、デフォルトは「permissive」モードとして稼動
 Redhat Enterprise Linux 9.3の場合、デフォルトは「enforcing」モードとして稼動

permissive/enforcingの違いについて
permissiveは「ポリシーに違反するアクセスに対し、ログに書き出して許可する」
enforcingは「ポリシーに違反するアクセスに対し、ログに書き出して拒否する」です。

ネットワークインターフェース
 AmazonLinux2023が使っているインターフェースは「enX0」に対し、Redhat Enterprise Linux 9.3が使っているインターフェースは従来の通り「eth0」となっているようです。

 eth0,eth1,ethxxなどは、ethXは通常オンボードのインターフェースとなる
 enp3,ens1など英数字から構成されるenXは通常アドオンのインターフェースとなる。
時刻同期設定
 AmazonLinux2023もRedhat Enterprise Linux 9.3も、時刻同期の設定については、どれも「chronyd.conf」を使っているが、AmazonLinux2023のほうでは、明示的にIPの指定はされず、「AMAZON NTP POOL」の値が使われたようです。

 軽微な設定違いによる、「chronyc sources」の結果も違っていた

systemdフォルダ配下
 いままであまり馴染みのないファイルがAmazonLinux2023のところで、いくつか配置されていた模様


ほかにも、いろいろ変わったところはあると思いますが、上記はあくまでも一例として紹介しました。