AWSは最近、Amazon Elastic Container Service (AmazonECS) がAmazon Elastic Block Store (AmazonEBS) との統合をサポートすることを発表した。
この統合により、ユーザーはAWS FargateとAmazon Elastic Compute Cloud (AmazonEC2) 上で実行するECSタスクに対して、ストレージやコンピートを管理することなく、Amazon EBSストレージをプロビジョニングできる。さらに、ユーザーはAmazon ECS上で動作するコンテナ化されたアプリケーションのために、様々なストレージオプションを利用できる。デフォルトでは、Fargateタスクには20 GiBのエフェメラル・ストレージが付属している。それでもユーザーは、大きなコンテナ・イメージのダウンロードや一時的なスクラッチ作業など、余分なストレージを必要とするタスクのために、最大200 GiBまで設定できる。
さらに、Amazon ECSでは、共有データセットへの同時アクセスが必要なアプリケーション向けにAmazon Elastic File System EFSを構成できる。これは、Webアプリケーションや機械学習フレームワークなどのワークロードに適しており、リージョン全体で複数のタスクへの同時アタッチメントをサポートする。また、個々のタスク専用の高性能でコスト効率に優れたストレージが必要なアプリケーションには、Amazon ECSを使用することで、アベイラビリティゾーン内で低レイテンシーで高性能なブロックストレージとして知られるAmazon EBSストレージのプロビジョニングとアタッチメントが可能になる。
ユーザーは、タスク定義でコンテナのボリュームマウントポイントを設定し、実行時にAmazon ECSタスクのAmazon EBSストレージ要件を指定するオプションを使用することで、EBSボリュームのECSタスクへの統合を活用できる。ほとんどのシナリオでは、タスクに必要なボリュームサイズを指定するだけで、すべてのEBSボリューム属性とボリュームをフォーマットするファイルシステムを設定できる。
AWSコンソールでタスク定義を作成する(出典:AWS Newsブログポスト)
回答者のZenin氏は、Redditのスレッドでストレージについて質問している。
しかし、持続的なストレージというわけではないでしょう? コンテナがクラッシュして新しいノードで起動すると、EBSボリュームは破棄され、ゼロから新しいボリュームが作成されますね?ということは、これは本当に大きなスクラッチスペースや、スナップショットを使って、あらかじめ定義された大きなデータセットをロードする方法なのでしょうか。それとも私の読み違いでしょうか?
AWSの社員から回答があった。
その通りです。現在、EBSボリュームをECSにアタッチする主なユースケースは、大量のデータを迅速かつ効率的にタスクに取り込むことです。コンテナイメージに大量のデータを詰め込んだり、タスク開始後にその場でダウンロードしたりするよりも、はるかに高速でパフォーマンスも高いことがわかるはずです。真にステートフルなサービスを実現するためには、まだまだやるべきことがあります。そのため、EBSボリュームの再接続は今回のリリースにまだ含まれていません。
Amazon ECSとAmazon EBSの統合は、現在9つのAWSリージョンで利用可能だ。米国東部(オハイオ州)、米国東部(北バージニア州)、米国西部(オレゴン州)、アジア太平洋地域(シンガポール)、アジア太平洋地域(シドニー)、アジア太平洋地域(東京)、欧州(フランクフルト)、欧州(アイルランド)、欧州(ストックホルム)である。統合を利用する際のコストは、Amazon EBS(ボリュームとスナップショット)の利用状況によって異なる。価格の詳細は、AWSドキュメントのAmazon EBS価格ページとECSのAmazon EBSボリュームで確認できる。