Amazon Web Services ブログ

Bottlerocket – コンテナホスティング用オープンソース OS

私たちの業界では、アプリケーションをパッケージ化およびスケールする方法として、コンテナが定番化していると言えるでしょう。クラウドベースのコンテナ全体の 80% 超が AWS で実行されているなかで、Amazon ECS および Amazon Elastic Kubernetes Service が大いに活用されています。

コンテナベースの環境は簡単にスケールアウトできるため、ユーザーは数百または数千ものインスタンスを包含するホスト環境を運用することができます。しかしこの規模になると、ホストオペレーティングシステムに関していくつかの課題が持ち上がります。たとえば次のようなものです。

セキュリティ – 依存関係を満たすだけの目的で追加のパッケージをインストールすると、攻撃対象領域が拡大する場合があります。

更新 – 従来のパッケージベースの更新システムやメカニズムは複雑でエラーが起きやすく、依存関係に問題が発生する場合があります。

オーバーヘッド – 不要な追加のパッケージによってディスク領域やコンピューティングサイクルが浪費されるうえ、起動にかかる時間も長くなります。

ドリフト – パッケージや設定の一貫性が欠如していると、時間が経つにつれてクラスターの整合性が損なわれていくおそれがあります。

Bottlerocket のご紹介
こちらの記事では Bottlerocket をご紹介します。これは、コンテナホスト専用に当社が設計および最適化した、新しい Linux ベースのオープンソースオペレーティングシステムです。

Bottlerocket には、私たちが長年にわたり蓄積してきた多くのノウハウが詰め込まれています。含まれているパッケージは優れたコンテナホストとなるのに必要なもののみで、既存のコンテナオーケストレーターと統合します。Docker イメージ、および Open Container Initiative (OCI) イメージ形式に適合するイメージをサポートしています。

そして Bottlerocket では、パッケージ更新システムを使用する代わりに、必要時に高速かつ完全なロールバックが可能な、イメージベースのシンプルなモデルを使用しています。これにより競合や破損をおそれずに済み、EKS などのオーケストレーターを使用してフリート全体に対する信頼性の高い更新を簡単に適用することができます。

パッケージセットが最小限に抑えられているのに加え、Bottlerocket では、dm-verity で起動時に整合性チェックが行われる、主に読み取り専用のファイルシステムが使用されます。SSH アクセスは非推奨ですが、隔離された admin コンテナの一部としてのみ利用可能です。このコンテナは、必要に応じて有効化しトラブルシューティングに利用することができます。

お試しください
本日、Bottlerocket の公開プレビューをローンチしました。クイックスタート の手順に従って EKS クラスターをセットアップできます。GitHub リポジトリではその他の各ファイルもご覧いただけます。ぜひお試しください。バグの報告プルリクエストの送信、ご意見などをお待ちしております。

Jeff;