📖

re:Invent 2024: AWSがAmazon Linuxの最新動向とAL2023の詳細を発表

2024/01/01に公開

はじめに

海外の様々な講演を日本語記事に書き起こすことで、隠れた良質な情報をもっと身近なものに。そんなコンセプトで進める本企画で今回取り上げるプレゼンテーションはこちら!

📖 AWS re:Invent 2024 - Amazon Linux AL2023 and beyond (CMP206)

この動画では、AWSのカーネル・OS開発ディレクターのChris Schlaegerが、Amazon Linuxの最新動向について解説しています。Amazon Linux 2のサポート期間が2026年6月まで1年延長されること、AL2023の標準サポートが2027年6月まで提供され、その後2年間のメンテナンスサポートが続くことが発表されました。また、GenesysのNicholas Barberが、AL2からAL2023への移行経験を共有し、FIPSコンプライアンスやClassic Load Balancerとの互換性など、具体的な課題と解決策を説明しています。さらに、AL2023では四半期ごとのアップデートで約200のパッケージが追加され、OpenVPN、FreeIPA、Netplan、.NETなど、人気の高いパッケージが実装されていることも紹介されています。
https://www.youtube.com/watch?v=VbQj8DpWUGc
※ 動画から自動生成した記事になります。誤字脱字や誤った内容が記載される可能性がありますので、正確な情報は動画本編をご覧ください。
※ 画像をクリックすると、動画中の該当シーンに遷移します。

re:Invent 2024関連の書き起こし記事については、こちらのSpreadsheet に情報をまとめています。合わせてご確認ください!

本編

Amazon Linuxセッションの概要と登壇者紹介

皆様、こんにちは。お集まりいただき、ありがとうございます。本日最後のセッションですので、しっかりと締めくくっていきましょう。私はAWSのカーネルおよびオペレーティングシステム開発のディレクターを務めているChris Schlaegerです。本日は2人の仲間を連れてきました。Amazon LinuxのProduct ManagerであるManan Guptaと、顧客の視点からお話しいただくGenesysのNick Barberです。

始める前に、簡単にお伺いしたいのですが、すでにAmazon Linuxをお使いの方は手を挙げていただけますか?素晴らしいですね。まだ使っていない方も、このセッションに参加されて正解です。なぜAmazon Linuxを使うべきなのか、お話ししていきます。次の質問ですが、最新バージョンのAmazon Linux 2023を使っている方はどのくらいいらっしゃいますか?まだまだ伸びしろがありそうですね。まだ使っていない方のために、移行方法についてもお話しします。興味深い内容が盛りだくさんですので、最後までお付き合いください。

Thumbnail 80

アジェンダを見ていきましょう。Amazon Linuxとは何か、手を挙げなかった方のために簡単な紹介をします。そして、先ほど申し上げたように、GenesysのNickが登壇し、Amazon Linux 2からAmazon Linux 2023への移行経験についてお話しします。最後に、MananがロードマップのアップデートとAmazon Linuxについて、皆さんがまだご存じない様々な事柄についてお話しします。どうぞご期待ください。

Amazon Linuxの特徴と開発の背景

Thumbnail 120

では、まだAmazon Linuxをご存じない方のために、説明していきましょう。Amazon Linuxは私たちが作成したオペレーティングシステムです。Linuxの派生版なので、他のLinuxディストリビューションと大きく異なるわけではありません。特に、私たちが元々ベースとしたFedoraやRedHat系のディストリビューションとは似ています。時間とともに、私たちの特定のニーズと、お客様からのフィードバックに基づいて進化させてきました。最初のバージョンは2010年に公開され、当時は単にAmazon Linuxと呼んでいました。バージョン番号すらありませんでした。その後、Amazon Linux 2にアップデートし、3月で最新バージョンのAmazon Linux 2023のリリースから2年になります。これは汎用オペレーティングシステムであり、長年にわたって使用されてきただけに、現在ではAWSのすべてを支えるオペレーティングシステムとなっています。

Thumbnail 190

なぜまた新しいLinuxバージョンを作ったのでしょうか?私たちは単に新しいバージョンを作りたかったわけではありません。他のLinuxディストリビューションでは十分に満たされていない、特定のニーズがあったのです。これは、他のディストリビューションがAWS上で動作しないという意味ではありません。ほとんどの場合、問題なく動作します。しかし、私たちのハードウェアとソフトウェアインフラストラクチャに最適化されたバージョンが必要でした。例えば、EC2インスタンスタイプには、ベアメタルと仮想化の両方を含む多様な種類があります。Amazon Linuxを起動したとき、そのインスタンスタイプに対して最適化された確実なオペレーティングシステムであることを保証したいのです。もう一つの重要な焦点はセキュリティです。インターネットは日々ますます敵対的になっています。インターネットに接続されたインスタンスやワークロードを実行している場合、セキュリティについて考える必要があります。この点については後ほど詳しくお話しします。また、メンテナンスを非常にシンプルにしたいと考えました。そして最後に、これを追加コストなしで提供しています。もちろん、EC2インスタンスで実行する場合は、そのインスタンスの料金は発生します。

