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情報を入力。「名前」の項目は次の設定で利用します。
② ECS ‐ タスク定義 - <タスク定義名> - コンテナ定義 - マウントポイント
- ソースボリューム: ①で設定した 「名前」を選択する
- コンテナパス: コンテナ内でのマウントポイント(今回は /mnt/)
動作確認
EFS内に配置したファイルはこんな感じ
. ├── testfile └── testfolder └── testfile2
コンテナ上で "ls -l /mnt/" で確認するとEFS内のファイルを正常に認識しているのがわかります。
ホスト側でDFコマンドを実行するとタスク定義で設定したEFSが自動的にマウントされているのがわかります。AWS側で諸々自動で対応してくれるので楽ですね。
参考
チュートリアル: Amazon ECS での Amazon EFS ファイルシステムの使用 - Amazon Elastic Container Service