Amazon Linux 2023は2023年3月15日より一般提供が開始されました。このアップデートにより、Amazon Linux 2をはじめとする旧バージョンは「最新かつ最良」と呼べる状態から徐々に離れていきます。なぜ重要なのか、そして何をすべきかを見ていきましょう。
予測可能なライフサイクル
Amazon Linux 2023は、予想どおりAmazon Linuxの次期メジャーバージョンとして登場しました。今回AWSは、AL2023以降、Amazon Linuxのメジャーリリースを2年ごとに提供すると明言しています。また各メジャーバージョンは5年間サポートされます。
- Amazon Linux 1のサポートは2023年12月31日に終了します。
- Amazon Linux 2はマイナーアップデートを伴いつつ、2025年6月30日までサポートされます。
インプレースアップグレードとは、同じマシン上でLinuxイメージのバージョンを更新できる機能です。Ubuntuではサポートされていますが、Amazon Linuxでは未対応のままです。Amazon Linux 2023からAmazon Linux 2025へのインプレースアップグレードについて、AWSは現時点で対応の有無を明らかにしていません。
主な変更点
すべての変更を網羅するのではなく、クラウド運用の観点から特に重要なポイントに絞って紹介します。Amazon Linux 2023における主な変更点は次のとおりです。
- Python 2.7がPython 3に置き換えられました。
- デフォルトのアップグレードはマイナーバージョン間に限定されます。メジャーアップグレードを行うには、対象バージョンを明示的に指定する必要があります。
- AL2023にはAWS CLI v2が標準で同梱されます。
- AL2023では32ビットのユーザースペースパッケージが一切含まれなくなりました。
取り残されていく旧バージョン
本記事執筆時点で、Amazon Linux 2向けに提供されているDockerの最新バージョンはDocker 20.10.25です。一方、AL2023ではDocker 24.0.5が利用できます。
どちらも次のシンプルなコマンドでインストールできます。
$ yum install docker
では、Linux 2のままで最新のDockerを使いたいというケースを考えてみましょう。Dockerの公式ドキュメントは主要なディストリビューション向けの手順を提供していますが、Amazon Machine Imagesはサポート対象外です。
Linux 2のコアイメージを$cat /etc/os-releaseで確認すると、次のような結果が返ります。
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
SUPPORT_END="2025–06–30"
「ならばCentOS向けのインストール手順を流用すればよいのでは」と思うかもしれません。しかし掘り下げるほど、まるでセーターのほつれた糸を引くように、考慮すべき事項が次々と現れます。依存関係の欠落や、その依存関係をインストールする際の不具合など、さまざまな問題に直面することになるでしょう。
結局のところ、Linuxに精通していたとしても、自分以外には保守できないソリューションを抱え込むことになります。そこで発生するバグや不具合もすべて自力で対処しなければなりません。
そうするより、新しいイメージで別のインスタンスを立て直すほうが得策です。確かにカスタムアプリケーションの再インストールやデータ移行は必要になります。それでも新しいイメージなら、ほとんどの場合そのまま動作するはずです。
ベストプラクティス
ベストプラクティスは、インスタンスを丸ごと置き換える方式に頼ることです。前進・切り戻しのいずれにおいても、信頼性と予測可能性が大きく高まります。
Linux 2のインスタンスをアップグレードしたい場合、AWS側のネットワーク構成をすべて維持したまま最短で進める手順は次のとおりです。
- Linux 2のルートボリュームのスナップショットを作成する
- そのスナップショットから新しいボリュームを作成する
- AMIにAmazon Linux 2023を指定して新しいインスタンスを作成する
- 作成したボリュームを新しいインスタンスにアタッチする
- 必要なソフトウェアをインストールする
- アタッチしたボリュームからメインディスクへデータを移行する
- 追加のボリュームをデタッチする
- 環境をテストする
Amazon Linux 2023の新インスタンスを構成・テストした後の手順
古いインスタンスを置き換える手順は次のとおりです。
- テスト済みインスタンス(Amazon Linux 2023)のスナップショットを作成する
- (Amazon Linux 2の)既存のネットワークインターフェイスについて
終了動作を「インスタンス終了時に削除: 無効」に変更します 3. 古いインスタンスを終了します(ダウンタイム開始) 4. (Amazon Linux 2023の)スナップショットから新しいインスタンスを作成します
ネットワークインターフェイスには、既存のENIを選択します 5. 新しいインスタンスが利用可能になります(ダウンタイム終了) 6. 環境および依存するシステムをテストします
参考リンク
Amazon Linux 2 リリースノート: [ https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html]
Amazon Linux 2023 リリースノート
[ https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html]
Amazon Linux 2とAmazon Linux 2023の比較 [ https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html]
Amazon Linux 2023 FAQ