AmazonLinux3じゃなくってAmazon Linux 2022 (AL2022) だってさ。

こんにちは、AWSエンジニアの内です。

2021年11月にAmazonLinux2の後継となる、AmazonLinux2022(略してAL2022)が公開されてますので、実際に構築と運用してみました。

こちらの記事では、AWSがRockyLinuxのスポンサーをしているから、AmazonLinux3RockyLinuxベースという予想をしていましたが、名前もベースOSも予想が見事にはずれました。

引用:”AWSがスポンサーしてビルドインフラ提供していることから、AmazonLinux3はきっとRockyLinuxベースになるんだろうなと思わざるを得ません。”

AmazonLinux2022はFedoraがアップストリーム

はい、私が勝手にAmazonLinux3という名前でリリースされると思っていたものは、正しくはAmazonLinux2022(AL2022)で、Fedoraの最新がアップストリームとなっており、Fedoraに対してAWSが独自でテストして、バグフィックス、セキュリティアップデート対応した安定版が提供されます。

2022年1月31日現在公開されているAmazonLinux2022はプレビュー版で、ベースOSはFedora34となってますが、現時点でリリースされているFedoraの最新版はFedora35なので、今後公開されるAmazonLinux2022の正式リリース版はFedora35ベースとなる可能性が高いです。

AmazonLinux2022以降はメジャーバージョンが2年ごとにリリースされる

特筆すべきは今後のAmazonLinux系のメジャーバージョンリリース間隔も発表されていることです。

https://docs.aws.amazon.com/linux/al2022/ug/release-cadence.html

AmazonLinux2022のスタンダードサポートは2年間でその後3年間のメンテナンスサポート期間があり、合計5年間のLTS(Long Term Support)になりますが、スタンダードサポートの終了と同時に新しいメジャーバージョンがリリースされることになってます。
2年ごとという非常に短い間隔でAmazonLinux2024,AmazonLinux2026,AmazonLinux2028とメジャーバージョンが次々とリリースされる予定です。

AmazonLinux2028までリリースのスケジュールが発表されているので、利用者は製品ライフサイクルの一部としてOSのアップグレードの計画が組みやすい、ということをメリットとしています。

こちらは私の勝手な見解ですが、2年という短期間でメジャーバージョンをリリースする上に、全てがLTSということは、非常に計画の実行とメンテナンスの維持に労力≑稼働がかかることとだと想像できます。
上記の横棒グラフから見てとれることとしては、例えば2026年のタイミングではどれもFedoraのメジャーバージョンが異なるアップストリームを持っているAL2022,AL2024,AL2026のメンテナンスを維持しつつAL2028のalpha版新規作成に着手するといったチームリソースが必要と思われ、これはすごいことです、技術力、資金力のあるAWSさんだからできることではないかと思います。

現在稼働中のAmazonLinux2の移行先はどれにしよう?

我々エンジニアにとってはCentOS8終了の影響と相まって、AWS上で稼働しているCentOS系のEC2のOS移行先の選択肢が非常に増えた、ということも意味しますので、悩ましいです。

AmazonLinux2は2018年6月にリリースされ、5年サポートで、EOSが2023年6月30日となってます。
CentOS8のEOLが昨年末まででしたので、多くの方はCentOS8の移行をRHEL8,MIRACLELINUX8,AlmaLinux8,RockyLinux8などで悩み、年末までの移行をやっと完了したと思われますが、
皆様の次のイベントは、2023年6月30までにAmazonLinux2の移行先選定と移行をしなければならない。という方も多いかと思います。

CentOS8の後継系にするか、AL2022にするか、半年待ってAL2024にするか、さらには、EC2の利用をやめてElasticBeanstalk,ECS,EKS,Fargate,サーバーレスフレームワークに移行するか、など大量の検討候補、実コスト、学習コストとの狭間で悩まれる方も多く出てくることが想像できます。お疲れ様です。

最新の機能をいち早く使える可能性

AWSがスポンサーになってるRockyやAlmalinuxをベースとせず、Fedoraをアップストリームするってことは個人的に凄いことだと思ってます。
こちらも私の勝手な予想になってしまいますが、AWSの狙いは、CentOS8の後継系や、下手したらRHEL本家よりも先に、Fedoraの最新機能の安定版を商用で提供する点ではないかという点です。
理由としては、CentOS8後継系とRHELがリリースするフローが、

  1. バグだらけのFedoraがリリースされる
  2. CentOSStreamをリリースして無償利用者からフィードバックもらいバグフィックス
  3. 安定してきたらRHELがリリースされる
  4. CentOS後継系ディストリビューションがRHELのソースをリビルドして各自OSをリリース

という形になるのに対し、AWSが提供する商用OSのAL2022以降は

  1. バグだらけのFedoraがリリースされる
  2. AWSがテストして安定化してリリースする

という2ステップなのと、テストを自前のコスト/リソースでコントロールして行うことで、リリース構造的にAmazonLinuxのほうが最新機能の安定版を提供できるという結果を生み出す可能性があるということになると考えられます。