Thumbnail 280

すでにお話ししたように、最適化は私たちが独自のバージョンを作成した主な理由の1つです。これは、EC2インスタンスを起動する際に、他のオペレーティングシステムのオプションを指定しない場合にデフォルトで使用されるAMIです。もちろん、選択できるAMIは何千種類もありますが、特に何も指定せずにインスタンスを実行すると、Amazon Linuxインスタンスとして起動します。

最新バージョンのAmazon Linux 2023を使用すると、オペレーティングシステムの中核であるLinuxカーネルが、実行している特定のハードウェアに合わせて調整されていることがわかります。また、余分な機能も付いていません。現在のLinuxカーネルは約2,500万行のコードがありますが、これは非常に多いですね。それをすべてコンパイルすると、かなり膨大なカーネルになってしまいます。私たちの場合、どのようなハードウェアやソフトウェアの構成を持ち、お客様がどのようなアプリケーションを使用しているかを正確に把握しているため、お客様が使用しないと思われる機能はすべて無効にしています。

Thumbnail 400

私たちが提供するAMIは、Amazon Elastic Kubernetes ServiceやAmazon Elastic Container Serviceなどの他のAWSサービスでも使用されており、基本的に私たちが提供するイメージの上に構築されています。つまり、基本的には同じものですが、それぞれの特定のサービスに合わせて調整されているわけです。また、オペレーティングシステムが私たちの提供するすべてのソフトウェアとハードウェアとうまく統合されていることを確認したいと考えています。特定のサービスがある場合、それに適したツールを提供するよう心がけています。質問があるようですが、この録画セッションですので、質問はすべて最後にまとめて受け付けたいと思います。

GenesysのAmazon Linux 2023への移行経験

セキュリティについてですが、誰もが自社のソフトウェアは安全だと主張しますが、セキュリティには通常2つの異なるステップが必要です。1つ目は、セキュアなシステムを実現するために、セキュアな方法でエンジニアリングすることです。しかし、それが完成した瞬間から、すでに安全ではなくなります。なぜなら、ソフトウェアのセキュリティ脆弱性は絶え間なく発見されているからです。オープンソースソフトウェアも例外ではありません。私のチームは年間約300件のCVEを確認しています。後ほど、それらが該当するかどうかを評価するステップについてお話ししますが、該当する場合は可能な限り早くパッチをリリースします。

脆弱性を持つ可能性のあるコードを含まないようにするという考え方は、もちろん私たちも採用しています。Amazon Linuxのバージョンを作成する際には、お客様が必要とする部分だけを組み込み、必要な機能を有効にし、それ以外はすべて無効にしています。そうすることで、使用していない特定のコードに脆弱性が見つかった場合でも、影響を受けることはありません。これにより攻撃対象領域を減らすことができます。SELinuxでは、多層防御の追加レイヤーを加えることができる機能があり、アプリケーションをより良く保護できます。また、Kernel Live Patchingは、Linuxカーネルにパッチを適用する必要がある場合に、本来よりも長く機械を稼働させ続けたい場合に提供している機能です。

Thumbnail 550

カーネルのホットパッチを適用することができます - これは、Amazon Linuxの最新リリースされたカーネルバージョンの一部でサポートされていることを推奨しています。ただし、これは1年以上再起動なしで運用できるというものではありません。Live Patchingはそのような用途のためのものではありません。本質的には、メンテナンスウィンドウを数日から1週間程度ずらすことができる手段です。私たちは2週間ごとにセキュリティアップデートを提供しており、さらに多くのカーネルハードニング機能も追加しています。

CVE(Common Vulnerabilities and Exposures)についてお話ししましょう。これは主に米国政府が運営しているプログラムで、脆弱性の報告を収集・管理しています。ここでご覧いただけるのは、Amazon Linux 2023について評価し、修正したCVEの統計データです。古いバージョン、特にAmazon Linux 2についても同様の統計がありますが、現在もメンテナンスは継続しています。この議論の目的として、いくつかの統計をお見せしたいと思います。私たちは単にすべてにパッチを当てているわけではありません。パッチ適用は私たちにとっても、そして特に社内外のお客様にとっても作業が発生するプロセスです。そのため、セキュリティ修正をリリースする際は、それが関連性があると判断した場合にのみリリースしています。

セキュリティ脆弱性の評価を通じて、特定のメカニズムが既に導入されているか、オープンソースパッケージのソースパッケージでコードが有効になっていないために、お客様が影響を受けないと判断した場合、セキュリティ修正をリリースする必要はありません。これが評価プロセスの目的です - 私たちが影響を受けるかどうか、そしてNISTや脆弱性を発見した人物による分類が実際に私たちに適用されるかどうかを慎重に確認します。これらの評価は一般的なケースに対して行われることを覚えておいてください。私たちの場合、追加のセキュリティ層が導入されているため、重要または危機的と報告されたものでも、追加のセキュリティ対策があるため、中程度または低程度になることがあります。また、重要や危機的なものだけでなく、すべてのカテゴリーのパッチを提供しています。一部のベンダーはそれらのみを対応していますが、私たちは中程度や低程度の脆弱性についてもパッチを提供しています。

