

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AL2023 での Linux カーネルの更新
<a name="kernel-update"></a>

**Topics**
+ [AL2023 での Linux カーネルバージョン](#al2023-kernels)
+ [AL2023 を新しいカーネルバージョンに更新する](#kernelup)
+ [AL2023 カーネル - よくある質問](#al2023-kernel-faq)

## AL2023 での Linux カーネルバージョン
<a name="al2023-kernels"></a>

AL2023 では、Linux カーネルの長期サポート (LTS) バージョンに基づいて新しいカーネルバージョンが定期的に提供されます。

AL2023 は、もともとカーネル 6.1 で 2023 年 3 月にリリースされました。

2025 年 4 月、AL2023 に Linux カーネル 6.12 のサポートが追加されました。このカーネルでは、EEVDF スケジューリング、FUSE パススルー I/O サポート、新しい Futex API、拡張 eBPF などの新機能が追加されました。また、ユーザースペースのプログラムが、ランタイムにユーザースペースのシャドウスタックとメモリシーリングを用いて自身を保護することも可能になりました。

2026 年 3 月、AL2023 は Linux カーネル 6.18 のサポートを追加しました。更新されたカーネル 6.18 では、プロセッサのサポート、仮想化、セキュリティ、パフォーマンスがさらに向上しました。注目すべき機能には、アーキテクチャ間の IOMMU 機能の改善や、CPU 脆弱性の軽減を管理するための攻撃ベクトル制御などがあります。パフォーマンスの向上は、より高速な FSCRYPT オペレーションによる暗号化の最適化、メモリ管理の改善、新しいオプトイン、CPU ごとの配列ベースのキャッシュレイヤーとしての Sheaves の導入によって実現されます。

## AL2023 を新しいカーネルバージョンに更新する
<a name="kernelup"></a>

2026 年 6 月以降、AL2023 はデフォルトのカーネルを毎年更新します。AMIs の[`al2023-ami-kernel-default`](ec2.md#launch-via-aws-cli)セットは最新の LTS カーネルに更新されるため、新しく起動されたインスタンスは自動的に新しいカーネルバージョンになります。これは、最新のセキュリティ修正とパフォーマンスの向上を最新の状態に保つ最も簡単な方法です。

特定のカーネルバージョンを選択する場合は、目的のカーネルがプリインストールされた AMI を選択するか、既存の AL2023 EC2 インスタンスをアップグレードすることで、カーネル 6.12 または 6.18 で AL2023 を実行できます。

### 特定のカーネルバージョンで AL2023 AMI を実行する
<a name="kernelup-ami"></a>

AWS コンソールを介して、または特定のパラメータを SSM にクエリすることで、特定のカーネルがプリインストールされた AL2023 AMI を実行するように選択できます。クエリを実行する SSM キーは `/aws/service/ami-amazon-linux-latest/` で始まり、その後に次のいずれかが続きます。

#### カーネル 6.12 の場合
<a name="kernel6.12-ami"></a>
+ arm64 アーキテクチャの `al2023-ami-kernel-6.12-arm64`
+ arm64 アーキテクチャ用 (最小 AMI) の `al2023-ami-minimal-kernel-6.12-arm64`
+ x86\$164 アーキテクチャの `al2023-ami-kernel-6.12-x86_64`
+ x86\$164 アーキテクチャ (最小 AMI) の `al2023-ami-minimal-kernel-6.12-x86_64`

#### カーネル 6.18 の場合
<a name="kernel6.18-ami"></a>
+ arm64 アーキテクチャの `al2023-ami-kernel-6.18-arm64`
+ arm64 アーキテクチャ用 (最小 AMI) の `al2023-ami-minimal-kernel-6.18-arm64`
+ x86\$164 アーキテクチャの `al2023-ami-kernel-6.18-x86_64`
+ x86\$164 アーキテクチャ (最小 AMI) の `al2023-ami-minimal-kernel-6.18-x86_64`

AL2023 AMI の選択の詳細については、「[SSM パラメータと を使用して AL2023 を起動する AWS CLI](ec2.md#launch-via-aws-cli)」を参照してください。

### AL2023 インスタンスを新しいカーネルに更新する
<a name="kernel-ipu"></a>

以下の手順に従って、実行中の AL2023 インスタンスをカーネル 6.12 または 6.18 にインプレースアップグレードできます。

1. 現在のカーネルを検出し、ターゲットバージョンを設定します。

   ```
   # Automatically detect current kernel version BEFORE upgrade
   $ CURRENT_KERNEL=$(uname -r)
   $ SOURCE_VERSION=""
   
   $ if [[ $CURRENT_KERNEL == *"6.12"* ]]; then
       SOURCE_VERSION="6.12"
   else
       SOURCE_VERSION=""
   fi
   
   # Save the source version to a persistent location for use after reboot
   $ echo "${SOURCE_VERSION}" | sudo tee /var/lib/source_kernel_version > /dev/null
   ```

   ```
   # Set your target version (change this to your desired kernel: 6.12 or 6.18)
   $ TARGET_VERSION="6.12"
   ```

   ```
   $ echo "Current kernel: ${SOURCE_VERSION:-6.1}"
   $ echo "Upgrading to kernel ${TARGET_VERSION}"
   ```

1. ターゲットカーネルパッケージをインストールします。

   ```
   $ sudo dnf install -y kernel${TARGET_VERSION}
   ```

1. ターゲットカーネルパッケージの最新バージョンを取得します。

   ```
   $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1) 
   ```

1. 新しいカーネルをデフォルトのカーネルにします。

   ```
   $ sudo grubby --set-default "/boot/vmlinuz-$version" 
   ```

1. システムを再起動します。

   ```
   $ sudo reboot 
   ```

1. 前のカーネルをアンインストールします。

   ```
   # Read the source kernel version from the saved file
   $ SOURCE_VERSION=$(sudo cat /var/lib/source_kernel_version)
   
   # Uninstall the source kernel
   $ sudo dnf remove -y kernel${SOURCE_VERSION}
   ```

1. 追加のカーネルパッケージをターゲットカーネルに相当するものに置き換えます。

   ```
   # Set your target version (change this to your desired kernel: 6.12 or 6.18)
   $ TARGET_VERSION="6.12"
   ```

   ```
   $ declare -A pkgs
   $ pkgs=(
   [bpftool${SOURCE_VERSION}]=bpftool${TARGET_VERSION}
   [kernel${SOURCE_VERSION}-debuginfo]=kernel${TARGET_VERSION}-debuginfo
   [kernel${SOURCE_VERSION}-debuginfo-common]=kernel${TARGET_VERSION}-debuginfo-common
   [kernel${SOURCE_VERSION}-headers]=kernel${TARGET_VERSION}-headers
   [kernel${SOURCE_VERSION}-libbpf]=kernel${TARGET_VERSION}-libbpf
   [kernel${SOURCE_VERSION}-libbpf-devel]=kernel${TARGET_VERSION}-libbpf-devel
   [kernel${SOURCE_VERSION}-libbpf-static]=kernel${TARGET_VERSION}-libbpf-static
   [kernel${SOURCE_VERSION}-modules-extra-common]=kernel${TARGET_VERSION}-modules-extra-common
   [kernel${SOURCE_VERSION}-tools]=kernel${TARGET_VERSION}-tools
   [kernel${SOURCE_VERSION}-tools-devel]=kernel${TARGET_VERSION}-tools-devel
   [perf${SOURCE_VERSION}]=perf${TARGET_VERSION}
   [python3-perf${SOURCE_VERSION}]=python3-perf${TARGET_VERSION}
   )
   $ for pkg in "${!pkgs[@]}"; do 
     rpm -q $pkg && sudo dnf -y swap $pkg "${pkgs["$pkg"]}" ;
   done
   ```

1. (オプション) 以前のカーネルバージョンの kernel-devel をアンインストールします。

   ```
   $ rpm -q kernel${SOURCE_VERSION}-devel && sudo dnf remove -y kernel${SOURCE_VERSION}-devel 
   ```

### 以前のカーネルバージョンへのダウングレード
<a name="kernel-downgrade"></a>

任意の時点で以前のカーネルバージョンにダウングレードする必要がある場合は、次の手順を実行します。

1. 現在のカーネルを検出し、ターゲットバージョンを設定します。

   ```
   # Automatically detect current kernel version BEFORE downgrade
   $ CURRENT_KERNEL=$(uname -r)
   $ SOURCE_VERSION=""
   
   $ if [[ $CURRENT_KERNEL == *"6.12"* ]]; then
       SOURCE_VERSION="6.12"
   elif [[ $CURRENT_KERNEL == *"6.18"* ]]; then
       SOURCE_VERSION="6.18"
   fi
   
   # Save the source version to a persistent location for use after reboot
   $ echo "${SOURCE_VERSION}" | sudo tee /var/lib/source_kernel_version > /dev/null
   ```

   ```
   # Set your target version (change this to your desired kernel)
   # Use "" for kernel 6.1, "6.12" for kernel 6.12
   $ TARGET_VERSION=""
   ```

   ```
   $ echo "Downgrading from kernel ${SOURCE_VERSION:-6.1} to kernel ${TARGET_VERSION:-6.1}"
   ```

1. 追加のカーネルパッケージをターゲットカーネルに相当するものに置き換えます。

   ```
   $ declare -A pkgs
   $ pkgs=(
   [bpftool${TARGET_VERSION}]=bpftool${SOURCE_VERSION}
   [kernel${TARGET_VERSION}-debuginfo]=kernel${SOURCE_VERSION}-debuginfo
   [kernel${TARGET_VERSION}-debuginfo-common]=kernel${SOURCE_VERSION}-debuginfo-common
   [kernel${TARGET_VERSION}-headers]=kernel${SOURCE_VERSION}-headers
   [kernel${TARGET_VERSION}-libbpf]=kernel${SOURCE_VERSION}-libbpf
   [kernel${TARGET_VERSION}-libbpf-devel]=kernel${SOURCE_VERSION}-libbpf-devel
   [kernel${TARGET_VERSION}-libbpf-static]=kernel${SOURCE_VERSION}-libbpf-static
   [kernel${TARGET_VERSION}-modules-extra-common]=kernel${SOURCE_VERSION}-modules-extra-common
   [kernel${TARGET_VERSION}-tools]=kernel${SOURCE_VERSION}-tools
   [kernel${TARGET_VERSION}-tools-devel]=kernel${SOURCE_VERSION}-tools-devel
   [perf${TARGET_VERSION}]=perf${SOURCE_VERSION}
   [python3-perf${TARGET_VERSION}]=python3-perf${SOURCE_VERSION}
   )
   $ for pkg in "${!pkgs[@]}"; do 
     rpm -q "${pkgs["$pkg"]}" && sudo dnf -y swap "${pkgs["$pkg"]}" $pkg ;
   done
   ```

1. ターゲットカーネルパッケージをインストールします。

   ```
   $ sudo dnf install -y kernel${TARGET_VERSION}
   ```

1. ターゲットカーネルパッケージの最新バージョンを取得します。

   ```
   $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1) 
   ```

1. ターゲットカーネルをデフォルトカーネルにします。

   ```
   $ sudo grubby --set-default "/boot/vmlinuz-$version" 
   ```

1. システムを再起動します。

   ```
   $ sudo reboot 
   ```

1. ソースカーネルをアンインストールします。

   ```
   # Read the source kernel version from the saved file
   $ SOURCE_VERSION=$(sudo cat /var/lib/source_kernel_version)
   
   # Uninstall the source kernel
   $ sudo dnf remove -y kernel${SOURCE_VERSION}
   ```

## AL2023 カーネル - よくある質問
<a name="al2023-kernel-faq"></a>

### 1. カーネルの更新後には再起動が必要ですか?
<a name="w2aac37c19b9b3"></a>

実行中のカーネルに変更を加えた場合は必ず再起動が必要です。

### 2. 複数のインスタンスでカーネルを最新の状態に保つにはどうすればよいですか?
<a name="w2aac37c19b9b5"></a>

Amazon Linux には、インスタンスのフリートを管理する機能はありません。[AWS Systems Manager](https://aws.amazon.com/systems-manager/) などのツールを使用して、大規模なフリートにパッチを適用することをお勧めします。

### 3. 現在実行しているカーネルのバージョンを確認するにはどうすればよいですか?
<a name="w2aac37c19b9b7"></a>

AL2023 インスタンスで次のコマンドを実行します。

```
$ uname -r 
```

### 4. AL2023 ではどのカーネルを使用することをお勧めしますか?
<a name="w2aac37c19b9b9"></a>

最新の AL2023 カーネル 6.18 にアップグレードすることをお勧めしますが、他のすべての AL2023 カーネルは引き続きサポートされています。お客様は、アップグレードする前にワークロードをテストすることをお勧めします。

### 5. 既存のアプリケーションは AL2023 カーネルで動作しますか?
<a name="w2aac37c19b9c11"></a>

AL2023 は、カーネル 6.1 と同じ新しいカーネル (6.12 または 6.18) をサポートしています。アプリケーションが機能し、内部で改善が行われています。いずれの場合も、新しいカーネルに切り替える前に、特定のワークロードをテストする必要があります。

### 6. カーネル 6.12 または 6.18 のカーネルヘッダー、開発パッケージ、および追加モジュールをインストールするにはどうすればよいですか?
<a name="w2aac37c19b9c13"></a>

以下を実行してください。

```
$ version=$(uname -r | grep -oP '^\d+\.\d+')
$ sudo dnf install -y kernel${version}-modules-extra-$(uname -r) kernel${version}-headers-$(uname -r) kernel${version}-devel-$(uname -r)
```

### 7. カーネル 6.12 と 6.18 はどのくらいの期間サポートされますか?
<a name="w2aac37c19b9c15"></a>

カーネル 6.12 と 6.18 は、2029-06-30 の Amazon Linux 2023 の予定終了までサポートされます。