AWS Fargate 上の Amazon ECS コンテナのディスク容量を増やす方法を教えてください。

最終更新日: 2022 年 8 月 2 日

AWS Fargate の Amazon Elastic Container Service (Amazon ECS) コンテナのディスク容量を増やしたいと考えています。

簡単な説明

デフォルトでは、プラットフォームバージョン 1.40 で起動する Fargate タスクには、20 GiB のタスクストレージサイズが 1 つのエフェメラルボリュームとして含まれています。20 GiB を超えるストレージが必要な場合は、次の 2 つのオプションを使用してストレージを増やすことができます。

  • 最大 200 GiB のストレージには、Fargate のエフェメラルストレージオプションを使用します。エフェメラルストレージは非永続的ストレージです。
  • Amazon Elastic File System (Amazon EFS) ボリュームを使用して、スケーラブルなファイルストレージを実現します。Amazon EFS ボリュームは永続的ストレージを提供します。

重要: Amazon EFS ボリュームを作成するときは、Fargate サービスに割り当てられているものと同じ Amazon Virtual Private Cloud (Amazon VPC) とサブネットを使用します。

解決方法

エフェメラルストレージの設定

注意: AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用するようにしてください

エフェメラルストレージの設定例については、「Bind mount examples」(バインドマウントの例) を参照してください。

Amazon EFS ボリュームでストレージを設定する

1.    Amazon EFS マウントターゲット用のセキュリティグループを作成します。次に、ソースのタスクセキュリティグループからポート 2049 で NFS トラフィックを受け入れるインバウンドルールを追加します。

2.    Amazon EFS ファイルシステムを作成し、手順 1 のセキュリティグループをマウントターゲットにアタッチします。
注: デフォルトでは、特定の AWS リージョンの各アベイラビリティーゾーンにマウントターゲットが設定されます。Fargate サービスの VPC サブネットがあるアベイラビリティーゾーンをすべて選択します。

3.    ファイルシステムのファイルシステム ID (例えば、fs-12345678) をメモします。

4.    タスク定義を作成または更新して、Amazon EFS ファイルシステムを持つ Amazon ECS タスクのボリュームを設定します 。例:

"volumes": [ 
   {
      "name": "efs-test-volume",
      "efsVolumeConfiguration": {
           "fileSystemId": "fs-12345678", 
           "transitEncryption": "ENABLED" 
      }
   } 
 ]

注: fs-12345678 をファイルシステム ID に置き換えます。

5.    コンテナ定義セクションを使用して、コンテナ内にボリュームのマウントポイントを作成します。例:

"containerDefinitions": [ 
{
   "memory": 128, 
    "portMappings": [ 
       {
          "hostPort": 80, 
          "containerPort": 80, 
           "protocol": "tcp" 
        } 
     ], 
     "essential": true, 
     "mountPoints": [ 
        {
        "containerPath": "/mount/path/inside/container", 
        "sourceVolume": "efs-test-volume" 
        } 
      ], 
      "name": "nginx", 
      "image": "nginx" 
   }
]

注: containerPath は、ボリュームをマウントするコンテナ内のパスです。sourceVolume は、ステップ 4 で定義したボリュームの名前です。

6.    更新されたタスク定義を使用してタスクを実行します。注意: サービスに関連付けられているタスクの場合は、新しいタスク定義のリビジョンを選択してサービスを更新します。


この記事はお役に立ちましたか。


請求に関するサポートまたは技術サポートが必要ですか?