Thumbnail 680

お客様からのフィードバックに基づき、シンプルさを保つことが重要です。そのため、Amazon Linuxの使用をできるだけシンプルにしようと努めています。もちろん、Linuxは何百万行ものコードで構成される非常に複雑なソフトウェアです。このため、シンプルというのは誰でも使えるという意味ではありませんが、専門家がサービスに組み込む際にできるだけ簡単にできるようにしたいと考えています。Amazon Linux 2023で追加した新機能の1つは、お客様からのフィードバックに基づいています。これはリポジトリロッキングまたはバージョンリポジトリと呼ばれるもので、ホストがいつプロビジョニングまたは更新されたかに関係なく、すべてのデプロイメントが特定のリリース状態と完全に一致するように指定できるメカニズムです。2週間ごとにリリースを行っているため、お客様独自のQAを経て承認された特定のリリースを正確に指定することができます。

前述のように、2週間ごとの更新による予測可能なメンテナンスを提供しています。例外は重大な脆弱性の場合です - 前のスライドでご覧いただいたように、今年はAmazon Linux 2023について重大な脆弱性は1件も発生しませんでした。しかし、もし発生した場合は、通常7日以内に対応するよう努めています。AWS内には、SSM Patch Managerのような他のメカニズムも利用可能です。フリート全体の状態を管理したい場合は、このツールを使用できます。さらに、四半期ごとにまとめて対応したい場合(現在ではお勧めしませんが)、より正式なアプローチを望む企業もあります。そのため、その四半期に行ったすべての更新をまとめた、より詳細なドキュメントを含む四半期リリースも提供しています。

Thumbnail 830

Thumbnail 900

なぜAmazon Linuxを使用すべきなのでしょうか?これは汎用的なオペレーティングシステムですが、AWSのハードウェアやソフトウェア、サービスに最適化されているということを覚えておいてください。オンプレミス用のイメージも公開していますので、理論的にはそちらも使用可能です。もちろんオープンソースですので、使用を制限することはありませんが、最適化は私たちのハードウェアとソフトウェア向けに行われているということをご理解ください。例えば、VMwareやVirtualBox、あるいはオンプレミスのKVMハイパーバイザーや他のクラウドプロバイダーで実行することも可能ですが、私たちのハードウェアほどの最適化は期待できないかもしれません。これはFedoraベースで、今後もFedoraベースであり続けます。ただし、リリースサイクルが異なるため、若干の違いが生じています。私たちのニーズに合わせて調整し、3〜5年ごとにAmazon Linuxのアップデートを提供していきます。詳細についてはMananが説明します。

今年のハイライトとして、もしまだご利用でない方のために説明しますと、Elastic Container ServiceとKubernetesサービスであるEKS向けに最適化されたイメージをリリースしました。ユーザーからの人気の高いリクエストに基づいてソフトウェアを更新し、オペレーティングシステムがメンテナンス期間中である限り、バージョンアップデートを検討していきます。これらは通常、以前のバージョンに追加される形で提供され、切り替え時期をユーザーが決定できるよう、一定期間の重複を設けています。新しいバージョンが利用可能になった場合は、できるだけ早い移行をお勧めします。というのも、通常、古いパッケージはセキュリティアップデートの提供が終了するためです。また、最近は誰もがGenerative AIなどの最新技術に取り組んでいることから、Deep Learning対応イメージも提供開始しました。これらもAmazon Linuxでサポートしています。

Thumbnail 970

2023年3月にAmazon Linux 2023をリリースした際、その名前が示す通り、お客様からの反響に大変驚きました。ご覧の通り、現在10万社以上のお客様がAmazon Linux 2023をご利用いただいています。皆様のご支援に感謝申し上げます。まだAmazon Linux 2023をご利用でない方は、ぜひお話を聞いていってください。それでは、Nickを壇上にお呼びしたいと思います。彼がAL2からAL2023への移行経験について話してくれます。

Genesysのパイプラインと移行プロセスの詳細

Thumbnail 1030

ありがとう、Chris。今ご紹介にあずかりましたNicholas Barberです。私はGenesys CloudのPlatform EngineeringおよびDeveloper Experience部門に所属するInfrastructure Teamのプリンシパルソフトウェアエンジニア兼シニアマネージャーを務めています。Platform Engineering部門では、私たちは皆、何らかの形でインフラストラクチャに関わっています。私のチームは、DNS、ネットワーキング、基本オペレーティングシステムの自動化など、より伝統的なインフラストラクチャと呼ばれる部分を担当しています。2021年に、私たちのOSに関する自動化の全てが含まれるBase AMIの管理を任されました。皆さんの会社では、Golden ImageやBase OSなど、様々な呼び方をされているかもしれません。

