

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

# Amazon Elastic Container Service からのマウント
<a name="mounting-ecs"></a>

FSx for Lustre ファイルシステムには、Amazon EC2 インスタンス上の Amazon Elastic Container Service (Amazon ECS) Docker コンテナからアクセスできます。これを行うには、次のオプションのいずれかを使用します。

1. Amazon ECS タスクをホストしている Amazon EC2 インスタンスから FSx for Lustre ファイルシステムをマウントし、このマウントポイントをコンテナにエクスポートします。

1. ファイルシステムをタスクコンテナ内に直接マウントする。

Amazon ECS の詳細については、「*Amazon Elastic Container Service デベロッパーガイド*」の「[Amazon Elastic Container Service とは](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)」を参照してください。

特に同じ EC2 インスタンスで多数のコンテナ (5 つ以上) を起動する場合や、タスクの存続期間が短い (5 分未満) の場合、リソースの使用率を向上させるためには、オプション 1 ([Amazon ECS タスクをホストする Amazon EC2 インスタンスからマウントする](#mounting-from-ecs-ec2)) を使用することをお勧めします。

EC2 インスタンスを設定できない場合、またはアプリケーションがコンテナの柔軟性を必要とする場合、オプション 2 ([Docker コンテナからのマウント](#mounting-from-docker)) を使用します。

**注記**  
 AWS Fargate 起動タイプへの FSx for Lustre のマウントはサポートされていません。

以下のセクションでは、Amazon ECS コンテナから FSx for Lustre ファイルシステムをマウントする各オプションの手順について説明します。

**Topics**
+ [Amazon ECS タスクをホストする Amazon EC2 インスタンスからマウントする](#mounting-from-ecs-ec2)
+ [Docker コンテナからのマウント](#mounting-from-docker)

## Amazon ECS タスクをホストする Amazon EC2 インスタンスからマウントする
<a name="mounting-from-ecs-ec2"></a>

この手順では、FSx for Lustre ファイルシステムをローカルにマウントするように EC2 インスタンス上の Amazon ECS を設定する方法を示します。この手順では `volumes` および `mountPoints` コンテナプロパティを使用して、リソースを共有し、ローカルで実行されているタスクがこのファイルシステムにアクセスできるようにします。詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「[Amazon ECS コンテナインスタンスの起動](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html)」を参照してください。

この手順は、Amazon ECS 最適化 Amazon Linux 2 AMI 用に書かれています。別の Linux ディストリビューションを使用している場合は、「[Lustre クライアントのインストール](install-lustre-client.md)」を参照してください。

**EC2 インスタンスの Amazon ECS からファイルシステムをマウントするには**

1. Amazon ECS インスタンスを手動で、または Auto Scaling グループを使用して起動する場合は、次のコード例の行を **[User data]** (ユーザーデータ) フィールドの最後に追加します。例の項目を以下に置き換えます。
   + 実際のファイルシステムのシステムの DNS 名で `{{file_system_dns_name}}` を置き換えます。
   + ファイルシステムのマウント名で `{{mountname}}` を置き換えます。
   + 作成する必要があるファイルシステムのマウントポイントを使用して、`{{mountpoint}}` を置き換えます。

   ```
   #!/bin/bash
   
   ...<existing user data>...
   
   fsx_dnsname={{file_system_dns_name}}
   fsx_mountname={{mountname}}
   fsx_mountpoint={{mountpoint}}
   amazon-linux-extras install -y lustre
   mkdir -p "$fsx_mountpoint"
   mount -t lustre ${fsx_dnsname}@tcp:/${fsx_mountname} ${fsx_mountpoint} -o relatime,flock
   ```

1. Amazon ECS タスクを作成するときは、以下の JSON 定義の `volumes` および `mountPoints` コンテナプロパティを追加します。ファイルシステムのマウントポイント (`/mnt/fsx` など) で `{{mountpoint}}` を置き換えます。

   ```
   {
       "volumes": [
              {
                    "host": {
                         "sourcePath": "{{mountpoint}}"
                    },
                    "name": "Lustre"
              }
       ],
       "mountPoints": [
              {
                    "containerPath": "{{mountpoint}}",
                    "sourceVolume": "Lustre"
              }
       ],
   }
   ```

## Docker コンテナからのマウント
<a name="mounting-from-docker"></a>

次の手順で、Amazon ECS タスクコンテナを設定して `lustre-client` パッケージをインストールし、FSx for Lustre ファイルシステムをマウントします。この手順では、Amazon Linux (`amazonlinux`) Docker イメージを使用しますが、他のディストリビューションでも同様のアプローチが機能します。

**ファイルシステムを Docker コンテナからマウントするには**

1. Docker コンテナで、`lustre-client` パッケージをインストールし、FSx for Lustre ファイルシステムを `command` プロパティでマウントします。例の項目を以下に置き換えます。
   + 実際のファイルシステムのシステムの DNS 名で `{{file_system_dns_name}}` を置き換えます。
   + ファイルシステムのマウント名で `{{mountname}}` を置き換えます。
   + ファイルシステムのマウントポイントで `{{mountpoint}}` を置き換えます。

   ```
   "command": [
     "/bin/sh -c \"amazon-linux-extras install -y lustre; mount -t lustre {{file_system_dns_name}}@tcp:/{{mountname}} {{mountpoint}} -o relatime,flock;\""
   ],
   ```

1. `linuxParameters` プロパティを使用して、FSx for Lustre ファイルシステムをマウントすることをコンテナに許可する `SYS_ADMIN` 機能を追加します。

   ```
   "linuxParameters": {
     "capabilities": {
         "add": [
           "SYS_ADMIN"
         ]
      }
   }
   ```