Amazon ECS での Amazon EFS ボリュームの使用
Amazon Elastic File System (Amazon EFS) では、Amazon ECS タスクで使用するためのシンプルでスケーラブルなファイルストレージを提供します。Amazon EFSでは、ストレージ容量は伸縮性があります。この容量は、ファイルの追加や削除に伴い自動的に拡大および縮小されます。アプリケーションは、必要な時点で必要なストレージを確保できます。
Amazon EFS ファイルシステムを Amazon ECS で使用して、コンテナインスタンスのフリート全体のファイルシステムデータをエクスポートできます。これにより、タスクは、配置されているインスタンスにかかわらず、同じ永続的ストレージにアクセスできます。ファイルシステムを使用するには、タスク定義からコンテナインスタンスのボリュームマウントを参照する必要があります。
チュートリアルについては、「コンソールを使用した Amazon ECS での Amazon EFS ファイルシステムの設定」を参照してください。
考慮事項
Amazon EFS ボリュームを使用する場合には、以下の点を考慮してください。
-
EC2 起動タイプを使用するタスク用として、Amazon ECS に最適化された AMI バージョン
20191212
でのコンテナエージェントバージョン 1.35.0 を使用する、Amazon EFS ファイルシステムのサポートが、パブリックプレビューとして追加されました。ただし、Amazon EFS ファイルシステムのサポートは、コンテナエージェントバージョンが 1.38.0 の Amazon ECS 最適化 AMI バージョン20200319
(Amazon EFS アクセスポイントと IAM 認可機能が含まれるもの) で一般提供されています。これらの機能を使用する際には、Amazon ECS 最適化 AMI バージョン20200319
以降の使用をお勧めします。詳細については、「Amazon ECS に最適化された Linux AMI」を参照してください。注記
独自の AMI を作成する場合、コンテナエージェント 1.38.0 以降、
ecs-init
バージョン 1.38.0-1 以降を使用し、Amazon EC2 インスタンスで以下のコマンドを実行して、Amazon ECS ボリュームプラグインを有効にする必要があります。コマンドは、ベースイメージとして Amazon Linux 2 と Amazon Linux のどちらを使用しているかによって異なります。Amazon Linux 2
yum install amazon-efs-utils systemctl enable --now amazon-ecs-volume-plugin
Amazon Linux
yum install amazon-efs-utils sudo shutdown -r now
-
Fargate でホストされるタスクの場合、プラットフォームバージョン 1.4.0 以降 (Linux) で、Amazon EFS ファイルシステムがサポートされます。詳細については、「Amazon ECS 向け Fargate プラットフォームバージョン」を参照してください。
-
Fargate でホストされるタスクに Amazon EFS ボリュームを使用する場合、Fargate は Amazon EFS ボリュームの管理を担当するスーパーバイザーコンテナを作成します。スーパーバイザーコンテナは、タスクのメモリと CPU を少量使用します。スーパーバイザーコンテナは、タスクメタデータバージョン 4 エンドポイントにクエリを実行するときに表示されます。さらに、CloudWatch Container Insights では、コンテナ名
aws-fargate-supervisor
として表示されます。Amazon EC2 起動タイプを使用する場合の詳細については、「Amazon ECS タスクメタデータエンドポイントバージョン 4」を参照してください。Fargate 起動タイプを使用する場合の詳細については、「Fargate のタスク用の Amazon ECS タスクメタデータエンドポイントバージョン 4」を参照してください。 -
Amazon EFS ボリュームの使用または
EFSVolumeConfiguration
の指定は、外部インスタンスではサポートされていません。 -
エージェント設定ファイルの
ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION
パラメータは、デフォルトよりも小さい値 (約 1 時間) に設定することをお勧めします。この変更は、EFS マウント認証情報の有効期限切れを防ぎ、使用されていないマウントをクリーンアップするのに役立ちます。 詳細については、Amazon ECS コンテナエージェントの設定 をご参照ください。
Amazon EFS アクセスポイントの使用
Amazon EFS アクセスポイントは、EFS ファイルシステムへのアプリケーション固有のエントリポイントです。これにより、共有データセットへのアプリケーションによるアクセスを管理します。Amazon EFS アクセスポイントの詳細およびアクセス制御方法については、Amazon Elastic File System ユーザーガイドの「Amazon EFS アクセスポイントの使用」を参照してください。
アクセスポイントを使用すると、アクセスポイントを介したすべてのファイルシステム要求に対してユーザーアイデンティティ (ユーザーの POSIX グループなど) を適用できます。また、アクセスポイントでは、ファイルシステムに対して別のルートディレクトリを適用することも可能です。クライアントは、指定したディレクトリまたはそのサブディレクトリ内のデータに対してのみアクセスが可能なためです。
注記
EFS アクセスポイントを作成する際は、ファイルシステム上でルートディレクトリとして機能するパスを指定します。Amazon ECS タスク定義内でアクセスポイント ID を持つ EFS ファイルシステムを参照する場合、ルートディレクトリは省略するか、EFS アクセスポイントに設定されたパスを適用するために /
を設定する必要があります。
Amazon ECS タスクの IAM ロールを使用して、特定のアプリケーションで使用するアクセスポイントを限定できます。IAM ポリシーとアクセスポイントを組み合わせると、アプリケーションによる特定のデータセットへのアクセスを保護できます。タスクIAM ロールの使用方法については、「Amazon ECS タスクの IAM ロール」を参照してください。