少し個人的な話をさせていただきたいのですが、このプレゼンテーションを作成していて気づいたのですが、約19年前、高校の職業訓練プログラムで初めてのインターンシップを経験しました。私の最初のプロジェクトの一つ、そして繰り返し担当したプロジェクトが、ベースとなるOSイメージを作成し、学校のコンピュータ教室に配布することでした。そうなんです - 会場の中で覚えている方がいらっしゃるかもしれませんが、Symantec Ghostを使用した昔ながらのOSデプロイメント自動化です。

Thumbnail 1110

Genesysとは何か、私たちが何をしているのか、そしてどのように目標を達成しているのかについて少しお話ししたいと思います。一言で言えば、Genesysはコミュニケーションプラットフォームとコンタクトセンターを作っています。今日お話しする製品の一つであるGenesys Cloudは、クラウドネイティブのオールインワンコンタクトセンターソリューションです。さらに重要なのは、私たちの規模についてお話ししたいと思います。私たちには数千の顧客がいます - Chrisのような10万ではありませんが、100カ国以上で8,000以上のお客様にサービスを提供しています。この規模に伴い、厳格なコンプライアンス要件があります。小売から医療、州政府や連邦機関まで、様々な顧客がいます。これらの要因が組み合わさって、この自動化を書く上で非常にユニークな課題と制限のある環境を生み出しています。

Thumbnail 1180

この課題を解決する方法の一つとして、何百もの無状態のマイクロサービスに対して不変インフラストラクチャのパラダイムを活用し、それらをペットではなく家畜として扱っています。データを大切にし、そのデータを移行する必要がある状態を持つサービスもありますが、そのような場合でもインスタンス自体は家畜として扱います。しかし、大部分のサービスは基本的に無状態です。 本日は、Genesys Cloudのパラダイムと、文脈を理解していただくためにパイプラインについて少しお話しします。先ほど触れた規模とコンプライアンスに関連する課題と、パイプラインでそれらの課題をどのように解決しているか、そしてそのパイプラインがAmazon Linux 2023への移行にどのように役立っているかについてお話しします。最後に、Amazon Linux 2023に特有の移行時の注意点について説明します。AMI自動化で使用しているツールなどの具体的な内容については、今回は触れません。

パイプラインの概要と、OS移行が成功したことを確認する方法について、高レベルな概要をお話しします。現在、私たちはその移行の最中にいます。何百ものマイクロサービスを新しいオペレーティングシステムに移行するには、ご想像の通り時間がかかります。

これはすべて、コンテナを使用しないEC2レベルでの個別の機能バンドルという観点からのものであることを申し上げておきたいと思います。また、コンテナやAIマシンラーニングに関係のない、おそらくre:Invent唯一のトークにお越しいただき、皆様に感謝申し上げます。

Thumbnail 1260

Genesys Cloudにおけるパラダイムとパイプラインに関して、私たちは開発運用をチームではなくパラダイムとして扱っています。その意味するところの例として、BaseAMIを、契約やインターフェース、そして構築基盤を持つ消費されるべき製品として、顧客向けサービスチームが自身のサービスを扱うのと同じように扱っています。これには自動化されたテストも含まれます。プラットフォームエンジニアとして、私たちは開発チームがサービスをデプロイするために使用する内部製品スイートを作成しており、BaseAMIはその製品の一部となっています。

サービスチームの役割は、顧客に提供するコンタクトセンター向けの通信を全て処理できる、レジリエントなマイクロサービスを構築することです。BaseAMIの目的は、セキュリティとコンプライアンススキャンに合格し、一定のパフォーマンス基準を維持し、社内ツールを活用するための基盤と設定ポイントを管理することです。私たちは、正しいやり方を簡単なやり方にしたいと考えています。開発者にとって、正しいやり方が最も抵抗の少ない方法である必要があります。私たちはその取り組みを製品化し、サービスチームが自身のパイプラインで活用できる成果物として提供しています。セキュリティスキャンで脆弱性が見つかった場合、それは私たちが追加したものではなく、サービスチーム自身がイメージに追加した何かである可能性が高いと判断できます。

Amazon Linux 2023への移行における課題と解決策

また、これはチームの取り組みであることをお伝えしたいと思います。Genesys Cloudの BaseAMIには、社内からの貢献が非常に一般的です。私たちがGenesys CloudのBaseAMIの管理者だと言うとき、それは紛れもない事実です。最終的な判断は私たちが行いますが、実際の自動化を書いているのは、多くの場合、サービスチームや他のプラットフォームチームであり、彼らが何らかの形で貢献しているのです。

Thumbnail 1380

