話題の記事

【速報】コンテナ実行専用OSのBottlerocketがパブリックプレビューで発表されました!

AWSにおけるワーカーノードの管理を効率化、かつセキュア化する新しいOS、Bottlerocketの速報です。
2020.03.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

「ふわぁ、今日も仕事すっか…って、Bottlerocket、なんやねんこれ?」

朝の日課、twitterのTLを眺めていたら、いきなりこんなツイートが飛び込んできました。

Bottlerocketは、Linuxベースのオープンソースのコンテナ専用OSで、それがパブリックプレビューとして発表されたとのニュースです。ほえぇ。

Announcing Bottlerocket, a new open source Linux-based operating system purpose-built to run containers

現在パブリックプレビューのため、実際に動かしてみた情報などはブログ化できませんが、ドキュメントベースで、Bottlerocketについての速報をまとめてみます。

コンテナ専用OSきたか…!!

  ( ゚д゚) ガタッ
  /   ヾ
__L| / ̄ ̄ ̄/_
  \/   /

Bottlerocket概要と汎用OSに比べた7つのメリット

公式ページはこちら。

Bottlerocket — Amazon Web Services

Bottlerocketは、コンテナをホストするために最適化されたOSで、現在はEKSをサポートしており、ECSは少しさきで対応予定とのです。

2020年3月11日現在、Bottlerocketはパブリックプレビューとして提供されており、GA(正式一般公開)ではありません。ご注意ください。

以下、Bottlerocketが存在することで従来の汎用OSを利用していた時より良くなる点を紹介していきます。

メリット1「パッケージ単位の更新ではなく、単一ステップによる更新」

従来の汎用OSは、パッケージ単位で更新されるため、OSの更新を自動化することは難しかったです。それが、Bottlerocketでは、パッケージ単位での更新ではなく、単一のステップでOSを更新できるため、EKSなどのオーケストレーションサービス経由でのOS更新の自動化が容易となります。また、ロールバックも簡単です。

メリット2「コンテナ実行に不可欠なソフトウェアのみの提供」

コンテナを実行するホストOSにおいて、セキュリティやパフォーマンスの観点から、コンテナ実行に不要なパッケージはできるだけ含めないことが推奨されています。Bottlerocketは、コンテナ実行のために最適化されているため、汎用OSに含まれているコンテナ実行に不要なミドルウェアがそもそも含まれていません。SSHアクセスも推奨されておらず、別途有効化が必要になります。トラブルシューティング時には、別途個別の管理コンテナを利用します。

これにより、リソースの利用効率が向上し、脅威からの攻撃対象領域が減少します。

メリット3「AMIの提供によるAWS環境での使いやすさ」

従来、ECSやEKSのデータプレーンをEC2で動作させる場合、それぞれにAmazon Linux2を元に最適化されたOptimized AMIを利用することが普通でした。

今回発表されたBottlerocketもAmazon Machine Image(AMI)が無料提供されているため、従来のECSやEKSのデータプレーンと、ほぼ同じ使い勝手で利用できることが期待できます。

メリット4「オープンソースによるカスタマイズが可能」

GitHubにソースが公開されているため、パートナーはそれぞれの利用状況に応じたカスタマイズされたビルドを作成できます。たとえば、オーケストレーターサポートとしてAWSのECSやEKSだけではなく、他のオーケストレーションツールへの対応も可能です。

メリット5「オーケストレーターツールへの統合が容易」

OSの更新がワンステップのため、Amazon EKSなどのオーケストレーターと統合し、ワンクリックでOS自体の更新やロールバックが管理できます。これで、データプレーンOSの更新を極力自動化することができ、運用コストを削減できます。

メリット6「OCIイメージ準拠」

BottlerocketはDockerイメージとOCI(Open Containers Initiative)に準拠しています。

メリット7「3年間サポート付き」

AWS提供のBottlerocketビルドは、リリースされてから3年間のサポートがついています。さらには、GitHubでのコミュニティサポートもあります。

メリット8「追加料金無しでの利用」

Bottlerocketの利用に特別な料金な不要。利用するワーカーノードとしてのコンピューティングリソース(EC2)にかかる料金だけが請求されます。

Bottlerocketの使い方

(公式ページhttps://aws.amazon.com/jp/bottlerocket/より引用)

Bottlerocketの利用には以下の手順を踏みます。

  1. Bottlerocket AMIを選択
  2. Bottlerocket AMIを利用してEC2インスタンスを起動
  3. EKSクラスターへのBottlerocketの組み込み
  4. EKSを利用してBottlerocketの更新を管理

Bottlerocket採用事例とテクノロジーパートナー

すでに、Bottlerocketの採用事例があるようです。

Veeva

Veeva Systems

Veeva Systemsは、ライフサイエンス業界向けのクラウドベースソフトウェアのリーダー。Bottlerocketへの移行は非常にスムーズで、他のEKSノードの置換で完了したそうです。

テクノロジーパートナー一覧

元々コンテナテクノロジーパートナーに名を連ねていた企業のうち何社かが、Bottlerocketのテクノロジーパートナーにも入っています。

  • Alcide
  • Armory
  • CrowdStrike
  • DATADOG
  • New Relic
  • Sysdig
  • Tigera
  • Trend Micro
  • Weaveworks

Bottlerocket関連リソース

FAQ

公式ページによくある質問とその回答が一通りまとまっています。

Bottlerocket FAQ — Amazon Web Services

ブログ

Jeff Barrによるブログが公開されています。

Bottlerocket – Open Source OS for Container Hosting | AWS News Blog

GitHub

bottlerocket-os/bottlerocket: An operating system designed for hosting containers

詳細を知るには必須のリソースです。Bottlerocketについての詳細な情報、カスタムビルドの実行方法、EKSで動かすためのQUICKSTART、SSHアクセスできないが、トラブルシュートするための方法などが紹介されています。

トラブルシュートの方法ですが、ざっと見た限りでは、SSMエージェントが動作するコンテナを別途用意し、そこからシェルのセッションをBottlerocketのEC2インスタンスに起動するようです。

データプレーンの管理を劇的に簡素化できる可能性あり

AWS上のコンテナワークロードにおいて、オーケストレーターやコンテナそのもの管理とは別で、データプレーンの管理〜運用も必要でした。Fargateではそもそもデータプレーンの管理が不要となりますが、EC2ベースではできないことがあったり、EKSでは基本的にはワーカーノードをホストインスタンスで管理するのが主流です。

まだパブリックプレビューの段階ですが、Bottlerocketが、これからのコンテナワークロードのより一層のセキュア化、リソース効率化、TCO削減に関わってくると思うと楽しいですね。自分も実際に触ってみつつフィードバックしながら、この新しいOSを味わってみようと思います。

それでは、今日はこのへんで。濱田(@hamako9999)でした。