

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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 개선 등 새로운 기능이 추가되었습니다. 또한 커널 6.12를 사용하면 사용자 공간 프로그램이 사용자 공간 섀도우 스택 및 메모리 밀봉을 사용하여 런타임 시 자체 보안을 유지할 수 있습니다.

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. (선택 사항) 이전 커널 버전의 커널 개발 제거:

   ```
   $ 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 커널은 여전히 지원되지만 최신 AL2023 커널 6.18로 업그레이드하는 것이 좋습니다. 고객은 업그레이드하기 전에 워크로드를 테스트하는 것이 좋습니다.

### 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은 Amazon Linux 2023의 계획된 수명 종료인 2029-06-30까지 지원됩니다.