Amazon Linux 2023 （Amazon Linux 2 との比較）

# 概要　

Amazon Linux 2023 と Amazon Linux 2 との比較。要点だけを纏めてみました。

# 比較

## サポート

- 5 年間

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/release-cadence.html

## 命名とバージョン管理の変更

- AL2023 は、プラットフォーム識別のために Amazon Linux 2 がサポートする同じメカニズムをサポート。
- AL2023 では、プラットフォーム識別用の新しいファイルも導入 ↓。

```
ls -l /etc/amazon-linux-release
lrwxrwxrwx. 1 root root 25 Mar 17 20:17 /etc/amazon-linux-release -> ../usr/lib/system-release

ls -l /etc/amazon-linux-release-cpe
lrwxrwxrwx. 1 root root 29 Mar 17 20:17 /etc/amazon-linux-release-cpe -> ../usr/lib/system-release-cpe
```

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/naming-and-versioning.html

## 最適化

- AL2023 は起動時間を最適化し、インスタンスの起動からワークロードの実行までの時間を短縮。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/performance-optimizations.html

## セキュリティアップデート

### SELinux

- デフォルトでは、AL2023 の SELinux の permissive モードが有効。

```
sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33
```

- Amazon Linux 2 では無効。

https://docs.aws.amazon.com/linux/al2023/ug/selinux-modes.html

### OpenSSL 3

- AL2023 は、OpenSSL 3 暗号化ツールキットを搭載。
- デフォルトで、Amazon Linux 2 は OpenSSL 1.0.2 が搭載。

https://docs.aws.amazon.com/linux/al2023/ug/security-features.html

### IMDSv2

- デフォルトでは、AL2023 AMI で起動したインスタンスは IMDSv2 のみを使用する必要があるようになっている。

## 安定性のための確定的なアップグレード

- バージョン管理されたリポジトリにより特定のバージョンにロックすることができ、アップデートのタイミングを管理できるようになっている。

https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html#control-package-updates

## Fedora上に構築

- AL2023 は Fedora に基づいているが、Fedora の特定のリリースと直接互換性はありません。Fedora を含む複数のアップストリーム ソースで構築されました。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/relationship-to-fedora.html

## AMI ルート ファイルシステム

- AL2023 AMI と Amazon Linux 2 は同じく、ルートファイルシステムに XFS ファイルシステムを利用。

## ネットワークシステムサービス

- AL2023 では `systemd-networkd` システムサービスがネットワークインターフェイスを管理します。

```
systemctl status systemd-networkd.service
● systemd-networkd.service - Network Configuration
     Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled;>
     Active: active (running) since Wed 2023-03-29 09:19:53 UTC; 45min ago
TriggeredBy: ● systemd-networkd.socket
       Docs: man:systemd-networkd.service(8)
   Main PID: 1672 (systemd-network)
     Status: "Processing requests..."
      Tasks: 1 (limit: 1112)
     Memory: 3.2M
        CPU: 53ms
     CGroup: /system.slice/systemd-networkd.service
             └─1672 /usr/lib/systemd/systemd-networkd

Mar 29 09:19:53 localhost systemd[1]: Started systemd-networkd.service - Networ>
Mar 29 09:19:55 localhost systemd-networkd[1672]: enX0: Configuring with /usr/l>
Mar 29 09:19:55 localhost systemd-networkd[1672]: enX0: Link UP
Mar 29 09:19:55 localhost systemd-networkd[1672]: enX0: Gained carrier
Mar 29 09:19:55 localhost systemd-networkd[1672]: enX0: DHCPv4 address 10.0.0.1>
Mar 29 09:19:55 localhost systemd-networkd[1672]: enX0: Gained IPv6LL
Mar 29 09:19:56 localhost systemd-networkd[1672]: enX0: Reconfiguring with /run>
Mar 29 09:19:56 localhost systemd-networkd[1672]: enX0: DHCP lease lost
Mar 29 09:19:56 localhost systemd-networkd[1672]: enX0: DHCPv6 lease lost
Mar 29 09:19:56 localhost systemd-networkd[1672]: enX0: DHCPv4 address 10.0.0.1>
```

- Linux2では `ISC dhclient` 又は `dhclient` が使用されていました。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/networking-service.html

## glibc、gcc、および binutils のパッケージ

- AL2023 には、Amazon Linux 2 と同じコアパッケージが多数含まれていますが、以下のコアパッケージが更新されています。

|パッケージ名|Amazon Linux 2|AL2023|
|---|---|---|
|glibc|2.26|2.34|
|gcc|7.3|11.3|
|binutils|2.29|2.39|

## パッケージマネージャー

- AL2023 のデフォルトのソフトウェアパッケージ管理ツールは `dnf` です。`dnf` は、Amazon Linux 2 のパッケージ管理ツールである `yum` の後継です。

- AL2023 では、`yum` コマンドはまだ利用可能ですが、`dnf` コマンドへのポインタとして利用可能です。

```
sudo yum update
Amazon Linux 2023 repository                     18 MB/s |  12 MB     00:00    
Amazon Linux 2023 Kernel Livepatch repository   695 kB/s | 155 kB     00:00    
Dependencies resolved.
Nothing to do.
Complete!

sudo dnf update
Last metadata expiration check: 0:07:06 ago on Wed Mar 29 10:11:52 2023.
Dependencies resolved.
Nothing to do.
Complete!
```

## SSH サーバーのデフォルト構成の変更

- AL2023 AMI では、リリース時に生成する sshd ホスト鍵の種類を変更。クライアントは、`rsa-sha2-256` `rsa-sha2-512` プロトコル `ed25519` `ssh-ed25519` 　などをサポートする必要があります。デフォルトでは、`ssh-rsa`署名は無効です。
- デフォルトの `sshd_config` ファイルは、 `UseDNS=no`。これは、DNS障害の際にインスタンスとの ssh セッションを確立する機能がブロックされるリスク低下を目的としています。`authorized_keys` ファイルの`「from=hostname.domain,hostname.domain」`行エントリが名前解決されなくなってしまうので、`hostname.domain`の値をIP アドレスに変換する対応が必要です。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/ssh-host-keys-disabled.html

## Enterprise Linux (EPEL) 用の追加パッケージ

- EPEL は、Fedora コミュニティのプロジェクトであり、エンタープライズ レベルの Linux OS のパッケージを多数作成することを目的としています。
- Amazon Linux2 では、CentOS 7 とかなりの互換性があり、多くの EPEL7 パッケージが Amazon Linux 2 で動作しています。
- ただし、AL2023 では、EPEL または EPEL のようなリポジトリのサポートは対象外です。

## cloud-init の使用

- AL2023 では、`cloud-init` がパッケージリポジトリを管理します。
- 以前の Amazon Linux では `cloud-init` のデフォルト設定だと起動時にセキュリティアップデートがインストールされました。AL2023 ではこのような挙動はせず、同じ　AMI　から作成された　EC2インスタンスのパッケージは同一のものとなり、ワークロード内でパッケージバージョンを揃えることが容易になります。

```
# 利用可能なパッケージリポジトリのバージョン確認
sudo dnf check-release-update

# パッケージリポジトリのバージョンを指定してアップデート
sudo dnf --releasever=<version> update
```

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/managing-repos-os-updates.html#dnf-support-info-plugin