Bottlerocket 専門
コンテナ実行に特化した Linux ベースのオープンソース OS
何ができるか
Bottlerocket は、コンテナのホスト OS として設計された Linux ベースのオペレーティングシステムです。汎用 Linux ディストリビューションと異なり、コンテナの実行に必要な最小限のコンポーネントだけを含むため、セキュリティリスクの攻撃対象面が小さく、起動が高速です。OS の更新はアトミック (一括) に適用され、失敗時には自動的にロールバックされます。
どのような場面で使うか
EKS や ECS のワーカーノード用 OS として、セキュリティを重視するコンテナワークロードの実行基盤に利用されています。金融機関や医療機関など、厳格なセキュリティ要件を持つ環境でのコンテナ運用、大規模なマイクロサービス環境での OS 管理の簡素化などに活用されています。
身近な例え
専用工具だけを積んだ作業車に例えるとわかりやすいでしょう。一般的な OS が何でも載せたワゴン車だとすると、Bottlerocket はコンテナを動かすための道具だけを厳選して積んだ軽トラックです。余計な荷物がないので軽快に動き、盗まれるものも少なくて安全です。
Bottlerocket とは
Bottlerocket は、AWS が開発したコンテナ専用の Linux ベース OS です。Amazon Linux や Ubuntu などの汎用 OS はパッケージマネージャーやシェル環境など多くのコンポーネントを含みますが、Bottlerocket はコンテナランタイムと最小限のシステムコンポーネントだけで構成されています。SSH によるログインもデフォルトで無効化されており、設定変更は API 経由で行います。この設計により、セキュリティの攻撃対象面を大幅に削減しています。
セキュリティとアップデート
Bottlerocket のファイルシステムはほぼ読み取り専用で、実行時に OS のファイルが改ざんされるリスクを低減しています。OS のアップデートはパッケージ単位ではなくイメージ全体をアトミックに置き換える方式で、更新の途中で不整合な状態になることがありません。更新に失敗した場合は自動的に前のバージョンにロールバックされます。SELinux も有効化されており、コンテナ間の分離を強化しています。
EKS ・ ECS との統合
Bottlerocket は EKS と ECS の両方でワーカーノードの OS として利用できます。EKS ではマネージドノードグループの AMI として Bottlerocket を選択するだけで利用開始できます。ECS でも Bottlerocket 対応の AMI が提供されています。AWS Systems Manager の Session Manager を使えば、トラブルシューティング時にノードへアクセスすることも可能です。オープンソースプロジェクトとして GitHub で公開されており、カスタムビルドも作成できます。
注意点
- Bottlerocket 自体は無料のオープンソースだが、実行する EC2 インスタンスの料金は通常どおり発生する
- 汎用 OS と異なりパッケージマネージャーがないため、OS 上に直接ソフトウェアをインストールすることはできない。すべてコンテナとして実行する設計
- SSH がデフォルトで無効のため、トラブルシューティングには Systems Manager Session Manager の利用が推奨される
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。