Amazon ECS での Amazon EFS ボリュームの使用 - Amazon Elastic Container Service

Amazon ECS での Amazon EFS ボリュームの使用

Amazon Elastic File System (Amazon EFS) では、Amazon ECS タスクで使用するためのシンプルでスケーラブルなファイルストレージを提供します。Amazon EFSでは、ストレージ容量は伸縮性があります。この容量は、ファイルの追加や削除に伴い自動的に拡大および縮小されます。アプリケーションは、必要な時点で必要なストレージを確保できます。

Amazon EFS ファイルシステムを Amazon ECS で使用して、コンテナインスタンスのフリート全体のファイルシステムデータをエクスポートできます。これにより、タスクは、配置されているインスタンスにかかわらず、同じ永続的ストレージにアクセスできます。ファイルシステムを使用するには、タスク定義からコンテナインスタンスのボリュームマウントを参照する必要があります。以下のセクションで、Amazon EFS を Amazon ECS で使用開始する方法を説明します。

チュートリアルについては、「コンソールを使用した Amazon ECS での Amazon EFS ファイルシステムの使用」を参照してください。

Amazon EFS ボリュームに関する考慮事項

Amazon EFS ボリュームを使用する場合には、以下の点を考慮してください。

  • EC2 起動タイプを使用するタスク用として、Amazon ECS に最適化された AMI バージョン 20191212 でのコンテナエージェントバージョン 1.35.0 を使用する、Amazon EFS ファイルシステムのサポートが、パブリックプレビューとして追加されました。ただし、Amazon ECS 最適化 AMI バージョン 20200319、コンテナエージェントバージョン 1.38.0 で、Amazon EFS ファイルシステムのサポート (Amazon EFS アクセスポイントと IAM 認証機能を含む) が一般提供されました。これらの機能を使用する際には、Amazon ECS 最適化 AMI バージョン 20200319 以降の使用をお勧めします。詳細については、「Amazon ECS に最適化された 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 ファイルシステムがサポートされます。詳細については、「Fargate Linux プラットフォームのバージョン」を参照してください。

  • Fargate でホストされるタスクに Amazon EFS ボリュームを使用する場合、Fargate は Amazon EFS ボリュームの管理を担当するスーパーバイザーコンテナを作成します。スーパーバイザーコンテナは、タスクのメモリを少しだけ使用します。スーパーバイザーコンテナは、タスクメタデータバージョン 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 タスクロール」を参照してください。