Amazon Web Services は 2 番目の Linux ディストリビューションを作成しました。
AWSはすでにAmazon Linuxを提供しています。これは現在第2版となっている汎用ディストリビューションで、Dockerコンテナ内、またはLinux KVM、Microsoft Hyper-V、VMware ESXiハイパーバイザーで実行できます。このディストリビューションはAWSクラウド内での実行に最適化されていると言われています。
現在、このインターネット大手は、好みのオーケストレーション エンジンとともにコンテナを実行できる優れたオープン ソース OS として進化する Bottlerocket を開発しました。
このディストリビューションを発表した Hello World の投稿では、AWS は「大規模なセキュリティ、運用、管理性を重視してコンテナを実行するためにゼロから設計された Linux ディストリビューションの必要性を感じた」と述べています。
Red Hat KubernetesがOpenShift 4.5リリースでエッジへ移行
続きを読む
AWSは2020年3月以降、コンテナ向けLinuxを開発するのは同社が初めてではないことを認め、CoreOS、Rancher OS、Project Atomicを参考にしたと述べ、Bottlerocketの構想を示唆してきた。AWSによると、BottlerocketのOSは「Amazonで長年にわたり大規模な本番環境サービスを運用してきた経験から得た教訓の成果であり、過去6年間にコンテナの運用方法について学んだ教訓が色濃く反映されている」という。
これらの教訓から、AWS はコンテナの実行に必要なもの以外をすべて削除した OS をリリースするに至った。同社によれば、この設計により攻撃対象領域が縮小されるという。
コンテナ化されていないアプリケーションを実行するのではなく、コンテナ内で何かを実行することに特化した設計になっているため、基盤システムにインストールされるパッケージが少なくなります。AWSによると、これはOSを最新の状態に保つのが容易になり、依存関係に起因する問題の発生リスクも低減するため、好ましいことだとのことです。基本的に、すべてが個別のコンテナ内で実行され、ベースシステムはかなり簡素なようです。
AWSは、「個々のソフトウェアを更新するパッケージマネージャーではなく、Bottlerocketはファイルシステム全体のイメージをダウンロードし、そのイメージで再起動します」と述べています。「起動に失敗した場合は自動的にロールバックでき、ワークロードの障害が発生した場合は手動でロールバックすることもできます。」
カーネルの上位にあるOSは、安全でないメモリアクセスやスレッド間の競合状態などの発生確率を低減するRust言語の機能を活用するため、主にRustで記述されています。SELinuxは、その高度な分離機能を活用するために導入されています。
このディストリビューションには、Device-mapperのVerityターゲット(dm-verity
)が含まれています。AWSはこれを「攻撃者がOSのコアシステムソフトウェアを上書きするなど、OSに脅威を永続化させるのを防ぐための整合性チェック機能を提供するLinuxカーネル機能」と説明しています。また、低レベルのシステム操作において、カーネルモジュールをより安全なカーネルレベルプログラムに置き換えることを可能にするeBPF [PDF]も含まれています。
AWSは、Bottlerocketは「運用サーバーへの管理接続を阻止することでセキュリティをさらに向上させる運用モデルを強制する」ものであり、「個々のホストに対する制御が制限されている大規模な分散環境に適している」と述べた。
システム管理者がアクセスしやすいよう、管理コンテナが用意されています。しかし、AWSは、ユーザーがBottlerocket内で作業する必要はそれほど多くないと考えています。「個々のBottlerocketインスタンスにログインする操作は、高度なデバッグやトラブルシューティングのために、まれにしか行わないことを想定しています。」
Linux企業による買収後、RancherはSUSE傘下に入る
続きを読む
AWSは、コンテナオーケストレーターと組み合わせたBottlerocketの使用を推奨しています。Kubernetesが主流であるため、AWSは独自のEnterprise Kubernetes Service (EKS)をベースにBottlerocketビルドを開発しました。ECSサービス、つまりAWS EC2とFargateのバンドルはプレビュー段階です。
AWSは、ディストリビューションをApache 2.0またはMITライセンス(どちらかを選択可能)の下でオープンソース化し、GitHubに公開しました。AWSシニアプロダクトマネージャーのSamartha Chandrashekar氏は、「GitHub上でBottlerocketを中心としたコミュニティを構築することを楽しみにしています。機能リクエスト、バグレポート、貢献を歓迎します」と述べています。
VMware の PhotonOS のような類似の取り組みが成功せず、CoreOS でさえ RedHat によって廃止されたことを考えると、この OS を中心にコミュニティが凝集するかどうかを見るのは興味深いでしょう。®