これはAWSがOSSのいいとこどりをしているという理由から、反発してピュアOSSプロダクトだったRedis、MongoDB、Kafka、ElasticSearch等がライセンス変更してしまったことと、歴史的に無関係ではないのではないかと思いました。

将来的にFedoraがクラウドで利用する場合は商用ライセンス、といったデュアルライセンスをとり、AWSがOSSのFedoraをフォークしてメンテしていく?構図が頭に浮かんでしまうのは気のせいでしょうか。
去年突然サポート終了を発表したCentOS8もFedoraもRedHatがスポンサーですね。

とりあえず起動させてみましょうか

EC2起動画面でal2022で選択します。2022年1月29日現在ではプレビュー版となります。
「al2022」で検索して、コミュニティAMIから選択します。

①minimalインストールか、標準化パッケージ版か、②armかx86_64かどうかの選択肢があります。

al2022-ami-kernel-5.10-arm64 for arm64 architecture
al2022-ami-minimal-kernel-5.10-arm64 for arm64 architecture (minimal AMI)
al2022-ami-kernel-5.10-x86_64 for x86_64 architecture
al2022-ami-minimal-kernel-5.10-x86_64 for x86_64 architecture (minimal AMI)

どれでも結構ですが、今回は標準パッケージがインストールされてるx86_64の最新を選びます。
al2022-ami-2022.0.20211222.0-kernel-5.10-x86_64というものが該当します。

OS情報を見てみる

してみます。

してみます。

ハマリポイント1 sshにログインできない

sshでログインできません。理由はfedora34ベースだからopensshのバージョンがX.Xで、opensshのx.xからデフォルトでSHA-1を用いたRSA署名が廃止されたからです。
暫定対応として、sshd_configに以下1行を追加して有効化します。
ただこれは、ログインできないからやることになるのでユーザーデータで実行します。
後程まとめたユーザーデータで記述します。

PubkeyAcceptedAlgorithms=+ssh-rsa

プレビュー版ではssm-agentもインストールされてないので、コンソールからログインもできません。

ハマリポイント2 selinuxの無効化ができない

結論から言うとal2022ではデフォルトでselinuxがenforcingになってて、Fedora34からselinuxの設定を/etc/selinux/configで指定しても効きません。
Fedora34をベースとしているal2022も同じとなります。
selinuxがenforcingの状態で運用することのほうがセキュリティ上望ましいですが、設定をpermissiveにするには、/etc/default/grubで設定して、/etc/grub2.cfgに反映することになります。

こちらも後述のユーザーデータで反映させました。
インストールして動作確認だけでは気づきにくく、運用してみると、初めて気づくポイントになります。

AmazonLinux2022の暫定初期設定

  1. 最新のamiをつかってもより新しいアップデートがある可能性がありますのでdnf updateしましょう。
  2. これまでどおり必要に応じてswapを作成しましょう、サイズはインスタンスタイプに応じて変更してください。
  3. sshログインできるようにsshd_configをAmazonLinux2同等の設定にします。
  4. タイムゾーンやロケールの設定など日本向けの設定をします。
  5. AmazonLinuxなのに、少なくともプレビュー版ではcloudwatch-angetやssm-agentが入ってないのでいれます。
  6. Fedora34からselinuxの機構が変わってます、とりあえずpermissiveにするにはgrubパラメータを変更します。とりあえずこれらを実行しているスクリプトは以下です、ユーザーデータにコピペすれば、普通に使えるかと思います。

2022/01/31時点の情報で、今後のリリースで以下スクリプトは有効でないかもしれませんし、使用は自己責任でおねがいします。

※参考
https://docs.aws.amazon.com/linux/al2022/ug/linux-ug.pdf
https://docs.aws.amazon.com/linux/al2022/ug/release-cadence.html
https://github.com/amazonlinux/amazon-linux-2022

エンジニア募集の告知

ギークフィードではハイレベルなクラウドエンジニア(を目指している人含む)を随時募集しております。
量より質を重視する企業理念の関係上、採用合格率は決して高くはございませんが、我こそはと思う方はhttps://www.geekfeed.co.jp/recruitment
よりご気軽にご応募お待ちしております。
こんなギークな記事を読んでいる方はきっとギークなので、「内さんの記事を見て応募しました。」で、書類選考通過キャンペーン実施中。

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
内信史
内信史
代表取締役
意識高い系IT企業経営者、エンジニア、コンサルタントだがMacは使いこなせない。 ギークフィードファウンダー、代表取締役、中小企業診断士、 オープンソースコンサルタント、コンタクトセンターシステムコンサルタント、データサイエンティスト エンジニアとして今でもよく触るものはElasitcSearch/Amazon OpenSearch、AWS、Linux、c++ 中小企業診断士としては、会社地元台東区の中小企業向けにホームページやSNSを利用したマーケティングプロモーション支援を実施。

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