Docker Inc.は昨年末、Amazon ECSへの対応として、Dockerコンテナの管理とオーケストレーションのためのAWS互換サービスをパブリックベータ版として開始した。現在、Docker for AWSは一般向けに利用可能である。
パブリックベータの発表で、Docker Inc.はいくつかの新機能を紹介した。コンテナログはすべてAWS CloudWatchに送られる。それは、集約の改善、分析、レポート、監視、各ホストへログインするためにSSHを使う必要性の低減のためである。このサービスには診断ツールも付属しており、サポートの助けとなる。さらに、新しいオプションでは、より広範囲のルートボリュームを選択できる。つまり、個々のホストでSSDが利用可能になる。Docker for AWSのデモがある。
InfoQがDocker Inc.にDocker for AWSとAmazon ECSの比較を尋ねたところ、企業コミュニケーション担当ディレクターのSuzanne Panoplos氏は次のように説明した。
Docker for AWSはDocker Inc.によって構築され、提供されています。リリースは通常のDockerリリースと同じタイミングとなるため、Docker for AWSでは常に最新かつ最高のDockerバージョンを入手できます。
Docker for AWSでは、swarmモードを有効にした標準のDocker環境がセットアップされます。つまり、Dockerに組み込まれている安全な高性能オーケストレータを、追加の設定作業なしで使用できます。swarmモードのDockerの機能は、どのインフラでも利用できます。ECSでは、AWS環境でのみ使用できるように設計された独自のスケジューラを使用します。ECSでは、Dockerで開発しているものとは異なるツールを使用します。 例えば、ECSでアプリケーションをデプロイするには `docker`や` docker-compose`を使うことはできず、ECS CLIを使わなければなりません。ECS CLIは、オープンソースのDockerツールと同じものをサポートしていません。
執筆時点で、Amazon ECSはDockerのバージョン1.12.6までサポートしている。一方、Docker Engineの最新の安定板はバージョン1.13.0である。
Docker for AWSはマネージドサービスであるが、Docker CLIの全機能を(SSH経由で)提供する。Amazon ECSでは、基本的なスケジューリング以外を実装しようとすると、大変な作業となる可能性がある。この欠点に対処するために、Amazonは最近ECS用のスケジューリングフレームワークであるBloxを導入した。Bloxは2つのコンポーネントを含んでいる。1つは、すべてのコンテナでタスクを実行するデーモンスケジューラである。もう一つは、ECSから生成されたCloudWatchイベントのSQSキューを監視し、REST APIを介してスケジューラコンポーネントの現在の状態を簡易に提供するクラスタステートサービスである。これにより、クラスタ全体でより複雑なスケジューリング機能を構築するための基盤が提供される。
しかし、DockerはDocker for AWSにBloxのサポートを追加する予定はない。Panoplos氏によると、「Docker for AWSは、Dockerに組み込まれたswarmモードのオーケストレーションとスケジューリングを使用しており、数百万人のユーザのフィードバックと要件に基づいて開発されている」。Bloxのサポートの代わりに、Dockerはコアコンテナランタイムであるcontainerdを分離することでAmazonと協力してきた。containerdが将来、Bloxに使用されることを期待している。
GAリリース前のパブリックベータ発表は、Docker for AWS向けに以前発表されたプライベートベータプログラムのフォローアップとしてであった。そこでは、AWS Elastic Load BalancingとEC2 Security GroupとKeyPairのセキュリティ機能が統合された。
Rate this Article
- Editor Review
- Chief Editor Action