Genesys Cloudでは、パイプラインを通じて解決する興味深い課題がいくつかあります。私たちが特別というわけではありませんが、私たちが何をどのように実現しているかをお話ししたいと思います。先ほど述べたように、私たちはEphemeralかつImmutableなインフラストラクチャで運用しています。つまり、ビルドアーティファクトを作成して出荷すると、それは起動時に異なる監視アプリケーションを設定するための最小限の可変性を除いて、ビルド時から次のバージョンに置き換えられるまで変更されません。例えば、何かをビルドしてDEV環境にデプロイする場合、DEVのログコレクターやテスト環境のログコレクターにログを送信するように設定されます。

私たちはその場でのパッチ適用は行いません。プラットフォーム上で稼働する全てのEC2サービスには、約30日の最大経過期間があります。パッチは、サービスチームが独自の30日デプロイサイクルに従い、新しいバージョンをデプロイする際に、新しいバージョンのBaseAMIと共に提供されます。多くのチームは、デプロイやテストで何か問題が発生した場合に修正する時間を確保するため、約2週間ごとにデプロイするパターンを採用しています。BaseAMIを構築するプラットフォームエンジニアである私たちにとって、これは毎日BaseAMIをリリースし続けなければならないことを意味します。毎日、パッチ更新を取り込み、AL2023用のDNFアップデートを実行し、そのプロセス全体を実施しています。

Thumbnail 1500

コンプライアンスはGenesys Cloudにとって大きな関心事であり、この会場にいる多くの方々にとっても同様だと思います。先ほど申し上げたように、私たちの顧客は小売から医療、連邦機関まで多岐にわたります。PCI、HIPAA、STIG、そして今すぐには全て覚えられないほど多くの要件がBaseAMIに組み込まれています。 これら全ての要件と解決すべき問題があるため、新しい要件を解決する際に他の要件を壊さないようにする必要があります。その最善の方法は、自動化されたパイプラインを使用することだと私は考えています。

Thumbnail 1520

Thumbnail 1530

不変のパイプラインをベースOSに活用する場合、このような形になるでしょう。最新のAmazon Linux 2023 AMI、あるいは少なくとも適度に更新されたAMIを起動し、そのAMIに対して自動化を実行します。ベースAMIの自動化やゴールデンイメージの自動化など、必要な自動化プロセスをコピーして実行します。自動化が完了すると一つのマイルストーンに到達します。そのマイルストーンとは、ベースAMIが作成され、利用可能な状態になったということです。

Thumbnail 1550

Thumbnail 1560

多くのパイプラインでは、ここで終わりとなります。「よし、完了だ。これで配布しよう」という具合です。しかし、それは最善の方法とは言えません。私たちが実際に行っているのは、作成したばかりのベースAMIを取り、サービスチームがまだ使用できない状態で、テストを実行します。このテストの具体的な内容を見てみると、まず基本的なサービスを起動します。Hello Worldよりは少し進んだ形のものです。典型的なサービスを起動し、重要なランタイムのインストールと検証を行います。様々なランタイムが混在していますので、それらの重要なランタイムをインストールして実行し、確実に動作することを確認します。

Thumbnail 1640

オペレーティングシステムやその上で動作するアプリケーションにとって、環境が認識されていることを確認します。先ほど言及したように、DEV環境にデプロイする場合はDEVのログコレクターにログを送信し、テスト環境にデプロイする場合はテスト環境のログコレクターにログを送信する必要があります。新しいイメージでこれらが正常に機能することを確認するのがこの段階です。また、様々な設定のバリエーションも検証します。例えば、問題が発生しやすいことが分かっているコンプライアンス関連の調整を加えた状態で、JavaのJARファイルが正常に動作することを確認します。リトマス試験として特定の接続性もチェックします。DynamoDBやSQSとの通信を確認します。これは、多くの企業と同様に、上流や下流の変更の影響を受ける可能性のある共通のライブラリや共有ライブラリを持っているためです。さらに、サーバーの堅牢化手順やCVEスキャンもここで実施され、これらは通常並行して実行されますが、機能的なセキュリティテストが完了すると、

Thumbnail 1650

Thumbnail 1670

AMIが完成します。ここで、AMIの作成とAMIの完了を2つの異なる判断ポイントとして分けているため、別個のリリースプロセスも必要になります。AMIがリリースされ、サービスチームが利用可能な状態であることを示し、それを見つけて使用できる場所を提供する必要があります。次に、移行で学んだ教訓についてお話しします。Amazon Linux 2からAmazon Linux 2023への移行は私たちにとって初めてではありません。実際、最初はAmazon Linuxを使用していて、Amazon Linux 2に移行した際に多くを学び、それらの教訓を今回のAmazon Linux 2から2023への移行にも活かしています。

最初の移行は、すべてのEC2サービスの移行作業を完了させるまでに約2年を要する取り組みとなりました。しかし、その労力の大部分は、OSの設定よりも、サービスのテストと検証、新しいオペレーティングシステムのパフォーマンスへの影響、そしてクラスターのサイズ変更に費やされました。テストの労力は、チームが正当にもこのプロジェクトを大規模な取り組みとして扱う結果となりました。クラスターのサイズ変更について言及しましたが、これは非常に重要な点です。クラウドでは水平スケーリングが容易にできますが、垂直スケーリングの理解も重要です。なぜなら、支払っているリソースを実際に有効活用できているかを把握する必要があるからです。

