ECS on EC2でEFSをマウントする

ECS on EC2のコンテナ内でEFSを利用する際に少しハマったのでさらっと設定の備忘録。

事前準備

  • ECS on EC2 クラスターが作成されていること。
    • 検証時に利用したAMI : amzn2-ami-ecs-hvm-2.0.20200430-x86_64-ebs
  • EFSが作成されており、ECS on EC2が存在しているサブネットにNICが作成されていること。

設定

事前準備が整っていれば設定箇所は2か所です。

① ECS ‐ タスク定義 - <タスク定義名> - ボリューム

項目に沿って利用するEFS情報を入力。「名前」の項目は次の設定で利用します。 f:id:ykoomaru:20200603224600p:plain

② ECS ‐ タスク定義 - <タスク定義名> - コンテナ定義 - マウントポイント

  • ソースボリューム: ①で設定した 「名前」を選択する
  • コンテナパス: コンテナ内でのマウントポイント(今回は /mnt/)

f:id:ykoomaru:20200603224611p:plain

動作確認

EFS内に配置したファイルはこんな感じ

.
├── testfile
└── testfolder
    └── testfile2

コンテナ上で "ls -l /mnt/" で確認するとEFS内のファイルを正常に認識しているのがわかります。 f:id:ykoomaru:20200603224643p:plain

ホスト側でDFコマンドを実行するとタスク定義で設定したEFSが自動的にマウントされているのがわかります。AWS側で諸々自動で対応してくれるので楽ですね。 f:id:ykoomaru:20200603224651p:plain

参考

チュートリアル: Amazon ECS での Amazon EFS ファイルシステムの使用 - Amazon Elastic Container Service