「Amazon EFS ボリューム」 - AWS Batch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

「Amazon EFS ボリューム」

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

で Amazon EFS ファイルシステムを使用して AWS Batch 、コンテナインスタンスのフリート間でファイルシステムデータをエクスポートできます。これにより、ジョブは、同じ永続的ストレージにアクセスできます。ただし、Docker デーモンが起動する前に、Amazon EFS ファイルシステムをマウントするように、コンテナインスタンス AMI を設定する必要があります。また、ファイルシステムを使用するには、ジョブ定義でコンテナインスタンスのボリュームマウントを参照する必要があります。以下のセクションは、 AWS BatchでAmazon EFSの使用を開始するのに役立ちます。

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 Elastic Container Service デベロッパーガイドの「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 以降で Amazon EFS ファイルシステムのサポートが追加されました。詳細については、Amazon Elastic Container Service デベロッパーガイドの「AWS Fargate プラットフォームのバージョン」を参照してください。

  • Fargate リソースで使用されるジョブに Amazon EFS ボリュームを指定する場合、Fargate は Amazon EFS ボリュームの管理を担当するスーパーバイザーコンテナを作成します。スーパーバイザーコンテナは、ジョブのメモリを少しだけ使用します。スーパーバイザーコンテナは、タスクメタデータバージョン 4 エンドポイントにクエリを実行するときに表示されます。詳細については、Amazon Elastic Container Service ユーザーガイド AWS Fargate用のタスクメタデータエンドポイントバージョン 4を参照してください。

Amazon EFS アクセスポイントの使用

Amazon EFS アクセスポイントは、EFS ファイルシステムへのアプリケーション固有のエントリポイントです。これにより、共有データセットへのアプリケーションアクセスが管理しやすくなります。Amazon EFS アクセスポイントの詳細およびアクセス制御方法については、Amazon Elastic File System ユーザーガイドの「Amazon EFS アクセスポイントの使用」を参照してください。

アクセスポイントを使用すると、アクセスポイントを介したすべてのファイルシステム要求に対してユーザーアイデンティティ (ユーザーの POSIX グループなど) を適用できます。また、ファイルシステムに対して別のルートディレクトリを適用し、このディレクトリまたはそのサブディレクトリ内のデータに対してのみ、クライアントにアクセスを許可することもできます。

注記

EFS アクセスポイントを作成するときは、ルートディレクトリとして機能するファイルシステム上のパスを指定します。 AWS Batch ジョブ定義でアクセスポイント ID を使用して EFS ファイルシステムを参照する場合、ルートディレクトリを省略するか、 に設定する必要があります。/これにより、EFS アクセスポイントに設定されたパスが適用されます。

AWS Batch ジョブの IAM ロールを使用して、特定のアプリケーションが特定のアクセスポイントを使用するように強制できます。IAM ポリシーとアクセスポイントを組み合わせると、アプリケーションから特定のデータセットへのアクセスを簡単に保護できます。この機能では、タスク用の Amazon ECS IAM ロールを使用します。詳細については、Amazon Elastic Container Service デベロッパーガイドタスク用の IAM ロールを参照してください。

ジョブ定義内で Amazon EFS ファイルシステムを指定する

コンテナに Amazon EFS ファイルシステムボリュームを使用するには、ジョブ定義でボリュームとマウントポイントの設定を指定する必要があります。次のジョブ定義の JSON スニペットは、コンテナの [volumes] と [mountPoints] オブジェクトの構文を示します。

{ "containerProperties": [ { "image": "amazonlinux:2", "command": [ "ls", "-la", "/mount/efs" ], "mountPoints": [ { "sourceVolume": "myEfsVolume", "containerPath": "/mount/efs", "readOnly": true } ], "volumes": [ { "name": "myEfsVolume", "efsVolumeConfiguration": { "fileSystemId": "fs-12345678", "rootDirectory": "/path/to/my/data", "transitEncryption": "ENABLED", "transitEncryptionPort": integer, "authorizationConfig": { "accessPointId": "fsap-1234567890abcdef1", "iam": "ENABLED" } } } ] } ] }
efsVolumeConfiguration

タイプ: オブジェクト

必須: いいえ

このパラメータは、Amazon EFS ボリュームを使用する場合に指定します。

fileSystemId

型: 文字列

必須: はい

使用する Amazon EFS ファイルシステムの ID。

rootDirectory

型: 文字列

必須: いいえ

ホスト内にルートディレクトリとしてマウントする Amazon EFS ファイルシステム内のディレクトリ。このパラメータを省略すると、Amazon EFS ボリュームのルートが使用されます。/ を指定すると、このパラメータを省略した場合と同じ結果になります。最大 4,096 文字を使用できます。

重要

[authorizationConfig] に EFS アクセスポイントを指定する場合は、ルートディレクトリパラメータを省略するか、または [/] に設定する必要があります。これにより、EFS アクセスポイントに設定されたパスが強制されます。

transitEncryption

タイプ: 文字列

有効な値: ENABLED | DISABLED

必須: いいえ

AWS Batch ホストと Amazon EFS サーバー間で転送中の Amazon EFS データの暗号化を有効にするかどうかを決定します。Amazon EFS IAM 認可を使用する場合は、転送中の暗号化を有効にする必要があります。このパラメータを省略すると、DISABLED のデフォルト値が使用されます。詳細については、Amazon Elastic File System ユーザーガイドの「トランジット中のデータの暗号化」を参照してください。

transitEncryptionPort

タイプ: 整数

必須: いいえ

AWS Batch ホストと Amazon EFS サーバー間で暗号化されたデータを送信するときに使用するポート。転送中の暗号化ポートを指定しないと、Amazon EFS マウントヘルパーが使用するポート選択方式が使用されます。この値は 0~65,535 の範囲の値にする必要があります。詳細については、Amazon Elastic File System User Guide] (Amazon Elastic File System ユーザーガイド) のEFS Mount Helper] (EFS マウントヘルパー) を参照してください。

authorizationConfig

タイプ: オブジェクト

必須: いいえ

Amazon EFS ファイルシステムに対する認可構成の詳細。

accessPointId

型: 文字列

必須: いいえ

使用するアクセスポイント ID。アクセスポイントを指定する場合は、[efsVolumeConfiguration] のルートディレクトリ値を省略するか、これを [/] に設定する必要があります。これにより、EFS アクセスポイントに設定されたパスが強制されます。アクセスポイントを使用する場合は、EFSVolumeConfiguration で転送中の暗号化を有効にする必要があります。詳細については、Amazon Elastic ファイルシステムユーザーガイドAmazon EFS アクセスポイントの使用を参照してください。

iam

型: 文字列

有効な値: ENABLED | DISABLED

必須: いいえ

Amazon EFS ファイルシステムをマウントするときに、 AWS Batch ジョブ定義で定義されているジョブ IAM ロールを使用するかどうかを決定します。使用する場合は、EFSVolumeConfiguration で転送中の暗号化を有効にする必要があります。このパラメータを省略すると、DISABLED のデフォルト値が使用されます。IAM 実行ロールの詳細については、「AWS Batch IAM 実行ロール」を参照してください。