このため、システムの負荷テストを適切に行い、負荷がかかった状態での機能を検証することは、このような変更において非常に重要です。システムの動作は大きく変わらないはずですが、すべての土台を取り除いて、新しい土台を据え付けるようなものだからです。Amazon LinuxからAmazon Linux 2への移行時には、機能テストはほとんどありませんでした。現在のように堅牢なパイプラインはありませんでした。私たちが行ったのは、典型的なサービスをスポットチェックし、最も簡単なサービスと、より複雑なサービスを見つけて、そのスペクトルの両端をテストすることでした。自動化されたパイプラインがない場合でも、この2つをテストするだけで、起こりうる問題の約80%を捕捉できるでしょう。

しかし、信頼できる堅牢なテストを備えた自動化パイプラインには及びません。自動化パイプラインをお持ちでない場合、古いことわざを少しアレンジして言わせていただくと:「最良のスタート時期は10年前、次に良いのは今」ということです。Amazon Linux 2からAmazon Linux 2023への移行を行う場合に、特に確認をお勧めしたいページが2つあります。特にAmazon Linux 2の非推奨ページを見ることをお勧めします。これが実質的な破壊的変更のページとなるからです。つまり、Amazon Linux 2で非推奨となっているものは、Amazon Linux 2023では完全に削除されているということです。

今後を見据えると、Amazon Linux 2023で非推奨となっているものは、2025年や2027年など、将来のAmazon Linuxバージョンで削除される可能性があるものということになります。

移行の教訓とベストプラクティス

Thumbnail 1830

Amazon Linux 2023 への移行に関して、私たちが経験した課題の中で、スケールとコンプライアンスの観点から特に注目すべきなのがFIPSに関することです。FIPSは連邦情報処理標準で、140-2が以前の標準、140-3が新しい標準です。注目すべきは、これらがうまく対応していることです:Amazon Linux 2はFIPS 140-2に、Amazon Linux 2023はFIPS 140-3に対応しています。Amazon Linux 2023はFIPS 140-3に準拠しており、現在テスト中です。

重要な課題は、Classic Load BalancerとFIPSモードのAmazon Linux 2023の組み合わせが事実上使用できないということです。Classic Load Balancerは、FIPS 140-3で定義された接続要件であるExtended Master Secretsをサポートしていません。これはClassic Load Balancerへの接続のフロントエンドに適用されます。もしダウンストリームの依存関係があり、FIPSモードで動作するAmazon Linux 2023でその依存関係と通信しようとすると、これが重要なポイントとなります。デフォルトの状態では正常に動作しますが、FIPSモードをオンにすると、「EMS not supported」や「EMS missing extended master secrets」といったエラーで失敗します。バックエンド側では、暗号スイートが一致しないことになります。

FIPSについてご存知ない方のために説明しますと、FIPSは使用可能な暗号技術を大幅に制限するものです。これがこの文脈におけるFIPSの主な影響です。また、セキュリティツールとの互換性を確保することも重要です。私たちの場合、Amazon Inspectorを使用していますが、Amazon Inspector V1はAmazon Linux 2023をサポートしていないため、サービスの堅牢化とCVEの排除を確実にするために、移行前にAmazon Inspector V2への移行が必要でした。

Amazon Linux 2023では、デフォルトで起動時にIMDSv2が必要とされます。つまり、CLIやLaunch Template、Launch Configで、IMDSv2をオプショナルに設定するように指定しない限り、デフォルトで必須となります。また意外なことに、これまでのLinuxでは当たり前だったCronがデフォルトでインストールされていません。DNFを使って別途インストールすることは可能ですが、この変更は、Red HatコミュニティやLinuxコミュニティ全体で、多くのLinux指導者がCronよりもSystemdタイマーを推奨する傾向を反映しています。

Amazon Linux 2023ではEPELが直接サポートされていません。ただし、Amazon Linux 2023で利用可能なパッケージが充実していたため、予想よりも影響は少なかったです。私たちに影響があったのは、ハードウェアのテストと仮想化に関連する1セットのパッケージだけでしたが、コンパイルして使用することができました。また、一般的にライブラリを最新の状態に保つことも重要です。これはClassic Load BalancerやFIPSコンプライアンス要件にも関連しており、更新を継続することで予期せぬ問題を減らすことができます。

Thumbnail 2050

