翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AL2023 での Linux カーネルの更新
AL2023 での Linux カーネルバージョン
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 を新しいカーネルバージョンに更新する
2026 年 6 月以降、AL2023 はデフォルトのカーネルを毎年更新します。AMIs のal2023-ami-kernel-defaultセットは最新の LTS カーネルに更新されるため、新しく起動されたインスタンスは自動的に新しいカーネルバージョンになります。これは、最新のセキュリティ修正とパフォーマンスの向上を最新の状態に保つ最も簡単な方法です。
特定のカーネルバージョンを選択する場合は、目的のカーネルがプリインストールされた AMI を選択するか、既存の AL2023 EC2 インスタンスをアップグレードすることで、カーネル 6.12 または 6.18 で AL2023 を実行できます。
特定のカーネルバージョンで AL2023 AMI を実行する
AWS コンソールを介して、または特定のパラメータを SSM にクエリすることで、特定のカーネルがプリインストールされた AL2023 AMI を実行するように選択できます。クエリを実行する SSM キーは /aws/service/ami-amazon-linux-latest/ で始まり、その後に次のいずれかが続きます。
カーネル 6.12 の場合
-
arm64 アーキテクチャの
al2023-ami-kernel-6.12-arm64 -
arm64 アーキテクチャ用 (最小 AMI) の
al2023-ami-minimal-kernel-6.12-arm64 -
x86_64 アーキテクチャの
al2023-ami-kernel-6.12-x86_64 -
x86_64 アーキテクチャ (最小 AMI) の
al2023-ami-minimal-kernel-6.12-x86_64
カーネル 6.18 の場合
-
arm64 アーキテクチャの
al2023-ami-kernel-6.18-arm64 -
arm64 アーキテクチャ用 (最小 AMI) の
al2023-ami-minimal-kernel-6.18-arm64 -
x86_64 アーキテクチャの
al2023-ami-kernel-6.18-x86_64 -
x86_64 アーキテクチャ (最小 AMI) の
al2023-ami-minimal-kernel-6.18-x86_64
AL2023 AMI の選択の詳細については、「SSM パラメータと を使用して AL2023 を起動する AWS CLI」を参照してください。
AL2023 インスタンスを新しいカーネルに更新する
以下の手順に従って、実行中の AL2023 インスタンスをカーネル 6.12 または 6.18 にインプレースアップグレードできます。
現在のカーネルを検出し、ターゲットバージョンを設定します。
# Automatically detect current kernel version BEFORE upgrade$CURRENT_KERNEL=$(uname -r)$SOURCE_VERSION=""$if [[ $CURRENT_KERNEL == *"6.12"* ]]; thenSOURCE_VERSION="6.12"elseSOURCE_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}"ターゲットカーネルパッケージをインストールします。
$sudo dnf install -y kernel${TARGET_VERSION}ターゲットカーネルパッケージの最新バージョンを取得します。
$version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1)新しいカーネルをデフォルトのカーネルにします。
$sudo grubby --set-default "/boot/vmlinuz-$version"システムを再起動します。
$sudo reboot前のカーネルをアンインストールします。
# 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}追加のカーネルパッケージをターゲットカーネルに相当するものに置き換えます。
# 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[@]}"; dorpm -q $pkg && sudo dnf -y swap $pkg "${pkgs["$pkg"]}" ;done(オプション) 以前のカーネルバージョンの kernel-devel をアンインストールします。
$rpm -q kernel${SOURCE_VERSION}-devel && sudo dnf remove -y kernel${SOURCE_VERSION}-devel
以前のカーネルバージョンへのダウングレード
任意の時点で以前のカーネルバージョンにダウングレードする必要がある場合は、次の手順を実行します。
現在のカーネルを検出し、ターゲットバージョンを設定します。
# Automatically detect current kernel version BEFORE downgrade$CURRENT_KERNEL=$(uname -r)$SOURCE_VERSION=""$if [[ $CURRENT_KERNEL == *"6.12"* ]]; thenSOURCE_VERSION="6.12"elif [[ $CURRENT_KERNEL == *"6.18"* ]]; thenSOURCE_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}"追加のカーネルパッケージをターゲットカーネルに相当するものに置き換えます。
$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[@]}"; dorpm -q "${pkgs["$pkg"]}" && sudo dnf -y swap "${pkgs["$pkg"]}" $pkg ;doneターゲットカーネルパッケージをインストールします。
$sudo dnf install -y kernel${TARGET_VERSION}ターゲットカーネルパッケージの最新バージョンを取得します。
$version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1)ターゲットカーネルをデフォルトカーネルにします。
$sudo grubby --set-default "/boot/vmlinuz-$version"システムを再起動します。
$sudo rebootソースカーネルをアンインストールします。
# 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 カーネル - よくある質問
1. カーネルの更新後には再起動が必要ですか?
実行中のカーネルに変更を加えた場合は必ず再起動が必要です。
2. 複数のインスタンスでカーネルを最新の状態に保つにはどうすればよいですか?
Amazon Linux には、インスタンスのフリートを管理する機能はありません。AWS Systems Manager
3. 現在実行しているカーネルのバージョンを確認するにはどうすればよいですか?
AL2023 インスタンスで次のコマンドを実行します。
$uname -r
4. AL2023 ではどのカーネルを使用することをお勧めしますか?
最新の AL2023 カーネル 6.18 にアップグレードすることをお勧めしますが、他のすべての AL2023 カーネルは引き続きサポートされています。お客様は、アップグレードする前にワークロードをテストすることをお勧めします。
5. 既存のアプリケーションは AL2023 カーネルで動作しますか?
AL2023 は、カーネル 6.1 と同じ新しいカーネル (6.12 または 6.18) をサポートしています。アプリケーションが機能し、内部で改善が行われています。いずれの場合も、新しいカーネルに切り替える前に、特定のワークロードをテストする必要があります。
6. カーネル 6.12 または 6.18 のカーネルヘッダー、開発パッケージ、および追加モジュールをインストールするにはどうすればよいですか?
以下を実行してください。
$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 はどのくらいの期間サポートされますか?
カーネル 6.12 と 6.18 は、2029-06-30 の Amazon Linux 2023 の予定終了までサポートされます。