Amazon Linux 2023のOSバージョンアップデート方法

# 概要
Amazon Linux 2023にログインすると`A newer release of "Amazon Linux" is available.`って出てきませんか？

```console
A newer release of "Amazon Linux" is available.
  Version 2023.7.20250331:
Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
```

これが出てきたら新しいOSバージョンがあるということ。私は`Version`がズラッと出るまで溜めてしまったので、今後はそうならないようにアップデート方法をメモしておきます。

※上のconsoleはOSアップデート後にコピーしてきたので少ないですがズラッとありました(笑)

# 環境
- Amazon Linux 2023
  - OS: Amazon Linux 2023.4.20240401
  - インスタンスタイプ: t3a.micro

# 手順
## 現在の状態を確認する

まずは現在のOS情報を確かめます。(別に確かめなくても問題はないですが念のため。)

```console
$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023.4.20240401"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/"
DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/"
SUPPORT_URL="https://aws.amazon.com/premiumsupport/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
VENDOR_NAME="AWS"
VENDOR_URL="https://aws.amazon.com/"
SUPPORT_END="2028-03-15"
```

## 利用可能なOSバージョンを確認する

ログイン時に一覧で出てきてはいますが、念のため利用可能なOSバージョンを確認します。

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

  Available Versions:

  Version 2023.7.20250331:
    Run the following command to upgrade to 2023.7.20250331:

      dnf upgrade --releasever=2023.7.20250331

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

※上のconsoleはOSアップデート後にコピーしてきたので少ないですがズラッと(ry

## アップデートの実行

利用可能なバージョンを確認するとご丁寧に各バージョンごとにコマンドを出してくれるので、`sudo`をつけて実行すればOKです。

```console
$ sudo dnf upgrade --releasever=2023.6.20250317
```

## 再起動が必要か確認する

今回はkernelの更新があったのでどう考えても再起動が必要なのですが、念のため確認します。`-s`はサービス単位で再起動が必要なもの、`-r`はOSごと再起動が必要なものです。

```console
$ sudo needs-restarting -s
$ sudo needs-restarting -r
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.
```

上のconsoleはOSアップデート後にコピーしてきたので再起動が必要なものは無いですが、あった場合は表示されます。今回の場合はどうせOSごと再起動が必要なのでrebootします。

```console
$ sudo reboot
```

reboot後に同じコマンドで確認すると、上記のように何もない状態になると思います。

## アップデート後の状態を確認する

最初にOS情報を確認したコマンドで再度OS情報を確認します。

```console
$ cat /etc/os-release 
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023.6.20250317"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/"
DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/"
SUPPORT_URL="https://aws.amazon.com/premiumsupport/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
VENDOR_NAME="AWS"
VENDOR_URL="https://aws.amazon.com/"
SUPPORT_END="2029-06-30"
```

無事にアップデート作業完了です。お疲れ様でした！

# 参考
- [AL2023 のバージョニングされたリポジトリによる確定的なアップグレード](https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/deterministic-upgrades.html)