まとめると、3つの重要なポイントに分けて説明させていただきます。パイプラインごとに解決すべき問題は異なります。GenesysにおけるBase AMIとサービスチームのパイプラインの違いはその一例です。皆さんの知っている他のパイプラインについても、同様の観点で考えてみてください。パイプラインがないと思っている方もいるかもしれませんが、それは違います。開発者の手元から本番環境まで、そのプロセスが自動化されているかどうかに関わらず、それがパイプラインなのです。OSレベルでの基本的なテストを充実させ、サービスチームに到達する前に機能を検証することは、こうした移行において非常に有効です。私たちのようなプラットフォームチームとサービスチームの区別がない場合でも、この助言は当てはまります。更新時にOSが正しく設定され、有効であることを確認する方法がまだない場合、このような移行を始めるのは不利な立場からのスタートとなります。自動化されているなら素晴らしいですし、Excelスプレッドシートでチェックリストを管理しているのであれば理想的ではありませんが、それも一つの方法です。誰かが実行しているテストのリストという点では同じです。

システムを適度に最新の状態に保ちましょう。最先端である必要はありませんが、更新を継続することは一般的なセキュリティプラクティスとして重要です。

依存関係がどこから来ているのか、そしてそれらがどれくらい古いのかを把握することが重要だということを強調したいと思います。これはブラックボックスアプリケーションにも当てはまります。多くの企業のように要件やコンプライアンス要件が長いリストになっている場合、作業環境が非常に制限される可能性があります。そのような状況では、システムを最新の状態に保つことで、作業がより容易になる傾向があります。これが私からの主なポイントです。これらのギャップや課題が皆さんの状況と重なるところがあれば幸いです。もしまだ自動化されたパイプラインをお持ちでない場合は、今こそ始めるのに良いタイミングです。

Amazon Linuxのロードマップと今後の展開

Thumbnail 2190

Nick、Amazon Linuxの使用方法、パイプラインの管理方法、そしてAL2023へのアップグレードの経験について共有していただき、ありがとうございます。これらのヒントは、他のお客様にとても役立つものだと確信しています。 ここで、ロードマップの最新情報をお伝えしたいと思います。まず、Amazon Linux 2についてお話しします。AL2は2017年12月に立ち上げられ、約7年が経過しましたが、最も人気のあるAmazon Linuxディストリビューションとなっています。AWSのお客様の大半が、EC2で直接、あるいはEKSやECSを通じてAL2を使用してきました。

Thumbnail 2270

昨年、私たちは最新かつ最もセキュアなバージョンであるAL2023をリリースしました。現在、大多数のお客様がAmazon Linux 2023を使用しているか、AL2023へのアップグレードを進めている段階です。一部のお客様から、Nickが共有したように、アプリケーションのテスト、依存関係の確認、セキュリティツールの互換性の確保、そしてコンプライアンス要件の充足のため、AL2023へのアップグレードを完了するにはさらに時間が必要だというフィードバックをいただいています。

お客様がアップグレードを完了される間、既存のAL2システムのセキュリティを確保したいと考えています。そのため、AL2のサポート期間を2025年6月30日から2026年6月30日まで、さらに1年間延長することを決定しました。このサポート延長に追加費用はかかりません。1年間の延長期間中、お客様はセキュリティアップデートと重要なバグ修正を受けることができます。ただし、サポート、アップデート、メンテナンスが現実的に難しいパッケージが出てくる可能性があることにご留意ください。その場合は、ドキュメントを更新し、お客様に通知を送らせていただきます。

Thumbnail 2330

この延長により、AL2023へのシステムアップグレードに必要な時間を確保していただけることを願っています。AL2023へのシステムアップグレードが非常に重要であることを強調させていただきたいと思います。 新しいサポート終了日の詳細と、アップグレードの対象範囲については、今後数週間のうちにドキュメントを更新させていただく予定です。

Thumbnail 2400

次に、AL2023についてお話ししたいと思います。昨年のAL2023のローンチ以降、特にお客様からいただいたフィードバックに基づいて、Amazon Linuxのライフサイクル全般について、いくつかのアップデートを行っています。AL2023には、標準サポートとメンテナンスサポートという2つのサポートフェーズがあります。標準サポート期間中は、四半期ごとのアップデートをリリースし、これらの四半期ごとのマイナーバージョンアップデートには、新機能、新しいパッケージ、既存の特定パッケージの新バージョン、そしてセキュリティアップデートやバグ修正が含まれます。メンテナンスサポートフェーズでは、セキュリティアップデートと重要なバグ修正を、利用可能になり次第提供します。お客様がAL2023上でワークロードを実行する際により安定性を提供するため、2023年の標準サポートを2027年6月30日まで提供します。

Thumbnail 2440

その後、2年間のメンテナンスサポートが続き、AL2023のサポート終了日は2029年6月30日となります。これは、お客様が安心してワークロードをAL2023にアップグレードできるよう、必要な安定性とサポートを提供することを目的としています。現在AL2を使用しているお客様で、AL2023をスキップしてAL2025に直接アップグレードすることを検討されている場合は、待たずにAL2023への移行をお勧めします。次のメジャーバージョンのAmazon Linuxをリリースする際は、お客様が次のメジャーバージョンへの移行を計画するための十分な時間を確保できるよう、少なくとも12ヶ月前に通知いたします。

