

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

# AL2023 업데이트
<a name="updating"></a>

보안 업데이트와 새로운 기능을 활용하려면 AL2023 릴리스를 최신 상태로 유지하는 것이 중요합니다. AL2023을 사용하면 [AL2023에서 버전 관리 리포지토리를 통한 결정적 업그레이드](deterministic-upgrades.md)을 통해 환경 전반에서 패키지 버전과 업데이트를 일치시킬 수 있습니다.

**주의**  
 `dnf --releasever=latest update` 실행은 모범 사례가 아니며 프로덕션 환경에서 OS 업데이트를 처음 테스트하게 될 가능성이 높습니다.  
 `latest` 사용 대신 특정 AL2023 릴리스 버전을 사용합니다. 이렇게 하면 이전에 테스트한 것과 동일한 변경 사항을 프로덕션 인스턴스에 배포할 수 있습니다. 예를 들어 `dnf --releasever=2023.10.20260325 update`는 항상 2023.10.20260325 릴리스로 업데이트됩니다.  
 자세한 내용은 [AL2023 사용 설명서](https://docs.aws.amazon.com/linux/al2023/ug/)의 [AL2023 업데이트](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) 섹션을 참조하세요.

**Topics**
+ [

# 업데이트를 안전하게 배포하기 위한 모범 사례
](updating-best-practice.md)
+ [

# 새 업데이트 알림 받기
](receive-update-notification.md)
+ [

# AL2023에서 버전 관리 리포지토리를 통한 결정적 업그레이드
](deterministic-upgrades.md)
+ [

# AL2023에서 패키지 및 운영 체제 업데이트 관리
](managing-repos-os-updates.md)
+ [

# AL2023의 커널 라이브 패치
](live-patching.md)
+ [

# AL2023에서 Linux 커널 업데이트
](kernel-update.md)

# 업데이트를 안전하게 배포하기 위한 모범 사례
<a name="updating-best-practice"></a>

 Amazon Linux 2023(AL2023)에는 운영 체제에 업데이트를 안전하게 배포하고 업데이트 간 변경 사항을 파악하고 필요한 경우 이전 버전으로 쉽게 되돌릴 수 있도록 설계된 여러 기능이 있습니다. 이 섹션에서는 10년이 넘는 내부 및 외부 Amazon Linux 사용 AWS 에서 얻은 교훈을 살펴봅니다.

**주의**  
 `dnf --releasever=latest update` 실행은 모범 사례가 아니며 프로덕션 환경에서 OS 업데이트를 처음 테스트하게 될 가능성이 높습니다.  
 `latest` 사용 대신 특정 AL2023 릴리스 버전을 사용합니다. 이렇게 하면 이전에 테스트한 것과 동일한 변경 사항을 프로덕션 인스턴스에 배포할 수 있습니다. 예를 들어 `dnf --releasever=2023.10.20260325 update`는 항상 2023.10.20260325 릴리스로 업데이트됩니다.  
 자세한 내용은 [AL2023 사용 설명서](https://docs.aws.amazon.com/linux/al2023/ug/)의 [AL2023 업데이트](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) 섹션을 참조하세요.

 OS 업데이트의 배포 안전을 계획하지 않으면 애플리케이션/서비스와 OS 업데이트 간의 예상치 못한 부정적 상호 작용으로 인한 영향이 상당히 커질 수 있으며, 최악의 경우 전체 중단에 이를 수도 있습니다. 모든 소프트웨어 문제와 마찬가지로 문제가 조기에 감지될수록 최종 사용자에게 미칠 수 있는 영향이 줄어듭니다.

 기본적으로 사실이 아닌 다음 두 가지를 믿는 함정에 빠지지 않는 것이 중요합니다.

1. OS 공급업체는 OS 업데이트에서 절대 실수를 하지 않습니다.

1. 사용자가 의존하는 OS의 특정 동작이나 인터페이스가 OS 공급업체가 의존 가능한 것으로 간주하는 동작 및 인터페이스와 일치합니다.

   즉, OS 공급업체와 사용자 모두 업데이트에 문제가 있다는 데 동의할 것입니다.

 좋은 의도에 의존하지 말고 배포 안전성에 모든 OS 업데이트가 *포함*되도록 시스템을 마련합니다.

 프로덕션 환경에 배포하여 새 OS 업데이트를 테스트하는 것은 권장되지 않습니다. OS를 배포의 다른 부분으로 간주하고 프로덕션 환경의 다른 변경 사항에 적합하다고 생각되는 것과 동일한 배포 안전 메커니즘을 적용하는 것이 좋습니다.

 프로덕션 시스템에 배포하기 전에 모든 OS 업데이트를 테스트하는 것이 가장 좋습니다. 배포할 때 적절한 모니터링과 결합된 단계적 롤아웃이 권장됩니다. 단계적 롤아웃을 사용하면 문제가 발생할 경우(즉시 발생하지 않더라도) 플릿의 일부로 영향이 제한되고 추가 조사 및 완화가 진행되는 동안 업데이트의 추가 배포를 중지할 수 있습니다.

 OS 업데이트로 인한 부정적인 영향을 완화하는 것이 가장 우선시되는 경우가 많으며, 그 다음으로 문제가 어디에 있든 해결합니다. OS 업데이트 도입으로 부정적인 영향이 발생하는 경우 이전의 정상 작동하는 것으로 확인된 OS 버전으로 되돌릴 수 있는 기능은 강력한 도구입니다.

 Amazon Linux 2023에는 OS(또는 개별 패키지) 버전에 대한 모든 변경을 재현 가능하게 보장하는 강력한 새 기능인 [버전 관리 리포지토리를 통한 결정적 업그레이드](deterministic-upgrades.md)가 도입되었습니다. 따라서 한 OS 버전에서 다음 버전으로 이동할 때 문제가 발생하면 문제 해결 방법을 찾는 동안 정상 작동하는 것으로 알려진 OS 버전을 유지하는 간단한 메커니즘을 이용할 수 있습니다.

 AL2023에서는 새 패키지 업데이트를 릴리스할 때마다 고정할 수 있는 새 버전과 해당 버전에 고정된 새 AMI가 제공됩니다. [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/)는 각 릴리스의 변경 사항을 다루고 [AL2023용 Amazon Linux 보안 권고](alas.md) 섹션은 패키지 업데이트에서 해결된 보안 문제를 다룹니다.

 예를 들어 [2023.6.20241028](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html) 릴리스에 있는 문제의 영향을 받은 경우 이전 릴리스인 [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html)의 AMI 및 컨테이너 이미지 사용으로 즉시 되돌릴 수 있습니다. 이 경우 후속 [2023.6.20241031](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241031.html) 릴리스에서 수정된 패키지 버그가 있었지만 [버전 관리 리포지토리를 통한 결정적 업그레이드](deterministic-upgrades.md)를 사용하면 영향을 받는 사람은 누구나 *즉시* 간단한 완화 조치를 취할 수 있습니다. 즉, 이전 이미지를 사용하기만 하면 됩니다.

 [버전 관리 리포지토리를 통한 결정적 업그레이드](deterministic-upgrades.md)는 또한 현재 위치에서든 새 AMI 또는 컨테이너 이미지 실행을 통해서든 진행 중인 OS 업데이트 배포가 이후에 릴리스되는 OS 업데이트의 영향을 받지 않도록 보장합니다.

 첫 번째 예제에서 플릿 A는 [2023.5.20241001](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20241001.html)에서 [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html) 릴리스로 업데이트를 배포하는 도중에 [2023.6.20241028](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html) 릴리스가 출시되는 대규모 플릿입니다. [버전 관리 리포지토리를 통한 결정적 업그레이드](deterministic-upgrades.md)는 플릿 A의 배포가 적용 중인 업데이트를 변경하지 않고 계속 진행됨을 의미합니다.

 플릿의 1%에 처음 배포한 다음 100%에 도달할 때까지 5%, 10%, 20%, 40%와 같은 웨이브 기반 또는 단계 기반 배포 전략의 목적은 더 넓게 배포하기 전에 제한된 방식으로 변경 사항을 테스트할 수 있도록 하는 것입니다. 이러한 유형의 배포 전략은 일반적으로 프로덕션 변경 사항을 배포하는 모범 사례로 간주됩니다.

 웨이브 기반 배포 전략과 플릿 A의 [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html) 업데이트가 한 번에 많은 호스트에 배포되는 단계에 있을 때 [2023.6.20241028](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html)이 릴리스되었다는 사실은 [버전 관리 리포지토리를 통한 결정적 업그레이드](deterministic-upgrades.md) 사용 덕분에 *진행 중인 배포에 영향을 미치지 않습니다*.

 플릿 B가 [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html) 같은 이전 버전을 실행 중이고 [2023.6.20241028](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html)로 업데이트를 배포하기 시작했으며 플릿 B가 해당 버전의 문제에 영향을 받았다면 배포 초기에 이를 발견할 수 있을 것입니다. 이때 해당 문제에 대한 수정 사항을 사용할 수 있을 때까지 롤아웃을 일시 중지할지, 아니면 그 사이에 플릿 A가 실행 중인 동일한 버전인 [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html)의 배포를 시작하여 플릿 B가 [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html)과 [2023.6.20241010](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html) 사이의 모든 업데이트를 받을 수 있도록 할지 결정할 수 있습니다.

 OS 업데이트를 즉시 수행하지 *않으면* 문제가 발생할 수 있다는 점에 유의해야 합니다. 새 업데이트에는 환경과 관련이 있을 수 있는 버그 및 보안 수정이 포함될 수 있습니다. 자세한 내용은 [Amazon Linux 2023 보안 및 규정 준수](security.md) 및 [AL2023에서 패키지 및 운영 체제 업데이트 관리](managing-repos-os-updates.md) 섹션을 참조하세요.

 새 OS 업데이트를 쉽게 가져오고, 프로덕션에 배포하기 전에 테스트하고, 웨이브 기반 배포와 같은 메커니즘을 사용하여 부정적인 영향을 최소화할 수 있도록 배포 시스템을 구성하는 것이 중요합니다. OS 업데이트의 부정적인 영향을 완화하려면 배포 시스템이 이전의 정상 작동하는 것으로 알려진 OS 버전을 가리키도록 하는 방법을 알고 있어야 하며, 문제가 해결되면 더 이상 이전의 정상 버전에 고정되지 않고 새로운 정상 버전으로 이동해야 합니다.

## 마이너 업데이트 준비
<a name="prepare-for-minor-updates"></a>

 AL2023의 새 포인트 릴리스와 같은 OS에 대한 소규모 업데이트를 준비하는 것은 노력이 전혀 필요하지 않도록 하기 위한 것입니다. 예정된 변경 사항은 [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/)를 참조하세요.

 종료되는 [패키지의 지원 기간](https://docs.aws.amazon.com/linux/al2023/release-notes/support-info-by-support-statement.html)에는 언어 런타임의 최신 버전으로 이동하는 작업이 포함될 수 있습니다(예: [AL2023에서 PHP 사용](php.md) 사용). 지원 기간이 끝나기 전에 충분히 여유를 두고 새로운 언어 런타임 버전으로 이동하여 미리 준비하는 것이 좋습니다.

 [`pcre` 버전 1](deprecated-al2023.md#deprecated-pcre) 같은 패키지의 경우 미리 계획을 세우고 코드를 대체품으로 마이그레이션할 수도 있습니다. 이 경우 대체품은 `pcre` 버전 2입니다. 예상치 못한 차질에 대비할 시간을 확보하기 위해 가능한 한 빨리 이렇게 하는 것이 가장 좋습니다.

 [Berkeley DB(`libdb`)](deprecated-al2023.md#deprecated-bdb) 같이 직접적인 대체품이 없는 경우 사용 사례에 따라 선택해야 할 수 있습니다.

## 메이저 업데이트 준비
<a name="prepare-for-major-updates"></a>

 운영 체제의 새 메이저 버전으로 업데이트하는 것은 거의 보편적으로 계획, 변경되거나 더 이상 사용되지 않는 기능에 적응하기 위한 작업, 배포 전 테스트가 필요한 것으로 간주됩니다. 다음 메이저 버전으로 이동하기 전에 더 이상 사용되지 않거나 제거된 기능의 사용을 해결하는 등 Amazon Linux 2023의 다음 메이저 버전을 점진적으로 준비하는 것은 드문 일이 아닙니다.

 예를 들어 AL2에서 AL2023으로 이동할 때 [AL2에서는 기능이 더 이상 사용되지 않고 AL2023에서는 제거됨](deprecated-al2.md) 섹션을 읽으면 AL2를 계속 사용하면서 AL2023을 준비할 수 있는 여러 안전하고 작은 단계를 수행할 수 있습니다. 예를 들어 모든 [Python 2.7은 Python 3으로 대체되었습니다.](python2.7-no-more.md) 사용(`yum` 패키지 관리자에서와 같은 OS 사용은 제외)을 [AL2023에서 Python 사용](python.md) 사용을 준비하기 위해 Python 3으로 마이그레이션할 수 있습니다. [PHP](php.md)를 사용하는 경우 (PHP 8.2 [AL2 Extra](https://docs.aws.amazon.com/linux/al2/ug/al2-extras.html)를 통해) AL2와 AL2023 모두 PHP 8.2를 제공하므로 PHP 버전 마이그레이션과 OS 마이그레이션을 동시에 수행할 필요가 없습니다.

 AL2023을 사용하는 동안 현재 Amazon Linux 2023의 다음 메이저 버전에 대비할 수도 있습니다. [AL2023에서 사용 중단](deprecated-al2023.md) 섹션에서는 AL2023에서 더 이상 사용되지 않으며 제거될 예정인 기능 및 패키지를 다룹니다.

 예를 들어 `init` 스크립트와 같은 나머지 [System V init (`sysvinit`)](deprecated-al2023.md#deprecated-sysv-init) 사용을 해당 `systemd` 항목으로 마이그레이션하면 미래에 대비할 수 있을 뿐만 아니라 전체 `systemd` 기능 세트를 사용하여 서비스 모니터링, 재시작 방법 및 여부, 필요한 다른 서비스, 적용해야 하는 리소스 또는 권한 제약 조건 등을 관리할 수 있습니다.

 32비트 지원과 같은 기능의 경우 지원 중단이 여러 주요 OS 버전에 걸쳐 진행될 수 있습니다. 32비트의 경우 Amazon Linux 1(AL1)은 [32비트 x86(i686) AMI](deprecated-al1.md#deprecated-32bit-amis)를 더 이상 사용하지 않고, Amazon Linux 2는 [32비트 x86(i686) 패키지](deprecated-al2.md#deprecated-32bit-rpms)를 더 이상 사용하지 않으며, Amazon Linux 2023은 [32비트 x86(i686) 런타임 지원](deprecated-al2023.md#deprecated-32bit)을 더 이상 사용하지 않습니다. [IMDSv1](deprecated-al2023.md#deprecated-imdsv1)에서의 전환도 여러 주요 OS 버전에 걸쳐 진행됩니다. 이러한 유형의 변경 사항의 경우 일부 고객이 적응하는 데 더 오래 걸린다는 점을 고려하여, Amazon Linux 2023에서 해당 기능을 더 이상 사용할 수 없게 되기 전까지 충분한 여유 시간이 제공됩니다.

 더 이상 사용되지 않는 기능 목록은 OS 수명 동안 업데이트되며 변경 사항을 최신 상태로 유지하는 것이 좋습니다.

# 새 업데이트 알림 받기
<a name="receive-update-notification"></a>

새 AL2023 AMI가 릴리스될 때마다 알림을 받을 수 있습니다. 다음 주제에 대한 알림이 [Amazon SNS](https://aws.amazon.com/sns/)에 게시됩니다.

```
arn:aws:sns:us-east-1:137112412989:amazon-linux-2023-ami-updates
```

새 AL2023 AMI가 게시되면 메시지가 여기에 게시됩니다. AMI 버전이 메시지에 포함됩니다.

이러한 메시지는 여러 방식으로 수신할 수 있습니다. 다음 방법을 사용하는 것이 좋습니다.

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/v3/home)을 엽니다.

1. 필요한 경우 네비게이션 바에서 AWS 리전을 **미국 동부(버지니아 북부)**로 변경합니다. 구독중인 SNS 알림을 만든 리전을 선택해야 합니다.

1. 탐색 창에서 **구독**과 **구독 생성**을 선택합니다.

1. **구독 생성** 대화 상자에서 다음과 같이 수행합니다.

   1. **주제 ARN**의 경우, **Amazon 리소스 이름(ARN)**인 **arn:aws:sns:us-east-1:137112412989:amazon-linux-2023-ami-updates**를 복사하여 붙여 넣습니다.

   1. **프로토콜**에서 **이메일**을 선택합니다.

   1. **엔드포인트**에 알림 받을 이메일 주소를 입력합니다.

   1. **구독 생성**을 선택합니다.

1. "AWS 알림 - 구독 신청 확인"이라는 제목의 확인 이메일을 받게 됩니다. 이메일을 열고 **구독 확인**을 선택하여 구독 신청을 완료합니다.

# AL2023에서 버전 관리 리포지토리를 통한 결정적 업그레이드
<a name="deterministic-upgrades"></a>

**참고**  
기본적으로 AL2023 인스턴스에는 시작 시 심각하고 중요한 추가 보안 업데이트가 자동으로 수신되지 않습니다. 처음에는 AL2023 버전 및 선택한 AMI에서 사용할 수 있었던 업데이트가 포함되어 있습니다.

## 메이저 및 마이너 릴리스에 포함된 업데이트를 관리하세요.
<a name="controlling-release-updates"></a>

AL2023을 통해 환경 전반에서 패키지 버전과 업데이트 간의 일관성을 유지할 수 있습니다. 또한 동일한 Amazon Machine Image (AMI)의 여러 인스턴스를 일관성있게 유지할 수 있습니다. 기본으로 설정된 AL2023의 버전 지정 리포지토리 기능으로 결정적 업그레이드를 하면 특정 목적의 일정에 따라 업데이트할 수 있습니다.

새 패키지 업데이트를 릴리스할 때마다 사용할 새 버전과 해당 버전에서 사용할 새 AMI가 포함됩니다.

AL2023은 리포지토리의 특정 버전에서 사용 가능합니다. 이는 메이저 버전과 마이너 버전 모두에서 지원을 받습니다. SSM 파라미터에서 볼 수 있는 AL2023 AMI는 항상 최신 버전입니다. 여기에는 중요한 보안 업데이트를 포함하여 최신 패키지 및 업데이트가 있습니다.

기존 AMI에서 인스턴스를 시작하는 경우 자동으로 업데이트되지 않습니다. 프로비저닝 기능으로 설치된 추가 패키지는 기존 AMI의 리포지토리 버전에 매핑됩니다.

이 기능을 사용하면 환경 전반에서 패키지 버전과 업데이트 간의 일관성을 유지할 수 있습니다. 특히 같은 AMI에서 여러 인스턴스를 실행하는 경우 그렇습니다. 필요에 맞는 일정에 따라 업데이트할 수 있습니다. 특정 리포지토리 버전으로 고정할 수 있어서 실행 시 특정 업데이트 세트를 적용할 수도 있습니다.

## 메이저 버전과 마이너 버전 업그레이드의 차이점은 다음과 같습니다.
<a name="differences-updates-upgrades"></a>

AL2023 메이저 버전 릴리스에는 대규모 업데이트가 포함되며 패키지를 추가, 삭제 또는 업데이트할 수 있습니다. 호환성을 유지하려면 인스턴스를 새 메이저 버전으로 업그레이드하기 전에 해당 버전에서 애플리케이션을 테스트해야 합니다.

AL2023 마이너 버전 릴리스에는 기능 및 보안 업데이트가 포함되지만 패키지 변경 사항은 포함되지 않습니다. 이렇게 하면 새 버전에서도 Linux 기능 및 시스템 라이브러리 API를 계속 사용할 수 있습니다. 업데이트하기 전에 애플리케이션을 테스트하지 않아도 됩니다.

## 업데이트를 사용할 수 있는 시기 알기
<a name="knowing-when-to-update"></a>

 업데이트를 적용하려면 업데이트를 사용할 수 있는지를 확인한 다음 업데이트를 배포하는 방법을 알아야 합니다.

 새 AL2023 AMI가 릴리스될 때 파생된 AMI를 빌드하기 위해 [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/)는 AMI를 자동으로 빌드, 패치 및 테스트합니다. 자체 AMI 빌드 파이프라인을 트리거하거나 기본 AMI를 사용하기 위해 [새 업데이트 알림 받기](receive-update-notification.md)의 조치를 취할 수 있습니다.

 현재 위치 패치의 경우 [AWS Systems Manager 패치 관리자와](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) 같은 도구를 사용하여 플릿 전체에서 적용 업데이트를 오케스트레이션할 수 있습니다.

 다른 AL2023 기반 퍼블릭 AMI의 경우 해당 AMI의 공급자는 자체 릴리스 일정 및 알림 방법을 가질 수 있습니다. 파생 AMI 또는 컨테이너 이미지를 사용하는 경우 업데이트가 릴리스될 때 게시자의 설명서를 확인하세요.

 각 릴리스의 변경 사항은 [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html)에 설명되어 있습니다. 보안 업데이트는 [Amazon Linux 보안 센터(ALAS)](https://alas.aws.amazon.com)에 게시되어 있습니다.

## AL2023 리포지토리에서 사용할 수 있는 패키지 업데이트 관리
<a name="control-package-updates"></a>

AL2023 리포지토리의 최신 버전을 릴리스해도 구 버전을 모두 사용할 수 있습니다. 기본적으로 리포지토리 버전 관리용 플러그인은 AMI 구축에 사용된 것과 동일한 버전입니다. 패키지 업데이트를 관리하려면 다음 단계를 따르세요.

1. 다음 명령을 실행하여 사용 가능한 리포지토리 버전을 검색합니다.

   ```
   $ sudo dnf check-release-update
   ```

1. 다음 명령을 실행하여 버전을 선택하세요.

   ```
   $ sudo dnf upgrade --releasever=version
   ```

이 명령으로 현재 Amazon Linux 릴리스 버전에서 명령줄에 지정된 릴리스 버전으로 업데이트할 수 있습니다. 패키지 업데이트 목록은 `dnf`에서 제공합니다. 업데이트하기 전에 업데이트를 확인해야 합니다. 업데이트가 완료되면 새 릴리스 버전은 향후 모든 `dnf` 활동의 기본 릴리스 버전이 됩니다.

자세한 내용은 [AL2023에서 패키지 및 운영 체제 업데이트 관리](managing-repos-os-updates.md) 단원을 참조하십시오.

# 인스턴스 교체를 통한 결정적 업데이트
<a name="security-instance-replacement"></a>

 Amazon Linux 2023의 [AL2023에서 버전 관리 리포지토리를 통한 결정적 업그레이드](deterministic-upgrades.md) 기능을 사용하면 인스턴스 교체를 통해 업데이트된 AL2023 버전을 결정적이고 안전하게 배포할 수 있습니다. 결정적 업데이트는 새 버전이 점진적으로 출시됨에 따라 문제가 발견되면 문제의 원인을 확인하면서 이전 AMI로 간단히 되돌릴 수 있음을 의미합니다.

 현재 위치에 패치를 적용하는 대신 인스턴스 교체를 사용하면 새 용량을 시작하는 것이 명확한 A 및 B 상태의 잘 테스트된 코드 경로일 수 있으므로 업데이트가 더 결정적이고 예측 가능합니다. 배포가 시작되기 전에 CI/CD 시스템에서 각 이전 및 이후 상태를 잘 테스트할 수 있습니다.

 현재 위치 패치를 수행할 때 업데이트를 적용하기 전과 후 사이에 중간 상태가 많으므로 모든 상태 조합을 테스트하기가 더 어렵습니다.

 결정적 업데이트와 함께 인스턴스 교체를 사용하는 OS 업데이트 전략은 블루/그린, 웨이브 및 단계 기반 배포 모델에 적합합니다.

# 버전 관리 리포지토리를 통한 결정적 업그레이드
<a name="deterministic-upgrades-usage"></a>

**Topics**
+ [

## 결정적 업그레이드 시스템 사용
](#using-a-deterministic-upgraded-system)
+ [

## 결정적 업그레이드 시스템의 선택적 업데이트
](#deterministic-upgrade-selective-update)
+ [

## 결정적 업그레이드와 함께 연속 재정의 사용
](#deterministic-upgrade-override-persist)

## 결정적 업그레이드 시스템 사용
<a name="using-a-deterministic-upgraded-system"></a>

**참고**  
 패키지 관리자의 기본 동작이 AL2에서 변경되었습니다.

 결정적 업그레이드는 광범위한 배포 전에 프로덕션 환경의 모든 변경 사항을 완전히 테스트할 수 있는 강력한 방법입니다. 각각의 새 AL2023 AMI는 특정 버전의 AL2023으로 잠깁니다. 이를 통해 특정 AMI를 시작할 때 설치된 OS 패키지 버전의 결정적 동작을 확인할 수 있습니다. 현재 위치 업데이트는 특정 릴리스 버전일 수 있으므로 플릿 전반에 걸쳐 결정적 동작을 보장합니다. 새 AMI 또는 현재 위치 업데이트 버전으로 이동할 때 CI/CD 파이프라인에서 각 버전을 테스트하여 프로덕션 환경에 배포하기 전에 잠재적 문제를 포착할 수 있습니다.

 [AWS Systems Manager 패치 관리자](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) 같은 도구를 사용하여 플릿 전체에서 적용 업데이트를 오케스트레이션할 수 있습니다. 새 AL2023 AMI가 릴리스될 때 파생 AMIs 빌드하기 위해 [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/)는 자동으로 AMI 빌드, 패치 및 테스트하거나 새 기본 AMI를 사용할 수 있는 시기를 알거나 자체 AMI 빌드 파이프라인을 트리거하기 위해 [새 업데이트 알림 받기](receive-update-notification.md)의 조치를 취할 수 있습니다.

 특정 권고로 업데이트를 제한하는 방법에 대한 자세한 내용은 [현재 위치에서 보안 업데이트 적용](security-inplace-update.md) 섹션을 참조하세요.

 현재 위치 패치의 경우 `dnf` 패키지 관리자를 사용할 수 있습니다. `dnf upgrade` 명령을 실행하면 시스템은 `releasever` 변수가 지정하는 저장소에서 업그레이드를 확인합니다. 유효한 `releasever`는 *최신* 버전이거나 *2023.10.20260325*과 같은 날짜 스탬프 버전입니다.

두 가지 방법 중 하나를 사용하여 `releasever` 값을 변경할 수 있습니다. 이러한 방법은 내림차순으로 시스템 우선 순위를 나열합니다. 즉, 방법 1은 방법 2와 3보다 우선하고 방법 2는 방법 3보다 우선합니다.

1. 명령줄 플래그를 사용했다면 그 값은 `--releasever=latest`입니다.

1. 오버라이드 변수 파일이 설정된 경우 지정된 값은 `/etc/dnf/vars/releasever`입니다.

1. 현재 설치된 `system-release` 패키지 버전입니다.

즉, 패키지 버전은 *2023.0.20230210*입니다.

```
$ rpm -q system-release
system-release-2023.0.20230210-0.amzn2023.noarch
```

새로 설치한 시스템에는 재정의 변수가 없습니다. 시스템이 설치된 `system-release` 버전을 제어하기 때문에 업그레이드가 불가능합니다. 

```
$ cat /etc/dnf/vars/releasever
cat: /etc/dnf/vars/releasever: No such file or directory
```

```
$ sudo dnf upgrade
Last metadata expiration check: 0:00:02 ago on Wed 15 Feb 2023 06:14:12 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!
```

`releasever` 플래그로 원하는 버전을 지정하면 특정 버전의 패키지를 가져올 수 있습니다.

```
$ rpm -q system-release
system-release-2023.0.20230222-0.amzn2023.noarch
```

```
$ sudo dnf upgrade --releasever=2023.0.20230329
Amazon Linux 2023 repository                     26 MB/s |  12 MB     00:00
Dependencies resolved.
================================================================================
 Package                 Arch    Version                      Repository   Size
================================================================================
Installing:
 kernel                   aarch64 6.1.21-1.45.amzn2023        amazonlinux  26 M
Upgrading:
 amazon-linux-repo-s3     noarch  2023.0.20230329-0.amzn2023  amazonlinux  18 k
 ca-certificates          noarch  2023.2.60-1.0.amzn2023.0.1  amazonlinux 828 k
 cloud-init               noarch  22.2.2-1.amzn2023.1.7       amazonlinux 1.1 M

         ... [ list edited for clarity ]

 system-release           noarch  2023.0.20230329-0.amzn2023  amazonlinux  29 k

         ... [ list edited for clarity ]
          
 vim-data                 noarch  2:9.0.1403-1.amzn2023.0.1   amazonlinux  25 k
 vim-minimal              aarch64 2:9.0.1403-1.amzn2023.0.1   amazonlinux 753 k

Transaction Summary
================================================================================
Install    1 Package
Upgrade   42 Packages

Total download size: 56 M
```

`--releasever` 옵션은 `system-release`와 `/etc/dnf/vars/releasever` 모두 재정의하므로 이 업그레이드의 결과는 다음과 같습니다.

1. 설치된 모든 패키지의 구 버전과 최신 버전 간의 변경 사항을 업그레이드합니다.

1. 업그레이드하면 시스템은 `system-release` 최신 버전의 리포지토리를 제어합니다.

 항상 업데이트할 `releasever`(예: AL2023 릴리스)를 지정하면 플릿 전체에 결정적인 변경 사항이 적용됩니다. 버전 *A*를 시작하고 *B*로 업데이트한 다음 *C*로 업데이트했습니다.

## 결정적 업그레이드 시스템의 선택적 업데이트
<a name="deterministic-upgrade-selective-update"></a>

**참고**  
 특정 업데이트를 선택하는 대신 새 릴리스의 모든 업데이트를 설치하는 것이 좋습니다. OS에 업데이트의 일부만 적용하는 것은 전체 업데이트를 수행하는 표준 관행에 대한 예외여야 합니다.

정식 릴리스 버전을 사용하는 시스템에 최신 릴리스에서 선택한 패키지를 설치하는 것이 좋습니다.

`dnf check-update`로 업그레이드할 패키지를 식별할 수 있습니다.

```
$ sudo dnf check-update --releasever=latest --security
Amazon Linux 2023 repository                     13 MB/s |  10 MB     00:00
Last metadata expiration check: 0:00:02 ago on Wed 15 Feb 2023 02:52:21 AM UTC.

bind-libs.aarch64                  32:9.16.27-1.amzn2023.0.1         amazonlinux
bind-license.noarch                32:9.16.27-1.amzn2023.0.1         amazonlinux
bind-utils.aarch64                 32:9.16.27-1.amzn2023.0.1         amazonlinux
cryptsetup.aarch64                 2.4.3-2.amzn2023.0.1              amazonlinux
cryptsetup-libs.aarch64            2.4.3-2.amzn2023.0.1              amazonlinux
curl-minimal.aarch64               7.85.0-1.amzn2023.0.1             amazonlinux
glibc.aarch64                      2.34-40.amzn2023.0.2              amazonlinux
glibc-all-langpacks.aarch64        2.34-40.amzn2023.0.2              amazonlinux
glibc-common.aarch64               2.34-40.amzn2023.0.2              amazonlinux
glibc-locale-source.aarch64        2.34-40.amzn2023.0.2              amazonlinux
gmp.aarch64                        1:6.2.1-2.amzn2023.0.1            amazonlinux
gnupg2-minimal.aarch64             2.3.7-1.amzn2023.0.2              amazonlinux
gzip.aarch64                       1.10-5.amzn2023.0.1               amazonlinux
kernel.aarch64                     6.1.12-17.42.amzn2023             amazonlinux
kernel-tools.aarch64               6.1.12-17.42.amzn2023             amazonlinux
libarchive.aarch64                 3.5.3-2.amzn2023.0.1              amazonlinux
libcurl-minimal.aarch64            7.85.0-1.amzn2023.0.1             amazonlinux
libsepol.aarch64                   3.4-3.amzn2023.0.2                amazonlinux
libsolv.aarch64                    0.7.22-1.amzn2023.0.1             amazonlinux
libxml2.aarch64                    2.9.14-1.amzn2023.0.1             amazonlinux
logrotate.aarch64                  3.20.1-2.amzn2023.0.2             amazonlinux
lua-libs.aarch64                   5.4.4-3.amzn2023.0.1              amazonlinux
lz4-libs.aarch64                   1.9.4-1.amzn2023.0.1              amazonlinux
openssl.aarch64                    1:3.0.5-1.amzn2023.0.3            amazonlinux
openssl-libs.aarch64               1:3.0.5-1.amzn2023.0.3            amazonlinux
pcre2.aarch64                      10.40-1.amzn2023.0.1              amazonlinux
pcre2-syntax.noarch                10.40-1.amzn2023.0.1              amazonlinux
rsync.aarch64                      3.2.6-1.amzn2023.0.2              amazonlinux
vim-common.aarch64                 2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-data.noarch                    2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-enhanced.aarch64               2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-filesystem.noarch              2:9.0.475-1.amzn2023.0.1          amazonlinux
vim-minimal.aarch64                2:9.0.475-1.amzn2023.0.1          amazonlinux
xz.aarch64                         5.2.5-9.amzn2023.0.1              amazonlinux
xz-libs.aarch64                    5.2.5-9.amzn2023.0.1              amazonlinux
zlib.aarch64                       1.2.11-32.amzn2023.0.3            amazonlinux
```

업그레이드하고 싶은 패키지를 설치합니다. `sudo dnf upgrade --releasever=latest` 및 패키지 이름을 사용하면 `system-release` 패키지가 변경되지 않습니다.

```
$ sudo dnf upgrade --releasever=latest openssl openssl-libs
Last metadata expiration check: 0:01:28 ago on Wed 15 Feb 2023 02:52:21 AM UTC.
Dependencies resolved.
================================================================================
 Package          Arch        Version                     Repository       Size
================================================================================
Upgrading:
 openssl          aarch64     1:3.0.5-1.amzn2023.0.3      amazonlinux     1.1 M
 openssl-libs     aarch64     1:3.0.5-1.amzn2023.0.3      amazonlinux     2.1 M

Transaction Summary
================================================================================
Upgrade  2 Packages

Total download size: 3.2 M
```

**참고**  
`sudo dnf upgrade --releasever=latest`를 사용하면 `system-release`를 포함한 모든 패키지가 업데이트됩니다. 그러면 연속 재정의를 설정하지 않는 한 최신 `system-release` 버전으로 유지됩니다.

## 결정적 업그레이드와 함께 연속 재정의 사용
<a name="deterministic-upgrade-override-persist"></a>

**참고**  
 결정적 업데이트를 통해 OS 변경 사항을 CI/CD 파이프라인에 통합할 수 있습니다. 결정적 업데이트를 비활성화하면 배포 전에 테스트할 수 없습니다.

`--releasever=latest`를 추가하는 대신 연속 재정의 기능으로 변수 값을 *최신*으로 설정하여 시스템 *잠금 해제*를 할 수 있습니다. 항상 `latest`를 사용하면 AL2023의 동작이 AL2 업데이트 모델로 되돌아갑니다. 패키지 관리자에 대한 직접 호출은 *항상* 최신 릴리스를 보고, 특정 버전의 OS에 잠기지 않습니다.

**주의**  
 결정적 업데이트의 지속적인 재정의를 사용하여 패키지 관리자를 잠금 해제하면 애플리케이션과 프로덕션 OS 업데이트 간의 잠재적 비호환성을 발견할 위험이 있습니다.  
 비호환성은 *드물지만* OS 업데이트를 통해 새 코드 변경 사항을 환경에 통합하는 경우 통합 테스트를 통해 프로덕션 환경에 부정적인 영향을 미치는 코드 변경 사항을 배포하지 못할 수 있습니다.

```
$ echo latest | sudo tee /etc/dnf/vars/releasever
latest
```

```
$ sudo dnf upgrade
Last metadata expiration check: 0:03:36 ago on Wed 15 Feb 2023 02:52:21 AM UTC.
Dependencies resolved.
================================================================================
 Package                 Arch    Version                      Repository   Size
================================================================================
Installing:
 kernel                  aarch64 6.1.73-45.135.amzn2023       amazonlinux  24 M
Upgrading:
 acl                     aarch64 2.3.1-2.amzn2023.0.1         amazonlinux  72 k
 alternatives            aarch64 1.15-2.amzn2023.0.1          amazonlinux  36 k
 amazon-ec2-net-utils    noarch  2.3.0-1.amzn2023.0.1         amazonlinux  16 k
 at                      aarch64 3.1.23-6.amzn2023.0.1        amazonlinux  60 k
 attr                    aarch64 2.5.1-3.amzn2023.0.1         amazonlinux  59 k
 audit                   aarch64 3.0.6-1.amzn2023.0.1         amazonlinux 249 k
 audit-libs              aarch64 3.0.6-1.amzn2023.0.1         amazonlinux 116 k
 aws-c-auth-libs         aarch64 0.6.5-6.amzn2023.0.2         amazonlinux  79 k
 aws-c-cal-libs          aarch64 0.5.12-7.amzn2023.0.2        amazonlinux  34 k
 aws-c-common-libs       aarch64 0.6.14-6.amzn2023.0.2        amazonlinux 119 k
 aws-c-compression-libs  aarch64 0.2.14-5.amzn2023.0.2        amazonlinux  22 k
 aws-c-event-stream-libs aarch64 0.2.7-5.amzn2023.0.2         amazonlinux  47 k
 aws-c-http-libs         aarch64 0.6.8-6.amzn2023.0.2         amazonlinux 147 k
 aws-c-io-libs           aarch64 0.10.12-5.amzn2023.0.6       amazonlinux 109 k
 aws-c-mqtt-libs         aarch64 0.7.8-7.amzn2023.0.2         amazonlinux  61 k
 aws-c-s3-libs           aarch64 0.1.27-5.amzn2023.0.3        amazonlinux  54 k
 aws-c-sdkutils-libs     aarch64 0.1.1-5.amzn2023.0.2         amazonlinux  26 k
 aws-checksums-libs      aarch64 0.1.12-5.amzn2023.0.2        amazonlinux  50 k
 awscli-2                noarch  2.7.8-1.amzn2023.0.4         amazonlinux 7.3 M
 basesystem              noarch  11-11.amzn2023.0.1           amazonlinux 7.8 k
 bash                    aarch64 5.1.8-2.amzn2023.0.1         amazonlinux 1.6 M
 bash-completion         noarch  1:2.11-2.amzn2023.0.1        amazonlinux 292 k
 bc                      aarch64 1.07.1-14.amzn2023.0.1       amazonlinux 120 k
 bind-libs               aarch64 32:9.16.27-1.amzn2023.0.1    amazonlinux 1.2 M
 bind-license            noarch  32:9.16.27-1.amzn2023.0.1    amazonlinux  14 k
 bind-utils              aarch64 32:9.16.27-1.amzn2023.0.1    amazonlinux 206 k
 binutils                aarch64 2.38-20.amzn2023.0.3         amazonlinux 4.6 M
 boost-filesystem        aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  55 k
 boost-system            aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  14 k
 boost-thread            aarch64 1.75.0-4.amzn2023.0.1        amazonlinux  54 k
 bzip2                   aarch64 1.0.8-6.amzn2023.0.1         amazonlinux  53 k
 bzip2-libs              aarch64 1.0.8-6.amzn2023.0.1         amazonlinux  44 k
 c-ares                  aarch64 1.17.2-1.amzn2023.0.1        amazonlinux 107 k
 ca-certificates         noarch  2021.2.50-1.0.amzn2023.0.3   amazonlinux 343 k
 checkpolicy             aarch64 3.4-3.amzn2023.0.1           amazonlinux 345 k
 chkconfig               aarch64 1.15-2.amzn2023.0.1          amazonlinux 162 k
 chrony                  aarch64 4.2-7.amzn2023.0.4           amazonlinux 314 k
 cloud-init              noarch  22.2.2-1.amzn2023.1.7        amazonlinux 1.1 M
 cloud-utils-growpart    aarch64 0.31-8.amzn2023.0.2          amazonlinux  31 k
 coreutils               aarch64 8.32-30.amzn2023.0.2         amazonlinux 1.1 M
 coreutils-common        aarch64 8.32-30.amzn2023.0.2         amazonlinux 2.0 M
 cpio                    aarch64 2.13-10.amzn2023.0.1         amazonlinux 269 k
 cracklib                aarch64 2.9.6-27.amzn2023.0.1        amazonlinux  83 k
 cracklib-dicts          aarch64 2.9.6-27.amzn2023.0.1        amazonlinux 3.6 M
 crontabs                noarch  1.11-24.20190603git.amzn2023.0.1
                                                              amazonlinux  19 k
 crypto-policies         noarch  20230128-1.gitdfb10ea.amzn2023.0.1
                                                              amazonlinux  61 k
 crypto-policies-scripts noarch  20230128-1.gitdfb10ea.amzn2023.0.1
                                                              amazonlinux  81 k
...
Installing dependencies:
 amazon-linux-repo-cdn   noarch  2023.0.20230210-0.amzn2023   amazonlinux  16 k
 xxhash-libs             aarch64 0.8.0-3.amzn2023.0.1         amazonlinux  32 k
Installing weak dependencies:
 amazon-chrony-config    noarch  4.2-7.amzn2023.0.4           amazonlinux  14 k
 gawk-all-langpacks      aarch64 5.1.0-3.amzn2023.0.1         amazonlinux 207 k

Transaction Summary
================================================================================
Install    5 Packages
Upgrade  413 Packages

Total download size: 199 M
```

**참고**  
재정의 변수 `/etc/dnf/vars/releasever`를 사용한 경우 다음 명령으로 재정의 값을 삭제하고 기본 잠금 동작을 복원할 수 있습니다.  

```
$ sudo rm /etc/dnf/vars/releasever
```

 특정 버전 대신 `latest`를 사용하기 위해 영구 재정의를 사용하는 것은 AL2의 기본 동작과 비슷합니다. AL2를 기반으로 AMI를 빌드하여 이 동작을 비활성화하고 AL2023에서 기본적으로 가져오는 것과 같은 특정 패키지 버전에 잠그는 서비스가 있습니다.

 결정적 업데이트를 비활성화하는 대신 인스턴스를 새 AMI에서 시작된 인스턴스로 교체하는 것이 좋습니다. 인스턴스 교체가 옵션이 아닌 경우 [AWS Systems Manager 패치 관리자](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html)와 같은 도구를 사용하여 플릿 전체에서 업데이트 적용을 오케스트레이션하는 것이 좋습니다. [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/)는 AL2023 기본 이미지에서 파생된 자체 AMI를 자동으로 빌드, 패치 및 테스트할 수도 있습니다. 자체 AMI 빌드 파이프라인을 트리거하기 위해 [새 업데이트 알림 받기](receive-update-notification.md)의 조치를 취할 수도 있습니다.

 사전 프로덕션 환경에서 `latest`를 사용한 다음 `latest`를 사용하여 프로덕션에 배포해도 OS 업데이트와 애플리케이션 간의 문제로부터 보호되지 *않습니다*. 새로운 AL2023 릴리스는 언제든지 사용할 수 있으므로 프로덕션 환경에서의 `latest` 사용 모두가 위험을 수반합니다.

# AL2023에서 패키지 및 운영 체제 업데이트 관리
<a name="managing-repos-os-updates"></a>

이전 Amazon Linux 버전과 달리, AL2023 AMI는 특정 Amazon Linux 리포지토리 버전에서만 사용할 수 있습니다. AL2023 인스턴스 보안 및 버그를 모두 수정하려면 DNF 구성을 사용 가능한 최신 릴리스 버전으로 업데이트하세요. 또는 최신 AL2023 인스턴스를 실행하세요.

 이 섹션에서는 실행 중인 인스턴스에서 DNF 패키지 및 리포지토리를 관리하는 방법에 대해 설명합니다. 또한 시작 시 사용 가능한 최신 Amazon Linux 리포지토리를 활성화하도록 사용자 데이터 스크립트에서 DNF를 구성하는 방법도 설명합니다. 자세한 내용은 [DNF 명령 참조](https://dnf.readthedocs.io/en/latest/command_ref.html) 섹션을 참조하세요.

 새 AL2023 릴리스에서 사용할 수 있는 *모든* 업데이트를 적용하는 것이 좋습니다. 보안 업데이트만 선택하거나 특정 업데이트만 선택하는 것은 규칙이 아닌 예외여야 합니다. 특정 인스턴스와 [보안 권고](alas.md)와 관련된 목록은 [적용 가능한 권고 사항 나열](listing-applicable-advisories.md) 섹션을 참조하세요. 특정 [권고](alas.md)와 관련된 업데이트*만* 설치하는 방법에 대한 자세한 내용은 [현재 위치에서 보안 업데이트 적용](security-inplace-update.md) 섹션을 참조하세요.

**중요**  
 취약성을 보고하거나 AWS 클라우드 서비스 또는 오픈 소스 프로젝트와 관련된 보안 문제가 있는 경우 [취약성 보고 페이지를](https://aws.amazon.com/security/vulnerability-reporting/) 사용하여 AWS 보안에 문의하세요.

**Topics**
+ [

## 사용 가능한 패키지 업데이트 확인
](#dnf-package-updates)
+ [

## DNF 및 리포지토리 버전에서 보안 업데이트
](#apply-security-updates)
+ [

## (보안) 업데이트 후 자동 서비스 재시작
](#automatic-restart-services)
+ [

## 보안 업데이트를 적용하려면 언제 재부팅해야 하나요?
](#reboot)
+ [

## 최신 리포지토리 버전이 활성화된 상태로 인스턴스 시작
](#launch-an-instance-repo-version)
+ [

## 패키지 지원 정보 가져오기
](#dnf-support-info-plugin)
+ [

## `dnf check-release-update`로 최신 리포지토리 버전 확인
](#dnf-repository-updates)
+ [

## 새 리포지토리 추가, 사용 또는 사용 중지
](#dnf-repo-addition)
+ [

## cloud-init를 사용하여 리포지토리 추가
](#cloud-init-repo-update)

## 사용 가능한 패키지 업데이트 확인
<a name="dnf-package-updates"></a>

`dnf check-update` 명령을 사용하여 시스템 업데이트가 있는지 확인할 수 있습니다. AL2023의 경우 명령에 `--releasever=version-number` 옵션을 추가하는 것이 좋습니다.

이 옵션을 추가하면 DNF가 최신 저장소의 업데이트도 확인합니다. 예를 들어, `dnf check-update` 명령을 실행하면 반환된 최신 버전을 `version-number`의 값으로 사용합니다.

최신 버전의 리포지토리를 사용하도록 인스턴스를 업데이트하면 업데이트될 모든 패키지 목록이 출력에 포함됩니다.

**참고**  
`dnf check-update` 명령에 플래그 옵션으로 릴리스 버전을 지정하지 않으면 현재 구성된 리포지토리 버전만 확인합니다. 즉, 최신 버전의 리포지토리에 있는 패키지는 검사되지 않습니다.

------
#### [ Updates in a specific version ]

 이 예제에서는 [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) 릴리스의 컨테이너를 시작한 경우 [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) 릴리스에서 사용할 수 있는 업데이트를 살펴보겠습니다.

**참고**  
 이 예제에서는 [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) 및 [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) 릴리스를 사용하며, 이는 AL2023의 최신 릴리스*가 아닙니다*. 최신 보안 업데이트가 포함된 최신 릴리스는 [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/)를 참조하세요.

 이 예제에서는 [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) 릴리스의 컨테이너 이미지로 시작합니다.

 먼저 컨테이너 레지스트리에서 이 컨테이너 이미지를 가져옵니다. 끝에 있는 `.0`은 특정 릴리스의 이미지 버전을 나타냅니다. 이 이미지 버전은 일반적으로 0입니다.

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  2023.0.20230315.0: Pulling from amazonlinux/amazonlinux
b76f3b09316a: Pull complete
Digest: sha256:94e7183b0739140dbd5b639fb7600f0a2299cec5df8780c26d9cb409da5315a9
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
```

 이제 컨테이너 내에 쉘을 생성하여 업데이트를 확인할 수 있습니다.

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  bash-5.2#
```

 이제 `dnf check-update` 명령은 [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) 릴리스에서 사용 가능한 업데이트를 확인하는 데 사용됩니다.

**참고**  
 패키지 업데이트를 적용하는 것은 권한이 있는 작업입니다. 컨테이너에서 실행할 때는 일반적으로 권한 상승이 필요하지 않지만 Amazon EC2 인스턴스와 같은 컨테이너화되지 않은 환경에서 실행하는 경우 권한을 상승시키지 않고 업데이트를 *확인할* 수 있습니다.

```
$ dnf check-update --releasever=2023.1.20230628
Amazon Linux 2023 repository                      60 MB/s |  15 MB     00:00
Last metadata expiration check: 0:00:02 ago on Mon Jul 22 17:25:34 2024.

amazon-linux-repo-cdn.noarch        2023.1.20230628-0.amzn2023        amazonlinux
ca-certificates.noarch              2023.2.60-1.0.amzn2023.0.2        amazonlinux
curl-minimal.x86_64                 8.0.1-1.amzn2023                  amazonlinux
glib2.x86_64                        2.74.7-688.amzn2023.0.1           amazonlinux
glibc.x86_64                        2.34-52.amzn2023.0.3              amazonlinux
glibc-common.x86_64                 2.34-52.amzn2023.0.3              amazonlinux
glibc-minimal-langpack.x86_64       2.34-52.amzn2023.0.3              amazonlinux
gnupg2-minimal.x86_64               2.3.7-1.amzn2023.0.4              amazonlinux
keyutils-libs.x86_64                1.6.3-1.amzn2023                  amazonlinux
libcap.x86_64                       2.48-2.amzn2023.0.3               amazonlinux
libcurl-minimal.x86_64              8.0.1-1.amzn2023                  amazonlinux
libgcc.x86_64                       11.3.1-4.amzn2023.0.3             amazonlinux
libgomp.x86_64                      11.3.1-4.amzn2023.0.3             amazonlinux
libstdc++.x86_64                    11.3.1-4.amzn2023.0.3             amazonlinux
libxml2.x86_64                      2.10.4-1.amzn2023.0.1             amazonlinux
ncurses-base.noarch                 6.2-4.20200222.amzn2023.0.4       amazonlinux
ncurses-libs.x86_64                 6.2-4.20200222.amzn2023.0.4       amazonlinux
openssl-libs.x86_64                 1:3.0.8-1.amzn2023.0.3            amazonlinux
python3-rpm.x86_64                  4.16.1.3-12.amzn2023.0.6          amazonlinux
rpm.x86_64                          4.16.1.3-12.amzn2023.0.6          amazonlinux
rpm-build-libs.x86_64               4.16.1.3-12.amzn2023.0.6          amazonlinux
rpm-libs.x86_64                     4.16.1.3-12.amzn2023.0.6          amazonlinux
rpm-sign-libs.x86_64                4.16.1.3-12.amzn2023.0.6          amazonlinux
system-release.noarch               2023.1.20230628-0.amzn2023        amazonlinux
tzdata.noarch                       2023c-1.amzn2023.0.1              amazonlinux
bash-5.2#
```

 `system-release` 패키지 버전은 `dnf check-update --releasever=2023.1.20230628` 명령에서 요청된 [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) 릴리스인 `dnf upgrade` 명령이 업데이트할 릴리스를 보여줍니다.

------
#### [ Updates in the latest version ]

 이 예제에서는 [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) 릴리스의 컨테이너를 시작한 경우 `latest` AL2023 버전에서 사용할 수 있는 업데이트를 살펴보겠습니다. 작성 시점에 `latest` 릴리스는 [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html)이므로 이 예제에 나열된 업데이트는 해당 릴리스를 기준으로 합니다.

**참고**  
 이 예제에서는 [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) 및 [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html) 릴리스를 사용하며, 후자는 *작성 시점*의 최신 릴리스입니다. 최신 릴리스에 대한 자세한 내용은 [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/)를 참조하세요.

 이 예제에서는 [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) 릴리스의 컨테이너 이미지로 시작합니다.

 먼저 컨테이너 레지스트리에서 이 컨테이너 이미지를 가져옵니다. 끝에 있는 `.1`은 특정 릴리스의 이미지 버전을 나타냅니다. 이미지 버전은 일반적으로 0이지만 이 예제에서는 이미지 버전이 1인 릴리스를 사용합니다.

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  2023.4.20240319.1: Pulling from amazonlinux/amazonlinux
6de065fda9a2: Pull complete
Digest: sha256:b4838c4cc9211d966b6ea158dacc9eda7433a16ba94436508c2d9f01f7658b4e
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
```

 이제 컨테이너 내에 쉘을 생성하여 업데이트를 확인할 수 있습니다.

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  bash-5.2#
```

 이제 `dnf check-update` 명령은 `latest` 릴리스에서 사용 가능한 업데이트를 확인하는 데 사용됩니다. 이 업데이트는 *작성 당시* [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html)이었습니다.

**참고**  
 패키지 업데이트를 적용하는 것은 권한이 있는 작업입니다. 컨테이너에서 실행할 때는 일반적으로 권한 상승이 필요하지 않지만 Amazon EC2 인스턴스와 같은 컨테이너화되지 않은 환경에서 실행하는 경우 권한을 상승시키지 않고 업데이트를 *확인할* 수 있습니다.

```
$ dnf --releasever=latest check-update
Amazon Linux 2023 repository                      78 MB/s |  25 MB     00:00
Last metadata expiration check: 0:00:04 ago on Mon Jul 22 17:39:13 2024.

amazon-linux-repo-cdn.noarch        2023.5.20240708-1.amzn2023        amazonlinux
curl-minimal.x86_64                 8.5.0-1.amzn2023.0.4              amazonlinux
dnf.noarch                          4.14.0-1.amzn2023.0.5             amazonlinux
dnf-data.noarch                     4.14.0-1.amzn2023.0.5             amazonlinux
expat.x86_64                        2.5.0-1.amzn2023.0.4              amazonlinux
glibc.x86_64                        2.34-52.amzn2023.0.10             amazonlinux
glibc-common.x86_64                 2.34-52.amzn2023.0.10             amazonlinux
glibc-minimal-langpack.x86_64       2.34-52.amzn2023.0.10             amazonlinux
krb5-libs.x86_64                    1.21-3.amzn2023.0.4               amazonlinux
libblkid.x86_64                     2.37.4-1.amzn2023.0.4             amazonlinux
libcurl-minimal.x86_64              8.5.0-1.amzn2023.0.4              amazonlinux
libmount.x86_64                     2.37.4-1.amzn2023.0.4             amazonlinux
libnghttp2.x86_64                   1.59.0-3.amzn2023.0.1             amazonlinux
libsmartcols.x86_64                 2.37.4-1.amzn2023.0.4             amazonlinux
libuuid.x86_64                      2.37.4-1.amzn2023.0.4             amazonlinux
openssl-libs.x86_64                 1:3.0.8-1.amzn2023.0.12           amazonlinux
python3.x86_64                      3.9.16-1.amzn2023.0.8             amazonlinux
python3-dnf.noarch                  4.14.0-1.amzn2023.0.5             amazonlinux
python3-libs.x86_64                 3.9.16-1.amzn2023.0.8             amazonlinux
system-release.noarch               2023.5.20240708-1.amzn2023        amazonlinux
yum.noarch                          4.14.0-1.amzn2023.0.5             amazonlinux
bash-5.2#
```

 `system-release` 패키지 버전은 `dnf upgrade` 명령이 업데이트할 릴리스를 보여줍니다.

------

이 명령의 경우 새 패키지가 있다면 반환 코드는 100입니다. 새 패키지가 없다면 반환 코드는 0입니다. 또한 업데이트할 모든 패키지도 출력에 나열됩니다.

## DNF 및 리포지토리 버전에서 보안 업데이트
<a name="apply-security-updates"></a>

최신 패키지 업데이트 및 보안 업데이트는 최신 저장소 버전에만 제공됩니다. AL2023 AMI 구 버전에서 실행한 인스턴스의 경우 보안 업데이트를 설치하기 전에 리포지토리 버전을 업데이트해야 합니다. 이 `dnf check-release-update` 명령에는 시스템에 설치된 모든 패키지를 최신 저장소 버전으로 업데이트하는 업데이트 명령이 포함되어 있습니다.

**참고**  
 `dnf check-update` 명령에 플래그 옵션으로 릴리스 버전을 지정하지 않으면 현재 구성된 리포지토리 버전만 확인합니다. 즉, 리포지토리의 이후 버전에 있는 설치된 패키지에 대한 업데이트는 적용되지 않습니다.

 이 섹션에서는 개별 업데이트를 선택하거나 보안 업데이트로 표시된 업데이트만 적용하는 대신, 사용 가능한 모든 업데이트를 적용하는 권장 업그레이드 경로를 다룹니다. 모든 업데이트를 적용하면 기존 인스턴스가 업데이트된 AMI를 시작하는 것과 동일한 패키지 세트로 이동합니다. 이러한 일관성은 플릿 전체에서 패키지 버전의 차이를 줄입니다. 특정 업데이트의 적용에 대한 자세한 내용은 [현재 위치에서 보안 업데이트 적용](security-inplace-update.md) 섹션을 참조하세요.

------
#### [ Applying updates in a specific version ]

 이 예제에서는 [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) 릴리스의 컨테이너를 시작한 경우 [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) 릴리스에서 사용할 수 있는 업데이트를 적용합니다.

**참고**  
 이 예제에서는 [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) 및 [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) 릴리스를 사용하며, 이는 AL2023의 최신 릴리스*가 아닙니다*. 최신 보안 업데이트가 포함된 최신 릴리스는 [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/)를 참조하세요.

 이 예제에서는 [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) 릴리스의 컨테이너 이미지로 시작합니다.

 먼저 컨테이너 레지스트리에서 이 컨테이너 이미지를 가져옵니다. 끝에 있는 `.0`은 특정 릴리스의 이미지 버전을 나타냅니다. 이 이미지 버전은 일반적으로 0입니다.

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  2023.0.20230315.0: Pulling from amazonlinux/amazonlinux
b76f3b09316a: Pull complete
Digest: sha256:94e7183b0739140dbd5b639fb7600f0a2299cec5df8780c26d9cb409da5315a9
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
```

 이제 컨테이너 내에 쉘을 생성하여 업데이트를 적용할 수 있습니다.

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  bash-5.2#
```

 이제 `dnf upgrade` 명령은 [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) 릴리스에 있는 모든 업데이트를 적용하는 데 사용됩니다.

**참고**  
 패키지 업데이트를 적용하는 것은 권한이 있는 작업입니다. 컨테이너에서 실행할 때는 일반적으로 권한 상승이 필요하지 않지만 Amazon EC2 인스턴스 같은 컨테이너화되지 않은 환경에서 실행하는 경우 `root` 사용자로 `dnf upgrade` 명령을 실행해야 합니다. 이 작업은 `sudo` 또는 `su` 명령을 사용하여 수행할 수 있습니다.

```
$ dnf upgrade --releasever=2023.1.20230628
Amazon Linux 2023 repository                      38 MB/s |  15 MB     00:00
Last metadata expiration check: 0:00:02 ago on Mon Jul 22 17:49:08 2024.
Dependencies resolved.
=================================================================================
 Package                 Arch    Version                      Repository    Size
=================================================================================
Upgrading:
 amazon-linux-repo-cdn   noarch  2023.1.20230628-0.amzn2023   amazonlinux   18 k
 ca-certificates         noarch  2023.2.60-1.0.amzn2023.0.2   amazonlinux  829 k
 curl-minimal            x86_64  8.0.1-1.amzn2023             amazonlinux  150 k
 glib2                   x86_64  2.74.7-688.amzn2023.0.1      amazonlinux  2.7 M
 glibc                   x86_64  2.34-52.amzn2023.0.3         amazonlinux  1.9 M
 glibc-common            x86_64  2.34-52.amzn2023.0.3         amazonlinux  307 k
 glibc-minimal-langpack  x86_64  2.34-52.amzn2023.0.3         amazonlinux   35 k
 gnupg2-minimal          x86_64  2.3.7-1.amzn2023.0.4         amazonlinux  421 k
 keyutils-libs           x86_64  1.6.3-1.amzn2023             amazonlinux   33 k
 libcap                  x86_64  2.48-2.amzn2023.0.3          amazonlinux   67 k
 libcurl-minimal         x86_64  8.0.1-1.amzn2023             amazonlinux  249 k
 libgcc                  x86_64  11.3.1-4.amzn2023.0.3        amazonlinux  105 k
 libgomp                 x86_64  11.3.1-4.amzn2023.0.3        amazonlinux  280 k
 libstdc++               x86_64  11.3.1-4.amzn2023.0.3        amazonlinux  744 k
 libxml2                 x86_64  2.10.4-1.amzn2023.0.1        amazonlinux  706 k
 ncurses-base            noarch  6.2-4.20200222.amzn2023.0.4  amazonlinux   60 k
 ncurses-libs            x86_64  6.2-4.20200222.amzn2023.0.4  amazonlinux  328 k
 openssl-libs            x86_64  1:3.0.8-1.amzn2023.0.3       amazonlinux  2.2 M
 python3-rpm             x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux   88 k
 rpm                     x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux  486 k
 rpm-build-libs          x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux   90 k
 rpm-libs                x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux  309 k
 rpm-sign-libs           x86_64  4.16.1.3-12.amzn2023.0.6     amazonlinux   21 k
 system-release          noarch  2023.1.20230628-0.amzn2023   amazonlinux   29 k
 tzdata                  noarch  2023c-1.amzn2023.0.1         amazonlinux  433 k

Transaction Summary
=================================================================================
Upgrade  25 Packages

Total download size: 12 M
Is this ok [y/N]:
```

 `system-release` 패키지 버전은 `dnf upgrade --releasever=2023.1.20230628` 명령에서 요청된 [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) 릴리스인 `dnf upgrade` 명령이 업데이트할 릴리스를 보여줍니다.

 기본적으로 `dnf`는 업데이트를 적용할지 확인하라는 메시지를 표시합니다. `dnf`에 대한 `-y` 플래그를 사용하여 이 프롬프트를 우회할 수 있습니다. 이 예제의 경우 `dnf upgrade -y --releasever=2023.1.20230628` 명령은 업데이트를 적용하기 전에 확인을 요청하지 않습니다. 이는 스크립트 또는 기타 자동화 환경에서 유용합니다.

 업데이트 적용 여부를 확인하면 `dnf`가 업데이트를 적용합니다.

```
Is this ok [y/N]:y
	  Downloading Packages:
(1/25): libcap-2.48-2.amzn2023.0.3.x86_64.rpm    1.5 MB/s |  67 kB     00:00
(2/25): python3-rpm-4.16.1.3-12.amzn2023.0.6.x86 2.1 MB/s |  88 kB     00:00
(3/25): libcurl-minimal-8.0.1-1.amzn2023.x86_64. 2.6 MB/s | 249 kB     00:00
(4/25): glib2-2.74.7-688.amzn2023.0.1.x86_64.rpm  26 MB/s | 2.7 MB     00:00
(5/25): glibc-minimal-langpack-2.34-52.amzn2023. 1.3 MB/s |  35 kB     00:00
(6/25): rpm-build-libs-4.16.1.3-12.amzn2023.0.6. 2.8 MB/s |  90 kB     00:00
(7/25): rpm-libs-4.16.1.3-12.amzn2023.0.6.x86_64 6.6 MB/s | 309 kB     00:00
(8/25): libgcc-11.3.1-4.amzn2023.0.3.x86_64.rpm  3.9 MB/s | 105 kB     00:00
(9/25): glibc-common-2.34-52.amzn2023.0.3.x86_64  11 MB/s | 307 kB     00:00
(10/25): glibc-2.34-52.amzn2023.0.3.x86_64.rpm    31 MB/s | 1.9 MB     00:00
(11/25): rpm-sign-libs-4.16.1.3-12.amzn2023.0.6. 877 kB/s |  21 kB     00:00
(12/25): gnupg2-minimal-2.3.7-1.amzn2023.0.4.x86  15 MB/s | 421 kB     00:00
(13/25): openssl-libs-3.0.8-1.amzn2023.0.3.x86_6  35 MB/s | 2.2 MB     00:00
(14/25): libxml2-2.10.4-1.amzn2023.0.1.x86_64.rp  14 MB/s | 706 kB     00:00
(15/25): curl-minimal-8.0.1-1.amzn2023.x86_64.rp 4.2 MB/s | 150 kB     00:00
(16/25): rpm-4.16.1.3-12.amzn2023.0.6.x86_64.rpm  11 MB/s | 486 kB     00:00
(17/25): libgomp-11.3.1-4.amzn2023.0.3.x86_64.rp 7.0 MB/s | 280 kB     00:00
(18/25): libstdc++-11.3.1-4.amzn2023.0.3.x86_64.  14 MB/s | 744 kB     00:00
(19/25): keyutils-libs-1.6.3-1.amzn2023.x86_64.r 1.6 MB/s |  33 kB     00:00
(20/25): ncurses-libs-6.2-4.20200222.amzn2023.0.  10 MB/s | 328 kB     00:00
(21/25): tzdata-2023c-1.amzn2023.0.1.noarch.rpm   11 MB/s | 433 kB     00:00
(22/25): amazon-linux-repo-cdn-2023.1.20230628-0 781 kB/s |  18 kB     00:00
(23/25): ca-certificates-2023.2.60-1.0.amzn2023.  16 MB/s | 829 kB     00:00
(24/25): system-release-2023.1.20230628-0.amzn20 1.5 MB/s |  29 kB     00:00
(25/25): ncurses-base-6.2-4.20200222.amzn2023.0. 3.1 MB/s |  60 kB     00:00
---------------------------------------------------------------------------------
Total                                             28 MB/s |  12 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                         1/1
  Upgrading        : libgcc-11.3.1-4.amzn2023.0.3.x86_64                    1/50
  Running scriptlet: libgcc-11.3.1-4.amzn2023.0.3.x86_64                    1/50
  Upgrading        : system-release-2023.1.20230628-0.amzn2023.noarch       2/50
  Upgrading        : amazon-linux-repo-cdn-2023.1.20230628-0.amzn2023.no    3/50
  Upgrading        : ncurses-base-6.2-4.20200222.amzn2023.0.4.noarch        4/50
  Upgrading        : tzdata-2023c-1.amzn2023.0.1.noarch                     5/50
  Upgrading        : glibc-common-2.34-52.amzn2023.0.3.x86_64               6/50
  Running scriptlet: glibc-2.34-52.amzn2023.0.3.x86_64                      7/50
  Upgrading        : glibc-2.34-52.amzn2023.0.3.x86_64                      7/50
  Running scriptlet: glibc-2.34-52.amzn2023.0.3.x86_64                      7/50
  Upgrading        : glibc-minimal-langpack-2.34-52.amzn2023.0.3.x86_64     8/50
  Upgrading        : libcap-2.48-2.amzn2023.0.3.x86_64                      9/50
  Upgrading        : gnupg2-minimal-2.3.7-1.amzn2023.0.4.x86_64            10/50
  Upgrading        : libgomp-11.3.1-4.amzn2023.0.3.x86_64                  11/50
  Running scriptlet: ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     12/50
  Upgrading        : ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     12/50
  Running scriptlet: ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     12/50
  Upgrading        : openssl-libs-1:3.0.8-1.amzn2023.0.3.x86_64            13/50
  Upgrading        : libcurl-minimal-8.0.1-1.amzn2023.x86_64               14/50
  Upgrading        : curl-minimal-8.0.1-1.amzn2023.x86_64                  15/50
  Upgrading        : rpm-libs-4.16.1.3-12.amzn2023.0.6.x86_64              16/50
  Upgrading        : rpm-4.16.1.3-12.amzn2023.0.6.x86_64                   17/50
  Upgrading        : rpm-build-libs-4.16.1.3-12.amzn2023.0.6.x86_64        18/50
  Upgrading        : rpm-sign-libs-4.16.1.3-12.amzn2023.0.6.x86_64         19/50
  Upgrading        : python3-rpm-4.16.1.3-12.amzn2023.0.6.x86_64           20/50
  Upgrading        : glib2-2.74.7-688.amzn2023.0.1.x86_64                  21/50
  Upgrading        : libxml2-2.10.4-1.amzn2023.0.1.x86_64                  22/50
  Upgrading        : libstdc++-11.3.1-4.amzn2023.0.3.x86_64                23/50
  Upgrading        : keyutils-libs-1.6.3-1.amzn2023.x86_64                 24/50
  Upgrading        : ncurses-libs-6.2-4.20200222.amzn2023.0.4.x86_64       25/50
  Cleanup          : glib2-2.73.2-680.amzn2023.0.3.x86_64                  26/50
  Cleanup          : libstdc++-11.3.1-4.amzn2023.0.2.x86_64                27/50
  Cleanup          : libxml2-2.10.3-2.amzn2023.0.1.x86_64                  28/50
  Cleanup          : python3-rpm-4.16.1.3-12.amzn2023.0.5.x86_64           29/50
  Cleanup          : rpm-build-libs-4.16.1.3-12.amzn2023.0.5.x86_64        30/50
  Cleanup          : rpm-sign-libs-4.16.1.3-12.amzn2023.0.5.x86_64         31/50
  Cleanup          : rpm-libs-4.16.1.3-12.amzn2023.0.5.x86_64              32/50
  Cleanup          : libcap-2.48-2.amzn2023.0.2.x86_64                     33/50
  Cleanup          : gnupg2-minimal-2.3.7-1.amzn2023.0.3.x86_64            34/50
  Cleanup          : ncurses-libs-6.2-4.20200222.amzn2023.0.3.x86_64       35/50
  Cleanup          : libgomp-11.3.1-4.amzn2023.0.2.x86_64                  36/50
  Cleanup          : rpm-4.16.1.3-12.amzn2023.0.5.x86_64                   37/50
  Cleanup          : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64             38/50
  Cleanup          : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64          39/50
  Cleanup          : openssl-libs-1:3.0.8-1.amzn2023.0.1.x86_64            40/50
  Cleanup          : keyutils-libs-1.6.1-2.amzn2023.0.2.x86_64             41/50
  Cleanup          : amazon-linux-repo-cdn-2023.0.20230315-1.amzn2023.no   42/50
  Cleanup          : system-release-2023.0.20230315-1.amzn2023.noarch      43/50
  Cleanup          : ca-certificates-2023.2.60-1.0.amzn2023.0.1.noarch     44/50
  Cleanup          : ncurses-base-6.2-4.20200222.amzn2023.0.3.noarch       45/50
  Cleanup          : glibc-minimal-langpack-2.34-52.amzn2023.0.2.x86_64    46/50
  Cleanup          : glibc-2.34-52.amzn2023.0.2.x86_64                     47/50
  Cleanup          : glibc-common-2.34-52.amzn2023.0.2.x86_64              48/50
  Cleanup          : tzdata-2022g-1.amzn2023.0.1.noarch                    49/50
  Cleanup          : libgcc-11.3.1-4.amzn2023.0.2.x86_64                   50/50
  Running scriptlet: libgcc-11.3.1-4.amzn2023.0.2.x86_64                   50/50
  Running scriptlet: ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     50/50
  Running scriptlet: rpm-4.16.1.3-12.amzn2023.0.6.x86_64                   50/50
  Running scriptlet: libgcc-11.3.1-4.amzn2023.0.2.x86_64                   50/50
  Verifying        : libcurl-minimal-8.0.1-1.amzn2023.x86_64                1/50
  Verifying        : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           2/50
  Verifying        : libcap-2.48-2.amzn2023.0.3.x86_64                      3/50
  Verifying        : libcap-2.48-2.amzn2023.0.2.x86_64                      4/50
  Verifying        : glib2-2.74.7-688.amzn2023.0.1.x86_64                   5/50
  Verifying        : glib2-2.73.2-680.amzn2023.0.3.x86_64                   6/50
  Verifying        : python3-rpm-4.16.1.3-12.amzn2023.0.6.x86_64            7/50
  Verifying        : python3-rpm-4.16.1.3-12.amzn2023.0.5.x86_64            8/50
  Verifying        : glibc-minimal-langpack-2.34-52.amzn2023.0.3.x86_64     9/50
  Verifying        : glibc-minimal-langpack-2.34-52.amzn2023.0.2.x86_64    10/50
  Verifying        : rpm-libs-4.16.1.3-12.amzn2023.0.6.x86_64              11/50
  Verifying        : rpm-libs-4.16.1.3-12.amzn2023.0.5.x86_64              12/50
  Verifying        : rpm-build-libs-4.16.1.3-12.amzn2023.0.6.x86_64        13/50
  Verifying        : rpm-build-libs-4.16.1.3-12.amzn2023.0.5.x86_64        14/50
  Verifying        : glibc-2.34-52.amzn2023.0.3.x86_64                     15/50
  Verifying        : glibc-2.34-52.amzn2023.0.2.x86_64                     16/50
  Verifying        : libgcc-11.3.1-4.amzn2023.0.3.x86_64                   17/50
  Verifying        : libgcc-11.3.1-4.amzn2023.0.2.x86_64                   18/50
  Verifying        : glibc-common-2.34-52.amzn2023.0.3.x86_64              19/50
  Verifying        : glibc-common-2.34-52.amzn2023.0.2.x86_64              20/50
  Verifying        : rpm-sign-libs-4.16.1.3-12.amzn2023.0.6.x86_64         21/50
  Verifying        : rpm-sign-libs-4.16.1.3-12.amzn2023.0.5.x86_64         22/50
  Verifying        : openssl-libs-1:3.0.8-1.amzn2023.0.3.x86_64            23/50
  Verifying        : openssl-libs-1:3.0.8-1.amzn2023.0.1.x86_64            24/50
  Verifying        : gnupg2-minimal-2.3.7-1.amzn2023.0.4.x86_64            25/50
  Verifying        : gnupg2-minimal-2.3.7-1.amzn2023.0.3.x86_64            26/50
  Verifying        : libxml2-2.10.4-1.amzn2023.0.1.x86_64                  27/50
  Verifying        : libxml2-2.10.3-2.amzn2023.0.1.x86_64                  28/50
  Verifying        : curl-minimal-8.0.1-1.amzn2023.x86_64                  29/50
  Verifying        : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64             30/50
  Verifying        : rpm-4.16.1.3-12.amzn2023.0.6.x86_64                   31/50
  Verifying        : rpm-4.16.1.3-12.amzn2023.0.5.x86_64                   32/50
  Verifying        : libstdc++-11.3.1-4.amzn2023.0.3.x86_64                33/50
  Verifying        : libstdc++-11.3.1-4.amzn2023.0.2.x86_64                34/50
  Verifying        : libgomp-11.3.1-4.amzn2023.0.3.x86_64                  35/50
  Verifying        : libgomp-11.3.1-4.amzn2023.0.2.x86_64                  36/50
  Verifying        : keyutils-libs-1.6.3-1.amzn2023.x86_64                 37/50
  Verifying        : keyutils-libs-1.6.1-2.amzn2023.0.2.x86_64             38/50
  Verifying        : ncurses-libs-6.2-4.20200222.amzn2023.0.4.x86_64       39/50
  Verifying        : ncurses-libs-6.2-4.20200222.amzn2023.0.3.x86_64       40/50
  Verifying        : ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch     41/50
  Verifying        : ca-certificates-2023.2.60-1.0.amzn2023.0.1.noarch     42/50
  Verifying        : tzdata-2023c-1.amzn2023.0.1.noarch                    43/50
  Verifying        : tzdata-2022g-1.amzn2023.0.1.noarch                    44/50
  Verifying        : amazon-linux-repo-cdn-2023.1.20230628-0.amzn2023.no   45/50
  Verifying        : amazon-linux-repo-cdn-2023.0.20230315-1.amzn2023.no   46/50
  Verifying        : system-release-2023.1.20230628-0.amzn2023.noarch      47/50
  Verifying        : system-release-2023.0.20230315-1.amzn2023.noarch      48/50
  Verifying        : ncurses-base-6.2-4.20200222.amzn2023.0.4.noarch       49/50
  Verifying        : ncurses-base-6.2-4.20200222.amzn2023.0.3.noarch       50/50

Upgraded:
  amazon-linux-repo-cdn-2023.1.20230628-0.amzn2023.noarch
  ca-certificates-2023.2.60-1.0.amzn2023.0.2.noarch
  curl-minimal-8.0.1-1.amzn2023.x86_64
  glib2-2.74.7-688.amzn2023.0.1.x86_64
  glibc-2.34-52.amzn2023.0.3.x86_64
  glibc-common-2.34-52.amzn2023.0.3.x86_64
  glibc-minimal-langpack-2.34-52.amzn2023.0.3.x86_64
  gnupg2-minimal-2.3.7-1.amzn2023.0.4.x86_64
  keyutils-libs-1.6.3-1.amzn2023.x86_64
  libcap-2.48-2.amzn2023.0.3.x86_64
  libcurl-minimal-8.0.1-1.amzn2023.x86_64
  libgcc-11.3.1-4.amzn2023.0.3.x86_64
  libgomp-11.3.1-4.amzn2023.0.3.x86_64
  libstdc++-11.3.1-4.amzn2023.0.3.x86_64
  libxml2-2.10.4-1.amzn2023.0.1.x86_64
  ncurses-base-6.2-4.20200222.amzn2023.0.4.noarch
  ncurses-libs-6.2-4.20200222.amzn2023.0.4.x86_64
  openssl-libs-1:3.0.8-1.amzn2023.0.3.x86_64
  python3-rpm-4.16.1.3-12.amzn2023.0.6.x86_64
  rpm-4.16.1.3-12.amzn2023.0.6.x86_64
  rpm-build-libs-4.16.1.3-12.amzn2023.0.6.x86_64
  rpm-libs-4.16.1.3-12.amzn2023.0.6.x86_64
  rpm-sign-libs-4.16.1.3-12.amzn2023.0.6.x86_64
  system-release-2023.1.20230628-0.amzn2023.noarch
  tzdata-2023c-1.amzn2023.0.1.noarch

  Complete!
bash-5.2#
```

------
#### [ Updates in the latest version ]

 이 예제에서는 [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) 릴리스의 컨테이너를 시작한 경우 `latest` AL2023 버전에서 사용할 수 있는 업데이트를 적용합니다. 작성 시점에 `latest` 릴리스는 [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html)이므로 이 예제에 나열된 업데이트는 해당 릴리스를 기준으로 합니다.

**참고**  
 이 예제에서는 [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) 및 [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html) 릴리스를 사용하며, 후자는 *작성 시점*의 최신 릴리스입니다. 최신 릴리스에 대한 자세한 내용은 [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/)를 참조하세요.

 이 예제에서는 [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) 릴리스의 컨테이너 이미지로 시작합니다.

 먼저 컨테이너 레지스트리에서 이 컨테이너 이미지를 가져옵니다. 끝에 있는 `.1`은 특정 릴리스의 이미지 버전을 나타냅니다. 이미지 버전은 일반적으로 0이지만 이 예제에서는 이미지 버전이 1인 릴리스를 사용합니다.

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  2023.4.20240319.1: Pulling from amazonlinux/amazonlinux
6de065fda9a2: Pull complete
Digest: sha256:b4838c4cc9211d966b6ea158dacc9eda7433a16ba94436508c2d9f01f7658b4e
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
```

 이제 컨테이너 내에 쉘을 생성하여 업데이트를 적용할 수 있습니다.

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  bash-5.2#
```

 이제 `dnf upgrade` 명령은 `latest` 릴리스에서 사용 가능한 업데이트를 적용하는 데 사용됩니다. 이 업데이트는 *작성 당시* [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html)이었습니다.

**참고**  
 패키지 업데이트를 적용하는 것은 권한이 있는 작업입니다. 컨테이너에서 실행할 때는 일반적으로 권한 상승이 필요하지 않지만 Amazon EC2 인스턴스 같은 컨테이너화되지 않은 환경에서 실행하는 경우 `root` 사용자로 `dnf upgrade` 명령을 실행해야 합니다. 이 작업은 `sudo` 또는 `su` 명령을 사용하여 수행할 수 있습니다.

 기본적으로 `dnf`는 업데이트를 적용할지 확인하라는 메시지를 표시합니다. 이 예제에서는 `dnf`에 대한 `-y` 플래그를 사용하여 이 프롬프트를 우회합니다.

```
$ dnf -y --releasever=latest update
Amazon Linux 2023 repository                      75 MB/s |  25 MB     00:00
Last metadata expiration check: 0:00:04 ago on Mon Jul 22 18:00:10 2024.
Dependencies resolved.
=================================================================================
 Package                 Arch    Version                      Repository    Size
=================================================================================
Upgrading:
 amazon-linux-repo-cdn   noarch  2023.5.20240708-1.amzn2023   amazonlinux   17 k
 curl-minimal            x86_64  8.5.0-1.amzn2023.0.4         amazonlinux  160 k
 dnf                     noarch  4.14.0-1.amzn2023.0.5        amazonlinux  460 k
 dnf-data                noarch  4.14.0-1.amzn2023.0.5        amazonlinux   34 k
 expat                   x86_64  2.5.0-1.amzn2023.0.4         amazonlinux  117 k
 glibc                   x86_64  2.34-52.amzn2023.0.10        amazonlinux  1.9 M
 glibc-common            x86_64  2.34-52.amzn2023.0.10        amazonlinux  295 k
 glibc-minimal-langpack  x86_64  2.34-52.amzn2023.0.10        amazonlinux   23 k
 krb5-libs               x86_64  1.21-3.amzn2023.0.4          amazonlinux  758 k
 libblkid                x86_64  2.37.4-1.amzn2023.0.4        amazonlinux  105 k
 libcurl-minimal         x86_64  8.5.0-1.amzn2023.0.4         amazonlinux  275 k
 libmount                x86_64  2.37.4-1.amzn2023.0.4        amazonlinux  132 k
 libnghttp2              x86_64  1.59.0-3.amzn2023.0.1        amazonlinux   79 k
 libsmartcols            x86_64  2.37.4-1.amzn2023.0.4        amazonlinux   62 k
 libuuid                 x86_64  2.37.4-1.amzn2023.0.4        amazonlinux   26 k
 openssl-libs            x86_64  1:3.0.8-1.amzn2023.0.12      amazonlinux  2.2 M
 python3                 x86_64  3.9.16-1.amzn2023.0.8        amazonlinux   27 k
 python3-dnf             noarch  4.14.0-1.amzn2023.0.5        amazonlinux  409 k
 python3-libs            x86_64  3.9.16-1.amzn2023.0.8        amazonlinux  7.3 M
 system-release          noarch  2023.5.20240708-1.amzn2023   amazonlinux   28 k
 yum                     noarch  4.14.0-1.amzn2023.0.5        amazonlinux   32 k

 Transaction Summary
=================================================================================
Upgrade  21 Packages

Total download size: 14 M
Downloading Packages:
(1/21): amazon-linux-repo-cdn-2023.5.20240708-1. 345 kB/s |  17 kB     00:00
(2/21): dnf-4.14.0-1.amzn2023.0.5.noarch.rpm     6.8 MB/s | 460 kB     00:00
(3/21): dnf-data-4.14.0-1.amzn2023.0.5.noarch.rp 1.6 MB/s |  34 kB     00:00
(4/21): expat-2.5.0-1.amzn2023.0.4.x86_64.rpm    4.6 MB/s | 117 kB     00:00
(5/21): glibc-2.34-52.amzn2023.0.10.x86_64.rpm    38 MB/s | 1.9 MB     00:00
(6/21): glibc-common-2.34-52.amzn2023.0.10.x86_6 8.8 MB/s | 295 kB     00:00
(7/21): glibc-minimal-langpack-2.34-52.amzn2023. 1.7 MB/s |  23 kB     00:00
(8/21): curl-minimal-8.5.0-1.amzn2023.0.4.x86_64 998 kB/s | 160 kB     00:00
(9/21): libblkid-2.37.4-1.amzn2023.0.4.x86_64.rp 4.1 MB/s | 105 kB     00:00
(10/21): krb5-libs-1.21-3.amzn2023.0.4.x86_64.rp  16 MB/s | 758 kB     00:00
(11/21): libmount-2.37.4-1.amzn2023.0.4.x86_64.r 7.9 MB/s | 132 kB     00:00
(12/21): libnghttp2-1.59.0-3.amzn2023.0.1.x86_64 5.6 MB/s |  79 kB     00:00
(13/21): libsmartcols-2.37.4-1.amzn2023.0.4.x86_ 4.4 MB/s |  62 kB     00:00
(14/21): libcurl-minimal-8.5.0-1.amzn2023.0.4.x8 7.1 MB/s | 275 kB     00:00
(15/21): libuuid-2.37.4-1.amzn2023.0.4.x86_64.rp 1.1 MB/s |  26 kB     00:00
(16/21): python3-3.9.16-1.amzn2023.0.8.x86_64.rp 1.5 MB/s |  27 kB     00:00
(17/21): python3-dnf-4.14.0-1.amzn2023.0.5.noarc  19 MB/s | 409 kB     00:00
(18/21): system-release-2023.5.20240708-1.amzn20 1.9 MB/s |  28 kB     00:00
(19/21): yum-4.14.0-1.amzn2023.0.5.noarch.rpm    1.6 MB/s |  32 kB     00:00
(20/21): openssl-libs-3.0.8-1.amzn2023.0.12.x86_  26 MB/s | 2.2 MB     00:00
(21/21): python3-libs-3.9.16-1.amzn2023.0.8.x86_  59 MB/s | 7.3 MB     00:00
---------------------------------------------------------------------------------
Total                                             34 MB/s |  14 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                         1/1
  Upgrading        : glibc-common-2.34-52.amzn2023.0.10.x86_64              1/42
  Upgrading        : glibc-minimal-langpack-2.34-52.amzn2023.0.10.x86_64    2/42
  Running scriptlet: glibc-2.34-52.amzn2023.0.10.x86_64                     3/42
  Upgrading        : glibc-2.34-52.amzn2023.0.10.x86_64                     3/42
  Running scriptlet: glibc-2.34-52.amzn2023.0.10.x86_64                     3/42
  Upgrading        : libuuid-2.37.4-1.amzn2023.0.4.x86_64                   4/42
  Upgrading        : openssl-libs-1:3.0.8-1.amzn2023.0.12.x86_64            5/42
  Upgrading        : krb5-libs-1.21-3.amzn2023.0.4.x86_64                   6/42
  Upgrading        : libblkid-2.37.4-1.amzn2023.0.4.x86_64                  7/42
  Running scriptlet: libblkid-2.37.4-1.amzn2023.0.4.x86_64                  7/42
  Upgrading        : expat-2.5.0-1.amzn2023.0.4.x86_64                      8/42
  Upgrading        : python3-3.9.16-1.amzn2023.0.8.x86_64                   9/42
  Upgrading        : python3-libs-3.9.16-1.amzn2023.0.8.x86_64             10/42
  Upgrading        : libnghttp2-1.59.0-3.amzn2023.0.1.x86_64               11/42
  Upgrading        : libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64           12/42
  Upgrading        : system-release-2023.5.20240708-1.amzn2023.noarch      13/42
  Upgrading        : amazon-linux-repo-cdn-2023.5.20240708-1.amzn2023.no   14/42
  Upgrading        : dnf-data-4.14.0-1.amzn2023.0.5.noarch                 15/42
  Upgrading        : python3-dnf-4.14.0-1.amzn2023.0.5.noarch              16/42
  Upgrading        : dnf-4.14.0-1.amzn2023.0.5.noarch                      17/42
  Running scriptlet: dnf-4.14.0-1.amzn2023.0.5.noarch                      17/42
  Upgrading        : yum-4.14.0-1.amzn2023.0.5.noarch                      18/42
  Upgrading        : curl-minimal-8.5.0-1.amzn2023.0.4.x86_64              19/42
  Upgrading        : libmount-2.37.4-1.amzn2023.0.4.x86_64                 20/42
  Upgrading        : libsmartcols-2.37.4-1.amzn2023.0.4.x86_64             21/42
  Cleanup          : yum-4.14.0-1.amzn2023.0.4.noarch                      22/42
  Running scriptlet: dnf-4.14.0-1.amzn2023.0.4.noarch                      23/42
  Cleanup          : dnf-4.14.0-1.amzn2023.0.4.noarch                      23/42
  Running scriptlet: dnf-4.14.0-1.amzn2023.0.4.noarch                      23/42
  Cleanup          : python3-dnf-4.14.0-1.amzn2023.0.4.noarch              24/42
  Cleanup          : amazon-linux-repo-cdn-2023.4.20240319-1.amzn2023.no   25/42
  Cleanup          : libmount-2.37.4-1.amzn2023.0.3.x86_64                 26/42
  Cleanup          : curl-minimal-8.5.0-1.amzn2023.0.2.x86_64              27/42
  Cleanup          : libcurl-minimal-8.5.0-1.amzn2023.0.2.x86_64           28/42
  Cleanup          : krb5-libs-1.21-3.amzn2023.0.3.x86_64                  29/42
  Cleanup          : libblkid-2.37.4-1.amzn2023.0.3.x86_64                 30/42
  Cleanup          : libnghttp2-1.57.0-1.amzn2023.0.1.x86_64               31/42
  Cleanup          : libsmartcols-2.37.4-1.amzn2023.0.3.x86_64             32/42
  Cleanup          : system-release-2023.4.20240319-1.amzn2023.noarch      33/42
  Cleanup          : dnf-data-4.14.0-1.amzn2023.0.4.noarch                 34/42
  Cleanup          : python3-3.9.16-1.amzn2023.0.6.x86_64                  35/42
  Cleanup          : python3-libs-3.9.16-1.amzn2023.0.6.x86_64             36/42
  Cleanup          : openssl-libs-1:3.0.8-1.amzn2023.0.11.x86_64           37/42
  Cleanup          : libuuid-2.37.4-1.amzn2023.0.3.x86_64                  38/42
  Cleanup          : expat-2.5.0-1.amzn2023.0.3.x86_64                     39/42
  Cleanup          : glibc-2.34-52.amzn2023.0.8.x86_64                     40/42
  Cleanup          : glibc-minimal-langpack-2.34-52.amzn2023.0.8.x86_64    41/42
  Cleanup          : glibc-common-2.34-52.amzn2023.0.8.x86_64              42/42
  Running scriptlet: glibc-common-2.34-52.amzn2023.0.8.x86_64              42/42
  Verifying        : amazon-linux-repo-cdn-2023.5.20240708-1.amzn2023.no    1/42
  Verifying        : amazon-linux-repo-cdn-2023.4.20240319-1.amzn2023.no    2/42
  Verifying        : curl-minimal-8.5.0-1.amzn2023.0.4.x86_64               3/42
  Verifying        : curl-minimal-8.5.0-1.amzn2023.0.2.x86_64               4/42
  Verifying        : dnf-4.14.0-1.amzn2023.0.5.noarch                       5/42
  Verifying        : dnf-4.14.0-1.amzn2023.0.4.noarch                       6/42
  Verifying        : dnf-data-4.14.0-1.amzn2023.0.5.noarch                  7/42
  Verifying        : dnf-data-4.14.0-1.amzn2023.0.4.noarch                  8/42
  Verifying        : expat-2.5.0-1.amzn2023.0.4.x86_64                      9/42
  Verifying        : expat-2.5.0-1.amzn2023.0.3.x86_64                     10/42
  Verifying        : glibc-2.34-52.amzn2023.0.10.x86_64                    11/42
  Verifying        : glibc-2.34-52.amzn2023.0.8.x86_64                     12/42
  Verifying        : glibc-common-2.34-52.amzn2023.0.10.x86_64             13/42
  Verifying        : glibc-common-2.34-52.amzn2023.0.8.x86_64              14/42
  Verifying        : glibc-minimal-langpack-2.34-52.amzn2023.0.10.x86_64   15/42
  Verifying        : glibc-minimal-langpack-2.34-52.amzn2023.0.8.x86_64    16/42
  Verifying        : krb5-libs-1.21-3.amzn2023.0.4.x86_64                  17/42
  Verifying        : krb5-libs-1.21-3.amzn2023.0.3.x86_64                  18/42
  Verifying        : libblkid-2.37.4-1.amzn2023.0.4.x86_64                 19/42
  Verifying        : libblkid-2.37.4-1.amzn2023.0.3.x86_64                 20/42
  Verifying        : libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64           21/42
  Verifying        : libcurl-minimal-8.5.0-1.amzn2023.0.2.x86_64           22/42
  Verifying        : libmount-2.37.4-1.amzn2023.0.4.x86_64                 23/42
  Verifying        : libmount-2.37.4-1.amzn2023.0.3.x86_64                 24/42
  Verifying        : libnghttp2-1.59.0-3.amzn2023.0.1.x86_64               25/42
  Verifying        : libnghttp2-1.57.0-1.amzn2023.0.1.x86_64               26/42
  Verifying        : libsmartcols-2.37.4-1.amzn2023.0.4.x86_64             27/42
  Verifying        : libsmartcols-2.37.4-1.amzn2023.0.3.x86_64             28/42
  Verifying        : libuuid-2.37.4-1.amzn2023.0.4.x86_64                  29/42
  Verifying        : libuuid-2.37.4-1.amzn2023.0.3.x86_64                  30/42
  Verifying        : openssl-libs-1:3.0.8-1.amzn2023.0.12.x86_64           31/42
  Verifying        : openssl-libs-1:3.0.8-1.amzn2023.0.11.x86_64           32/42
  Verifying        : python3-3.9.16-1.amzn2023.0.8.x86_64                  33/42
  Verifying        : python3-3.9.16-1.amzn2023.0.6.x86_64                  34/42
  Verifying        : python3-dnf-4.14.0-1.amzn2023.0.5.noarch              35/42
  Verifying        : python3-dnf-4.14.0-1.amzn2023.0.4.noarch              36/42
  Verifying        : python3-libs-3.9.16-1.amzn2023.0.8.x86_64             37/42
  Verifying        : python3-libs-3.9.16-1.amzn2023.0.6.x86_64             38/42
  Verifying        : system-release-2023.5.20240708-1.amzn2023.noarch      39/42
  Verifying        : system-release-2023.4.20240319-1.amzn2023.noarch      40/42
  Verifying        : yum-4.14.0-1.amzn2023.0.5.noarch                      41/42
  Verifying        : yum-4.14.0-1.amzn2023.0.4.noarch                      42/42

Upgraded:
  amazon-linux-repo-cdn-2023.5.20240708-1.amzn2023.noarch
  curl-minimal-8.5.0-1.amzn2023.0.4.x86_64
  dnf-4.14.0-1.amzn2023.0.5.noarch
  dnf-data-4.14.0-1.amzn2023.0.5.noarch
  expat-2.5.0-1.amzn2023.0.4.x86_64
  glibc-2.34-52.amzn2023.0.10.x86_64
  glibc-common-2.34-52.amzn2023.0.10.x86_64
  glibc-minimal-langpack-2.34-52.amzn2023.0.10.x86_64
  krb5-libs-1.21-3.amzn2023.0.4.x86_64
  libblkid-2.37.4-1.amzn2023.0.4.x86_64
  libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64
  libmount-2.37.4-1.amzn2023.0.4.x86_64
  libnghttp2-1.59.0-3.amzn2023.0.1.x86_64
  libsmartcols-2.37.4-1.amzn2023.0.4.x86_64
  libuuid-2.37.4-1.amzn2023.0.4.x86_64
  openssl-libs-1:3.0.8-1.amzn2023.0.12.x86_64
  python3-3.9.16-1.amzn2023.0.8.x86_64
  python3-dnf-4.14.0-1.amzn2023.0.5.noarch
  python3-libs-3.9.16-1.amzn2023.0.8.x86_64
  system-release-2023.5.20240708-1.amzn2023.noarch
  yum-4.14.0-1.amzn2023.0.5.noarch

Complete!
bash-5.2#
```

------

AL2023 업데이트를 확인하려면 다음 중 하나 이상을 수행하세요.
+  `dnf check-update` 명령을 실행합니다. 이렇게 하면 잠긴 Amazon Linux 버전에서 적용되지 않은 업데이트가 있는지 확인할 수 있습니다. `system-release` 패키지만 업데이트한 경우 인스턴스가 잠긴 리포지토리 버전은 변경되지만 해당 버전에서 사용 가능한 업데이트는 적용되지 않아 업데이트가 표시될 수 있습니다.
+ Amazon Linux 리포지토리 업데이트 SNS 주제(`arn:aws:sns:us-east-1:137112412989:amazon-linux-2023-ami-updates`)를 구독하세요. 자세한 설명은 *Amazon Simple Notification Service 개발자 안내서*에서 [Amazon SNS 주제 구독](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)을 참조하세요.
+ [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html)를 정기적으로 확인하세요.
+  [`dnf check-release-update`로 최신 리포지토리 버전 확인](#dnf-repository-updates)의 조치를 통해 새 버전을 확인합니다.

**중요**  
 보안 업데이트가 포함된 AL2023의 새 버전이 자주 릴리스됩니다. 관련 보안 패치를 최신 상태로 유지해야 합니다.

## (보안) 업데이트 후 자동 서비스 재시작
<a name="automatic-restart-services"></a>

Amazon Linux는 이제 [smart-restart](https://github.com/amazonlinux/smart-restart) 패키지와 함께 제공됩니다. `Smart-restart`는 systems 패키지 관리자를 사용하여 패키지를 설치하거나 삭제할 때마다 시스템 업데이트 시 systemd 서비스를 다시 시작합니다. 이는 `dnf (update|upgrade|downgrade)`가 실행될 때마다 발생합니다.

`Smart-restart`는 `dnf-utils`의 `needs-restarting` 패키지와 사용자 지정 거부 목록 메커니즘을 사용하여 재시작해야 할 서비스와 시스템 재부팅 권장 여부를 결정합니다. 시스템 재부팅이 권장되면 재부팅 힌트 마커 파일(`/run/smart-restart/reboot-hint-marker`)이 생성됩니다.

**`smart-restart`을(를) 설치하려면**  
(다른 패키지와 마찬가지로) 다음 DNF 명령을 실행합니다.

```
$ sudo dnf install smart-restart
```

설치 후 후속 트랜잭션은 `smart-restart` 로직을 트리거합니다.

**거부 목록**  
`Smart-restart`는 특정 서비스의 재시작을 차단하도록 지시할 수 있습니다. 차단된 서비스는 재부팅이 필요한지 여부를 결정하는 데 영향을 주지 않습니다. 추가 서비스를 차단하려면 다음 예제와 같이 `/etc/smart-restart-conf.d/`에 접미사가 `-denylist`인 파일을 추가합니다.

```
$ cat /etc/smart-restart-conf.d/custom-denylist
# Some comments
myservice.service
```

**참고**  
재부팅이 필요한지 여부를 결정할 때 모든 `*-denylist` 파일을 읽고 평가합니다.

**사용자 지정 후크**  
거부 목록 작성 외에도 `smart-restart`는 서비스를 다시 시작하려고 시도하기 전과 후에 사용자 지정 스크립트를 실행하는 메커니즘을 제공합니다. 사용자 지정 스크립트를 사용하여 준비 단계를 수동으로 수행하거나 나머지 재시작 또는 완료된 재시작을 다른 구성 요소에 알릴 수 있습니다.

`/etc/smart-restart-conf.d/`에서 접미사가 `-pre-restart` 또는 `-post-restart`인 모든 스크립트가 실행됩니다. 순서가 중요한 경우 다음 예제와 같이 실행 순서를 확인할 수 있도록 모든 스크립트에 숫자 접두사를 붙입니다.

```
$ ls /etc/smart-restart-conf.d/*-pre-restart
001-my-script-pre-restart
002-some-other-script-pre-restart
```

## 보안 업데이트를 적용하려면 언제 재부팅해야 하나요?
<a name="reboot"></a>

경우에 따라 업데이트를 적용하려면 Amazon Linux를 재부팅해야 합니다.
+ Linux 커널 패키지 업데이트는 최신 보안 업데이트가 적용된 새 커널을 활성화하기 위해 재부팅이 필요합니다. 커널 라이브 패치를 사용하면 제한된 기간 동안 보안 업데이트를 연기할 수 있습니다. 자세한 내용은 [AL2023의 커널 라이브 패치](live-patching.md) 섹션을 참조하세요.
+ EC2 Metal 인스턴스에서 Amazon Linux는 (Intel CPU용 `microcode_ctl` 패키지와 AMD CPU용 `amd-ucode-firmware` 패키지를 통해) 마이크로코드 업데이트를 제공합니다. 이러한 마이크로코드 업데이트는 후속 인스턴스 재부팅 시에만 활성화됩니다. 가상화된 EC2 인스턴스의 경우 기본 [AWS Nitro 시스템](https://docs.aws.amazon.com/whitepapers/latest/security-design-of-aws-nitro-system/security-design-of-aws-nitro-system.html)이 마이크로코드 업데이트를 처리합니다.
+ 실행 중인 일부 systemd 서비스는 전체 시스템을 다시 시작한 후에만 올바르게 작동합니다. `smart-restart` 메커니즘은 재부팅 힌트를 남겨 이러한 상황에 대해 알려줍니다. [(보안) 업데이트 후 자동 서비스 재시작](#automatic-restart-services)을(를) 참조하세요.

## 최신 리포지토리 버전이 활성화된 상태로 인스턴스 시작
<a name="launch-an-instance-repo-version"></a>

사용자 데이터 스크립트에 DNF 명령을 추가하면 Amazon Linux AMI 실행 시 설치할 RPM 패키지를 선택할 수 있습니다. 다음은 사용자 데이터 스크립트로 user-data 스크립트로 실행한 모든 인스턴스에 동일한 패키지 업데이트가 설치되어 있는지 확인하는 예시입니다.

```
#!/bin/bash
dnf upgrade --releasever=2023.0.20230210
# Additional setup and install commands below
dnf install httpd php7.4 mysql80
```

이 스크립트는 수퍼 유저(루트)로 실행해야 합니다. 다음 명령으로 실행하세요.

```
$ sudo sh -c "bash nameofscript.sh"
```

자세한 내용은 *Amazon EC2 사용 설명서*의 [사용자 데이터 및 쉘 스크립트](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-shell-scripts) 섹션을 참조하세요.

**참고**  
사용자 데이터 스크립트 대신 최신 Amazon Linux AMI 버전 또는 Amazon Linux AMI 기반의 사용자 지정 AMI를 실행하세요. 최신 Amazon Linux AMI에 필요한 업데이트가 모두 설치되어 있으며 특정 리포지토리 버전에서 실행되도록 구성되어 있습니다.

## 패키지 지원 정보 가져오기
<a name="dnf-support-info-plugin"></a>

다양한 오픈 소스 소프트웨어 프로젝트가 AL2023에 통합되어 있습니다. 각 프로젝트는 Amazon Linux에서 개별 관리되며 출시 및 지원 종료 일정도 다릅니다. DNF `supportinfo` 플러그인이 제공하는 패키지 메타데이터를 통해 이러한 패키지에 대한 Amazon Linux 정보를 알 수 있습니다. 다음은 **dnf supportinfo** 명령이 `glibc` 패키지의 메타데이터를 반환하는 예시입니다.

```
$ sudo dnf supportinfo --pkg glibc 
Last metadata expiration check: 0:07:56 ago on Wed Mar  1 23:21:49 2023.
Name                 : glibc
Version              : 2.34-52.amzn2023.0.2
State                : installed
Support Status       : supported
Support Periods      : from 2023-03-15      : supported
                     : from 2028-03-15      : unsupported
Support Statement    : Amazon Linux 2023 End Of Life
Link                 : https://aws.amazon.com/amazon-linux-ami/faqs/
Other Info           : This is the support statement for AL2023. The
     ...: end of life of Amazon Linux 2023 would be March 2028.
     ...: From this point, the Amazon Linux 2023 packages (listed
  ...: below) will no longer, receive any updates from AWS.
```

 패키지 지원 정보는 [AL2023 릴리스 노트](https://docs.aws.amazon.com/linux/al2023/release-notes/)의 [지원 설명](https://docs.aws.amazon.com/linux/al2023/release-notes/support-info-by-support-statement.html) 섹션에서도 확인할 수 있습니다.

## `dnf check-release-update`로 최신 리포지토리 버전 확인
<a name="dnf-repository-updates"></a>

 AL2023 인스턴스는 DNF 유틸리티를 사용하여 리포지토리를 관리하고 RPM 패키지 업데이트를 할 수 있습니다. Amazon Linux 리포지토리에서 이 패키지를 사용할 수 있습니다. DNF 명령 `dnf check-release-update`로 최신 DNF 리포지토리 버전을 확인할 수 있습니다.

**참고**  
 AL2023 컨테이너 이미지에는 기본적으로 `dnf check-release-update` 명령이 포함되지 않습니다.  

```
$ dnf check-release-update
No such command: check-release-update. Please use /usr/bin/dnf --help
It could be a DNF plugin command, try: "dnf install 'dnf-command(check-release-update)'"
```
 `dnf install 'dnf-command(check-release-update)'`가 실행되면 `dnf`는 `check-release-update` 명령을 제공하는 패키지, 즉 `dnf-plugin-release-notification` 패키지를 설치합니다. 아래 예제에서는 무음 출력을 위해 `-q` 인수가 `dnf`에 제공됩니다.  

```
$ dnf -y -q install 'dnf-command(check-release-update)'
Installed:
  dnf-plugin-release-notification-1.2-1.amzn2023.0.2.noarch
```

 Amazon EC2 인스턴스와 같은 컨테이너화되지 않은 환경에서는 기본적으로 `check-release-update` 명령이 포함됩니다.

```
$ sudo dnf check-release-update
WARNING:
  A newer release of "Amazon Linux" is available.

  Available Versions:

  Version 2023.0.20230210:
    Run the following command to update to 2023.0.20230210:

      dnf upgrade --releasever=2023.0.20230210

    Release notes:
     https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html
```

그러면 사용 가능한 모든 최신 DNF 리포지토리 버전을 알 수 있습니다. 결과가 나오지 않으면 DNF이 현재 사용 가능한 최신 버전이라는 뜻입니다. 현재 설치된 `system-release` 패키지 버전은 `releasever` DNF 변수로 설정되어 있습니다. 다음 명령을 실행하여 현재 리포지토리 버전을 확인합니다.

```
$ rpm -q system-release --qf "%{VERSION}\n"
```

DNF 패키지 트랜잭션(예: 설치, 업데이트 또는 제거 명령)을 실행하면 최신 리포지토리 버전을 알리는 메시지가 나타납니다. 예를 들어, AL2023 구 버전으로 실행한 인스턴스에 `httpd` 패키지를 설치하면 다음과 같은 출력이 나타납니다.

```
$ sudo dnf install httpd -y
Last metadata expiration check: 0:16:52 ago on Wed Mar  1 23:21:49 2023.
Dependencies resolved.
====================================================================
 Package            Arch   Version                Repository   Size
====================================================================
Installing:
 httpd              x86_64 2.4.54-3.amzn2023.0.4  amazonlinux  46 k
Installing dependencies:
 apr                x86_64 1.7.2-2.amzn2023.0.2   amazonlinux 129 k
 apr-util           x86_64 1.6.3-1.amzn2023.0.1   amazonlinux  98 k
 generic-logos-httpd
                    noarch 18.0.0-12.amzn2023.0.3 amazonlinux  19 k
 httpd-core         x86_64 2.4.54-3.amzn2023.0.4  amazonlinux 1.3 M
 httpd-filesystem   noarch 2.4.54-3.amzn2023.0.4  amazonlinux  13 k
 httpd-tools        x86_64 2.4.54-3.amzn2023.0.4  amazonlinux  80 k
 libbrotli          x86_64 1.0.9-4.amzn2023.0.2   amazonlinux 315 k
 mailcap            noarch 2.1.49-3.amzn2023.0.3  amazonlinux  33 k
Installing weak dependencies:
 apr-util-openssl   x86_64 1.6.3-1.amzn2023.0.1   amazonlinux  17 k
 mod_http2          x86_64 1.15.24-1.amzn2023.0.3 amazonlinux 152 k
 mod_lua            x86_64 2.4.54-3.amzn2023.0.4  amazonlinux  60 k

Transaction Summary
====================================================================
Install  12 Packages

Total download size: 2.3 M
Installed size: 6.8 M
Downloading Packages:
(1/12): apr-util-openssl-1.6.3-1.am 212 kB/s |  17 kB     00:00
(2/12): apr-1.7.2-2.amzn2023.0.2.x8 1.1 MB/s | 129 kB     00:00
(3/12): httpd-core-2.4.54-3.amzn202 8.9 MB/s | 1.3 MB     00:00
(4/12): mod_http2-1.15.24-1.amzn202 1.9 MB/s | 152 kB     00:00
(5/12): apr-util-1.6.3-1.amzn2023.0 1.7 MB/s |  98 kB     00:00
(6/12): mod_lua-2.4.54-3.amzn2023.0 1.4 MB/s |  60 kB     00:00
(7/12): httpd-2.4.54-3.amzn2023.0.4 1.5 MB/s |  46 kB     00:00
(8/12): libbrotli-1.0.9-4.amzn2023. 4.4 MB/s | 315 kB     00:00
(9/12): mailcap-2.1.49-3.amzn2023.0 753 kB/s |  33 kB     00:00
(10/12): httpd-tools-2.4.54-3.amzn2 978 kB/s |  80 kB     00:00
(11/12): httpd-filesystem-2.4.54-3. 210 kB/s |  13 kB     00:00
(12/12): generic-logos-httpd-18.0.0 439 kB/s |  19 kB     00:00
--------------------------------------------------------------------
Total                               6.6 MB/s | 2.3 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                            1/1
  Installing       : apr-1.7.2-2.amzn2023.0.2.x86_64           1/12
  Installing       : apr-util-openssl-1.6.3-1.amzn2023.0.1.    2/12
  Installing       : apr-util-1.6.3-1.amzn2023.0.1.x86_64      3/12
  Installing       : mailcap-2.1.49-3.amzn2023.0.3.noarch      4/12
  Installing       : httpd-tools-2.4.54-3.amzn2023.0.4.x86_    5/12
  Installing       : generic-logos-httpd-18.0.0-12.amzn2023    6/12
  Running scriptlet: httpd-filesystem-2.4.54-3.amzn2023.0.4    7/12
  Installing       : httpd-filesystem-2.4.54-3.amzn2023.0.4    7/12
  Installing       : httpd-core-2.4.54-3.amzn2023.0.4.x86_6    8/12
  Installing       : mod_http2-1.15.24-1.amzn2023.0.3.x86_6    9/12
  Installing       : libbrotli-1.0.9-4.amzn2023.0.2.x86_64    10/12
  Installing       : mod_lua-2.4.54-3.amzn2023.0.4.x86_64     11/12
  Installing       : httpd-2.4.54-3.amzn2023.0.4.x86_64       12/12
  Running scriptlet: httpd-2.4.54-3.amzn2023.0.4.x86_64       12/12
  Verifying        : apr-1.7.2-2.amzn2023.0.2.x86_64           1/12
  Verifying        : apr-util-openssl-1.6.3-1.amzn2023.0.1.    2/12
  Verifying        : httpd-core-2.4.54-3.amzn2023.0.4.x86_6    3/12
  Verifying        : mod_http2-1.15.24-1.amzn2023.0.3.x86_6    4/12
  Verifying        : apr-util-1.6.3-1.amzn2023.0.1.x86_64      5/12
  Verifying        : mod_lua-2.4.54-3.amzn2023.0.4.x86_64      6/12
  Verifying        : libbrotli-1.0.9-4.amzn2023.0.2.x86_64     7/12
  Verifying        : httpd-2.4.54-3.amzn2023.0.4.x86_64        8/12
  Verifying        : httpd-tools-2.4.54-3.amzn2023.0.4.x86_    9/12
  Verifying        : mailcap-2.1.49-3.amzn2023.0.3.noarch     10/12
  Verifying        : httpd-filesystem-2.4.54-3.amzn2023.0.4   11/12
  Verifying        : generic-logos-httpd-18.0.0-12.amzn2023   12/12

Installed:
  apr-1.7.2-2.amzn2023.0.2.x86_64
  apr-util-1.6.3-1.amzn2023.0.1.x86_64
  apr-util-openssl-1.6.3-1.amzn2023.0.1.x86_64
  generic-logos-httpd-18.0.0-12.amzn2023.0.3.noarch
  httpd-2.4.54-3.amzn2023.0.4.x86_64
  httpd-core-2.4.54-3.amzn2023.0.4.x86_64
  httpd-filesystem-2.4.54-3.amzn2023.0.4.noarch
  httpd-tools-2.4.54-3.amzn2023.0.4.x86_64
  libbrotli-1.0.9-4.amzn2023.0.2.x86_64
  mailcap-2.1.49-3.amzn2023.0.3.noarch
  mod_http2-1.15.24-1.amzn2023.0.3.x86_64
  mod_lua-2.4.54-3.amzn2023.0.4.x86_64

Complete!
```

## 새 리포지토리 추가, 사용 또는 사용 중지
<a name="dnf-repo-addition"></a>

**주의**  
 AL2023과 함께 사용하도록 설계된 리포지토리만 추가합니다.  
 다른 배포용으로 설계된 리포지토리는 현재 작동할 수 있지만 AL2023의 패키지 업데이트 또는 AL2023과 함께 사용하도록 설계되지 않은 리포지토리에서도 계속 작동할 것이라는 보장은 없습니다.

기본 Amazon Linux 리포지토리와 다른 리포지토리에서 패키지를 설치하려면 리포지토리가 어디에 있는지 알 수 있도록 `DNF` 패키지 관리 시스템을 구성해야 합니다.

 패키지 리포지토리에 대해 `dnf`에 알리려면 `/etc/yum.repos.d/` 디렉터리의 해당 리포지토리에 대한 구성 파일에 리포지토리 정보를 추가합니다. 많은 타사 리포지토리는 구성 파일 콘텐츠 또는 구성 파일이 포함된 설치 가능한 패키지를 제공합니다.

**참고**  
 리포지토리는 `/etc/dnf/dnf.conf` 파일에서 직접 구성할 수 있지만 권장되지 않습니다. 각 리포지토리는 `/etc/yum.repos.d/`의 자체 파일에 구성하는 것이 좋습니다.

**다음 명령을 실행하여 현재 활성화된 리포지토리를 확인할 수 있습니다.**

```
$ dnf repolist all --verbose
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, release-notification, repoclosure, repodiff, repograph, repomanage, reposync, supportinfo
DNF version: 4.12.0
cachedir: /var/cache/dnf
Last metadata expiration check: 0:00:02 ago on Wed Mar  1 23:40:15 2023.
Repo-id            : amazonlinux
Repo-name          : Amazon Linux 2023 repository
Repo-status        : enabled
Repo-revision      : 1677203368
Repo-updated       : Fri Feb 24 01:49:28 2023
Repo-pkgs          : 12632
Repo-available-pkgs: 12632
Repo-size          : 12 G
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/core/mirrors/2023.0.20230222/x86_64/mirror.list
Repo-baseurl       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/core/guids/cf9296325a6c46ff40c775a8e2d632c4c3fd9d9164014ce3304715d61b90ca8e/x86_64/
                   : (0 more)
Repo-expire        : 172800 second(s) (last: Wed Mar  1 23:40:15
                   : 2023)
Repo-filename      : /etc/yum.repos.d/amazonlinux.repo

Repo-id            : amazonlinux-debuginfo
Repo-name          : Amazon Linux 2023 repository - Debug
Repo-status        : disabled
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/core/mirrors/2023.0.20230222/debuginfo/x86_64/mirror.list
Repo-expire        : 21600 second(s) (last: unknown)
Repo-filename      : /etc/yum.repos.d/amazonlinux.repo

Repo-id            : amazonlinux-source
Repo-name          : Amazon Linux 2023 repository - Source packages
Repo-status        : disabled
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/core/mirrors/2023.0.20230222/SRPMS/mirror.list
Repo-expire        : 21600 second(s) (last: unknown)
Repo-filename      : /etc/yum.repos.d/amazonlinux.repo

Repo-id            : kernel-livepatch
Repo-name          : Amazon Linux 2023 Kernel Livepatch repository
Repo-status        : disabled
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/kernel-livepatch/mirrors/al2023/x86_64/mirror.list
Repo-expire        : 172800 second(s) (last: unknown)
Repo-filename      : /etc/yum.repos.d/kernel-livepatch.repo

Repo-id            : kernel-livepatch-source
Repo-name          : Amazon Linux 2023 Kernel Livepatch repository -
                   : Source packages
Repo-status        : disabled
Repo-mirrors       : https://al2023-repos-us-west-2-de612dc2.s3.dualstack.us-west-2.amazonaws.com/kernel-livepatch/mirrors/al2023/SRPMS/mirror.list
Repo-expire        : 21600 second(s) (last: unknown)
Repo-filename      : /etc/yum.repos.d/kernel-livepatch.repo
Total packages: 12632
```

**참고**  
`--verbose` 옵션 플래그를 추가하지 않으면 `Repo-id`, `Repo-name` 및 `Repo-status` 정보만 출력에 포함됩니다.

**`/etc/yum.repos.d` 디렉터리에 `yum` 리포지토리 추가하기**

1. `.repo` 파일의 위치를 찾습니다. 이 예시에서 `.repo` 파일은 `https://www.example.com/repository.repo`에 있습니다.

1. `dnf config-manager` 명령을 사용하여 리포지토리를 추가합니다.

```
$ sudo dnf config-manager --add-repo https://www.example.com/repository.repo
Loaded plugins: priorities, update-motd, upgrade-helper
adding repo from: https://www.example.com/repository.repo
grabbing file https://www.example.com/repository.repo to /etc/yum.repos.d/repository.repo
repository.repo                                      | 4.0 kB     00:00
repo saved to /etc/yum.repos.d/repository.repo
```

리포지토리를 설치한 후 다음 절차에 따라 리포지토리를 활성화합니다.

****`/etc/yum.repos.d`에서 `yum` 리포지토리를 사용하려면 `--enable` 플래그 및 *리포지토리* 이름과 함께 `dnf config-manager` 명령을 사용합니다.

```
$ sudo dnf config-manager --enable repository
```

**참고**  
리포지토리 사용 중지하려면 동일한 명령 구문을 사용하되 명령을 `--enable`에서 `--disable`로 변경하세요.

## cloud-init를 사용하여 리포지토리 추가
<a name="cloud-init-repo-update"></a>

이 방법으로 리포지토리를 추가할 수 있지만 `cloud-init` 프레임워크를 사용하여 새 리포지토리를 추가할 수도 있습니다.

새 패키지 리포지토리를 추가하려면 다음 템플릿을 사용하는 것이 좋습니다. 이 파일을 로컬에 저장하는 것을 추천합니다.

```
#cloud-config
yum_repos: 
  repository.repo: 
    baseurl: https://www.example.com/
    enabled: true
    gpgcheck: true
    gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EXAMPLE
    name: Example Repository
```

**참고**  
`cloud-init`를 사용하면 좋은 점 한 가지는 구성 파일에 `packages:` 섹션을 추가할 수 있다는 것입니다. 설치하려는 패키지 이름을 이 섹션에 추가할 수 있습니다. 패키지는 기본 리포지토리 또는 `cloud-config` 파일에 추가한 새 리포지토리에서 설치할 수 있습니다.  
YAML 파일 구조에 대한 자세한 내용은 *`cloud-init` 설명서*의 [YUM 리포지토리 추가](https://cloudinit.readthedocs.io/en/22.2.2/topics/examples.html#adding-a-yum-repository)(Adding a YUM repository)를 참조하세요.

YAML 형식 파일을 설정한 후에는 AWS CLI의 `cloud-init` 프레임워크에서 해당 파일을 실행할 수 있습니다. `--userdata` 옵션과 `.yml` 파일 이름을 포함해야 원하는 작업을 호출할 수 있습니다.

```
$ aws ec2 run-instances \
  --image-id \
    resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64 \
  --instance-type m5.xlarge \
  --region us-east-1 \
  --key-name aws-key-us-east-1 \
  --security-group-ids sg-004a7650 \
  --user-data file://cloud-config.yml
```

# AL2023의 커널 라이브 패치
<a name="live-patching"></a>

AL2023의 커널 라이브 패치를 사용하면 실행 중인 애플리케이션을 재부팅하거나 중단하지 않고 실행 중인 Linux 커널에 특정 보안 취약성 및 중요 버그 패치를 적용할 수 있습니다. 또한 커널 라이브 패치는 시스템을 재부팅할 수 있을 때까지 이러한 수정 사항을 적용하면서 애플리케이션의 가용성을 개선하는 데 도움이 될 수 있습니다.

AWS는 AL2023에 다음과 같은 두 가지 유형의 커널 라이브 패치를 릴리스합니다.
+ **보안 업데이트** - Linux의 공통 보안 취약성 및 노출(Common Vulnerabilities and Exposures) 목록 업데이트가 있습니다. 이러한 업데이트는 일반적으로 Amazon Linux 보안 권고 등급을 사용하여 중요 또는 매우 중요로 등급이 매겨집니다. 대개 공통 취약점 등급 시스템(Common Vulnerability Scoring System) 점수 7 이상에 매핑됩니다. 경우에 따라 CVE가 할당되기 전에 AWS에서 업데이트를 제공할 수 있습니다. 이러한 경우 버그 수정 패치를 배포합니다.
+ **버그 수정** - CVE와 관련없는 중요한 버그 및 안정성 문제에 대한 수정 사항이 포함되어 있습니다.

AWS는 릴리스 후 최대 3개월 동안 AL2023 커널 버전에 대한 커널 라이브 패치를 제공합니다. 3개월 후 커널 라이브 패치를 계속 받으려면 최신 커널 버전으로 업데이트해야 합니다.

AL2023 커널 라이브 패치는 기존 AL2023 리포지토리에서 서명된 RPM 패키지로 사용할 수 있으며, 패치는 기존 **DNF 패키지 관리자** 워크플로우를 사용하여 개별 인스턴스에 설치할 수 있습니다. 또는 AWS Systems Manager를 사용하여 관리형 인스턴스 그룹에 설치할 수 있습니다.

AL2023 커널 라이브 패치는 무료로 제공됩니다.

**Topics**
+ [

## 제한 사항
](#live-patching-limitations)
+ [

## 지원되는 구성 및 필수 조건
](#live-patching-prereq)
+ [

## 커널 라이브 패치 작업
](#working-with-live-patching)

## 제한 사항
<a name="live-patching-limitations"></a>

커널 라이브 패치를 적용하는 동안 최대 절전 모드를 실행하거나, 고급 디버깅 도구(예: `SystemTap`, `kprobes` 및 `eBPF` 기반 도구)를 사용하거나, 커널 라이브 패치 인프라에 사용되는 `ftrace` 출력 파일에 액세스할 수 없습니다.

**참고**  
기술적 제한으로 인해 일부 문제는 라이브 패치로 해결할 수 없습니다. 따라서 이러한 수정 사항은 커널 라이브 패치 패키지로 배송되지 않고 네이티브 커널 패키지 업데이트로만 배송됩니다. 네이티브 커널 패키지를 설치하고 시스템을 [업데이트 및 재부팅](https://docs.aws.amazon.com/linux/al2023/ug/updating.html)하여 평소와 같이 패치를 활성화할 수 있습니다.

## 지원되는 구성 및 필수 조건
<a name="live-patching-prereq"></a>

커널 라이브 패치는 AL2023을 실행하는 Amazon EC2 인스턴스 및 온프레미스 가상 머신에서 사용할 수 있습니다.

AL2023 커널 라이브 패치를 사용하려면 다음 사양이 필요합니다.
+ 64비트 `x86_64` 또는 `ARM64` 아키텍처
+ 커널 버전 `6.1` 또는 `6.12`

### 정책 요구 사항
<a name="policy-requirements"></a>

AL2023 리포지토리에서 패키지를 다운로드하려면 Amazon EC2가 서비스 소유 Amazon S3 버킷에 액세스할 수 있어야 합니다. 환경에서 Amazon S3용 Amazon 가상 프라이빗 클라우드(VPC) 엔드포인트를 사용하는 경우 VPC 엔드포인트 정책이 해당 퍼블릭 버킷에 대한 액세스를 허용하는지 확인해야 합니다. 다음 표에서는 커널 라이브 패치를 위해 EC2가 액세스해야 할 수 있는 각 Amazon S3 버킷에 대해 설명합니다.


| S3 버킷 ARN | 설명 | 
| --- | --- | 
|  arn:aws:s3:::al2023-repos-*region*-de612dc2/\$1  |  AL2023 리포지토리가 포함된 Amazon S3 버킷  | 

## 커널 라이브 패치 작업
<a name="working-with-live-patching"></a>

인스턴스 자체 명령줄을 사용하여 개별 인스턴스에서 커널 라이브 패치를 활성화하고 사용할 수 있습니다. 또는 AWS Systems Manager를 사용하여 관리형 인스턴스 그룹에서 커널 라이브 패치를 활성화하고 사용할 수 있습니다.

다음 섹션에서는 명령줄을 사용하여 개별 인스턴스에서 커널 라이브 패치를 활성화하고 사용하는 방법에 대해 설명합니다.

관리형 인스턴스 그룹에서 커널 라이브 패치를 활성화하고 사용하는 방법에 대한 자세한 내용은 AWS Systems Manager 사용 설명서에서 [AL2023 인스턴스에서 커널 라이브 패치 사용](https://docs.aws.amazon.com/systems-manager/latest/userguide/kernel-live-patching.html) 섹션을 참조하세요.

**Topics**
+ [

### 커널 라이브 패치 활성화
](#live-patching-enable)
+ [

### 사용 가능한 커널 라이브 패치 보기
](#live-patching-view-available)
+ [

### 커널 라이브 패치 적용
](#live-patching-apply)
+ [

### 설치된 커널 라이브 패치 보기
](#live-patching-view)
+ [

### 커널 라이브 패치 비활성화
](#live-patching-disable)

### 커널 라이브 패치 활성화
<a name="live-patching-enable"></a>

커널 라이브 패치는 AL2023에서 기본적으로 비활성화되어 있습니다. 라이브 패치를 사용하려면 커널 라이브 패치 **DNF** 플러그인을 설치하고 라이브 패치 기능을 활성화해야 합니다.

**커널 라이브 패치 활성화**

1. 커널 라이브 패치는 커널 버전 `6.1`가 포함된 AL2023에 사용할 수 있습니다. 커널 버전을 확인하려면 다음 명령을 실행합니다.

   ```
   $ sudo dnf list kernel
   ```

1. 커널 라이브 패치용 **DNF** 플러그인을 설치합니다.

   ```
   $ sudo dnf install -y kpatch-dnf
   ```

1. 커널 라이브 패치용 **DNF** 플러그인을 활성화합니다.

   ```
   $ sudo dnf kernel-livepatch -y auto
   ```

   또한 이 명령으로 구성된 리포지토리에서 최신 버전의 커널 라이브 패치 RPM을 설치할 수 있습니다.

1. 커널 라이브 패치용 **DNF** 플러그인이 성공적으로 설치되었는지 확인하려면 다음 명령을 실행합니다.

   커널 라이브 패치를 활성화하면 빈 커널 라이브 패치 RPM이 적용됩니다. 커널 라이브 패치가 성공적으로 활성화된 경우 이 명령은 초기 빈 커널 라이브 패치 RPM(및 라이브 패치가 포함된 DNF 리포지토리를 설정하는 또 다른 RPM)을 포함하는 목록을 반환합니다.

   ```
   $ sudo rpm -qa | grep kernel-livepatch
   kernel-livepatch-repo-s3-2023.7.20250428-0.amzn2023.noarch
   kernel-livepatch-6.1.134-150.224-1.0-0.amzn2023.x86_64
   ```

1. **kpatch** 패키지를 설치합니다.

   ```
   $ sudo dnf install -y kpatch-runtime
   ```

1. **kpatch** 서비스가 이전에 설치된 경우 업데이트합니다.

   ```
   $ sudo dnf upgrade kpatch-runtime
   ```

1. **kpatch** 서비스를 시작합니다. 이 서비스로 초기화 또는 부팅 시 모든 커널 라이브 패치를 로드할 수 있습니다.

   ```
   $ sudo systemctl enable kpatch.service && sudo systemctl start kpatch.service
   ```

### 사용 가능한 커널 라이브 패치 보기
<a name="live-patching-view-available"></a>

Amazon Linux 보안 알림이 Amazon Linux 보안 센터에 게시됩니다. 커널 라이브 패치 알림을 비롯한 AL 2023 보안 알림에 대한 자세한 내용은 [Amazon Linux 보안 센터](https://alas.aws.amazon.com/alas2023.html)를 참조하세요. 커널 라이브 패치 앞에 `ALASLIVEPATCH`가 붙습니다. Amazon Linux 보안 센터에는 버그를 해결하는 커널 라이브 패치가 나열되지 않을 수 있습니다.

명령줄을 사용하여 권고 및 CVE와 관련된 사용 가능한 커널 라이브 패치를 찾을 수도 있습니다.

**권고와 관련된 사용 가능한 모든 커널 라이브 패치를 나열하려면**  
다음 명령을 사용합니다.

```
$ sudo dnf updateinfo list
Last metadata expiration check: 1:06:23 ago on Mon 13 Feb 2023 09:28:19 PM UTC.
ALAS2LIVEPATCH-2021-123   important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
ALAS2LIVEPATCH-2022-124   important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
```

**CVE와 관련된 사용 가능한 모든 커널 라이브 패치를 나열하려면**  
다음 명령을 사용합니다.

```
$ sudo dnf updateinfo list cves
Last metadata expiration check: 1:07:26 ago on Mon 13 Feb 2023 09:28:19 PM UTC.
CVE-2022-0123    important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
CVE-2022-3210    important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
```

### 커널 라이브 패치 적용
<a name="live-patching-apply"></a>

**DNF** 패키지 관리자로 정기적인 업데이트를 하는 것과 같은 방식으로 커널 라이브 패치를 설치합니다. 커널 라이브 패치용 **DNF** 플러그인은 적용 가능한 커널 라이브 패치를 관리합니다.

**작은 정보**  
커널 라이브 패치를 사용하여 커널을 정기적으로 업데이트하여 시스템을 재부팅할 수 있을 때까지 중요한 보안 수정 사항과 긴급 보안 수정 사항을 수신하도록 하는 것이 좋습니다. 또한 라이브 패치로 배포할 수 없는 네이티브 커널 패키지에 대한 추가 수정 사항을 사용할 수 있는지 확인하고 이러한 경우 커널 업데이트로 [업데이트하고 재부팅](https://docs.aws.amazon.com/linux/al2023/ug/updating.html)하세요.

특정 커널 라이브 패치를 설치하거나 정기 보안 업데이트로 사용 가능한 커널 라이브 패치를 설치할 수 있습니다.

**특정 커널 라이브 패치를 적용하려면**

1. [사용 가능한 커널 라이브 패치 보기](#live-patching-view-available)에 설명된 명령 중 하나를 사용하여 커널 라이브 패치 버전을 설치합니다.

1. AL2023 커널에 커널 라이브 패치를 설치합니다.

   ```
   $ sudo dnf install kernel-livepatch-kernel_version-package_version.amzn2023.x86_64
   ```

   예를 들어, 다음 명령은 AL2023 커널 `6.1.12-17.42` 버전에 커널 라이브 패치를 설치합니다.

   ```
   $ sudo dnf install kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
   ```

**정기 보안 업데이트와 함께 사용 가능한 커널 라이브 패치를 적용하려면**  
다음 명령을 사용합니다.

```
$ sudo dnf upgrade --security
```

버그 수정을 포함하려면 `--security` 옵션을 생략하세요.

**중요**  
커널 버전은 커널 라이브 패치를 설치한 후에 업데이트되지 않으며 인스턴스를 재부팅한 후에만 새 버전으로 업데이트됩니다.
AL2023 커널은 3개월 동안 커널 라이브 패치를 받습니다. 3개월이 경과한 후에는 해당 커널 버전에 대한 새로운 커널 라이브 패치가 릴리스되지 않습니다.
3개월 후에도 계속 커널 라이브 패치를 받으려면 인스턴스를 재부팅하여 최신 커널 버전으로 업데이트해야 합니다. 업데이트 후 다음 3개월 동안 커널 라이브 패치가 인스턴스에 설치됩니다.
커널 버전에 대한 지원 기간을 확인하려면 다음 명령을 실행합니다.  

  ```
  $ sudo dnf kernel-livepatch support
  The current version of the Linux kernel you are running will no longer receive live patches after 2025-07-22.
  ```

### 설치된 커널 라이브 패치 보기
<a name="live-patching-view"></a>

**설치된 커널 라이브 패치를 보려면**  
다음 명령을 사용합니다.

```
$ sudo kpatch list
Loaded patch modules:
livepatch_CVE_2022_36946 [enabled]

Installed patch modules:
livepatch_CVE_2022_36946 (6.1.57-29.131.amzn2023.x86_64)
livepatch_CVE_2022_36946 (6.1.57-30.131.amzn2023.x86_64)
```

이 명령은 로드되고 설치된 보안 업데이트 커널 라이브 패치 목록을 반환합니다. 다음은 예시 출력입니다.

**참고**  
단일 커널 라이브 패치에 여러 개의 라이브 패치가 포함되어 설치될 수 있습니다.

### 커널 라이브 패치 비활성화
<a name="live-patching-disable"></a>

커널 라이브 패치를 더 이상 사용할 필요가 없는 경우 언제든지 비활성화할 수 있습니다.
+ livepatches 사용 비활성화:

  1. 플러그인 비활성화: 

     ```
     $ sudo dnf kernel-livepatch manual
     ```

  1. kpatch 서비스 비활성화: 

     ```
     $ sudo systemctl disable --now kpatch.service
     ```
+ livepatch 도구 완전 삭제:

  1. 플러그인 삭제:

     ```
     $ sudo dnf remove kpatch-dnf
     ```

  1. kpatch-runtime 삭제:

     ```
     $ sudo dnf remove kpatch-runtime
     ```

  1. 설치된 livepatches 삭제:

     ```
     $ sudo dnf remove kernel-livepatch\*
     ```

# 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까지 지원됩니다.