Thumbnail 2490

つまり、AL2025はリリースされないことになります。ただし、四半期ごとのバージョンアップデートで最新のパッケージや機能へのアクセスを希望されるお客様向けに、これらすべてと新しいKernelバージョンの提供は継続します。AL2023への移行が進むにつれて、ディストリビューションにデフォルトで搭載されるパッケージを増やしてほしいという要望を多くいただいています。多くの場合、お客様はこれらのパッケージをソースからビルドすることを選択されていますが、私たちはセキュリティ態勢への影響を主な考慮事項として、可能な限りコアディストリビューションに最も要望の多いパッケージを追加するよう努めています。ローンチ以降、四半期ごとのアップデートを通じてAL2023に約200のパッケージを追加しており、今後のリリースでもこれを継続します。直近の2つのマイナーバージョンで追加した人気の高いパッケージには、OpenVPN、FreeIPA、Netplan、.NETなどがあります。

Thumbnail 2550

Thumbnail 2560

Thumbnail 2580

追加されるパッケージの詳細は、リリースノートでご確認いただけます。ドキュメントのAmazon Linux 2023リリースノートのセクションには、四半期ごとのリリースの詳細がすべて記載されています。Chrisが言及したように、各リリースの中で約2週間ごとに新しいアップデートがあります。そのため、リリースされる各バージョンで追加される内容の詳細を、その粒度で確認することができます。例として、これは先日リリースした2023.6バージョンの最初のリリースで、新しく追加されたパッケージと以前のバージョンとの比較を確認することができます。

Thumbnail 2600

AL2023で必要なパッケージがある場合は、引き続きGitHubやAWSアカウントマネージャーを通じてフィードバックをお寄せください。場合によっては、私たちが評価している間や、ディストリビューションへの組み込みに時間がかかる場合に、お客様がソースからパッケージをビルドする必要があるかもしれません。これらのリクエストはすべて評価し、ロードマップ上で優先順位付けを行っています。パッケージをディストリビューションに組み込むことができない場合は、その理由を説明し、代替案について検討させていただきます。現在チームが積極的に検討しているパッケージリクエストには、mod_auth_mellon、LLDP agent、pam_radius、そしてグラフィカルデスクトップをサポートするために必要な一連のパッケージが含まれています。

Thumbnail 2650

多くのお客様が、ワークロードにおいてFIPS準拠を必要としています。ご存知の通り、FIPSは連邦システムのデータ保護と暗号化に関する標準とガイドラインです。機密情報を保護する暗号化モジュールのセキュリティ要件を規定しており、これらの標準は連邦システムを超えて、民間セクターでもベストプラクティスとして広く適用されています。AL2では、このスライドに示されている暗号化モジュールがあります。FIPS 140-2標準に基づく完全な認証を受けた5つのモジュールがあります。ご覧の通り、OpenSSLは10月にすでにHistoricalステータスとなり、残りの4つも今後10~12ヶ月でHistoricalステータスに移行します。

Thumbnail 2710

Thumbnail 2720

これらのモジュールがHistoricalステータスになるにあたり、既存および新規システムにおいてHistoricalステータスのこれらのFIPS認証モジュールを使用するオプションについて、引き続きコンプライアンスチームと協力して検討することが重要です。選択肢の1つとして、FIPS 140-3認証に提出されているAmazon Linux 2023の暗号化モジュールを使用することが挙げられます。Kernel Cryptographic APIモジュールはすでに暫定認証を受けており、残りの4つのモジュールはModule in Process(MIP)リストに掲載されています。MIPリストには、FIPSテストをすべて完了し、Cryptographic Module Validation Program(CMVP)のレビューと証明書の発行を待っている暗号化モジュールが含まれています。

Thumbnail 2770

Amazon Linux 2023でFIPSモードを有効にする方法については、ドキュメントの手順に従ってください。MIPステータスにあるAmazon Linux 2023の暗号化モジュールが組織で使用可能か、また必要な承認をどのように得るかについて、コンプライアンスチームと協力して判断することをお勧めします。

Thumbnail 2800

Thumbnail 2820

以上がロードマップの主な更新点です。私たちは、Amazon LinuxをAWSで最も安全で高性能なワークロード実行用オペレーティングシステムにするための投資を継続していることを強調したいと思います。引き続きチームと協力してAmazon Linux 2023へのアップグレードを進めていただき、サポートが必要な場合やフィードバック、ご質問がありましたらお気軽にお声がけください。ありがとうございました。


※ こちらの記事は Amazon Bedrock を利用することで全て自動で作成しています。
※ 生成AI記事によるインターネット汚染の懸念を踏まえ、本記事ではセッション動画を情報量をほぼ変化させずに文字と画像に変換することで、できるだけオリジナルコンテンツそのものの価値を維持しつつ、多言語でのAccessibilityやGooglabilityを高められればと考えています。

Discussion