🐈
ECSにアタッチ可能なボリューム一覧と特徴
初めに
2024/1/11のAWSアップデート( https://aws.amazon.com/jp/about-aws/whats-new/2024/01/amazon-ecs-fargate-integrate-ebs/ )により、ECSにEBSをアタッチできるようになった。それに伴い、本ページでは「ECSにアタッチ可能なボリューム一覧と特徴」についてまとめる。ECSのアップデート概要および利用方法については、以下のページにまとめている。
また、本ページは以下のAWSドキュメントを参考にまとめている。
ECSで利用可能なボリューム一覧
ECSで利用可能なボリュームは以下である。
- EBS volumes
- Fargate ephemeral task storage
- EFS volumes
- FSx for Windows File Server volumes
- Docker volumes
- Bind mounts
ECS起動タイプ別ボリューム利用可否
ECSには、ECS on Fargate と ECS on EC2の2つの起動タイプがある。
ECSの起動タイプによって利用可能なボリュームが異なるため、以下にそれぞれの利用可否をまとめる。
ボリューム | EC2 | Fargate |
---|---|---|
EBS volumes | ○ ⭐️2024/1/11から利用可能! |
○ ⭐️2024/1/11から利用可能! |
EFS volumes | ○ | ○ |
FSx for Windows File Server volumes | ○ Windowsのみサポート |
× |
Docker volumes | ○ | × |
Bind mounts | ○ | ○ ※Fargate ephemeral task storageを指す |
ボリューム別特徴
EBS volumes
ECSにおける EBSの特徴をまとめる。EBS固有の特徴については「EBSのドキュメント」を参照する。
- 一時ストレージ領域
- ECSタスクが停止すると削除されてしまう
- 新規のボリュームしかアタッチできない。
- 既存のボリュームはアタッチできない。
- スナップショットから復元されたボリュームについてはアタッチできる。
その他の特徴は以下の記事でまとめている。
EFS volumes
ECSにおける EFSの特徴をまとめる。EFS固有の特徴については「EFSのドキュメント」を参照する。
- 従来、ECSで一般的に使用されてきたボリューム
- 永続ストレージ
- タスク間の共有ストレージとして利用可能
- AZを跨るタスク間のデータ共有も可能
参考:
その他の特徴はEFSの特徴を参照
FSx for Windows File Server volumes
- Fargateはサポート外
- EC2のWindowsコンテナのみサポート
- Amazon ECS-Optimized Windows Server 2016 Full AMI はサポート外
- 永続的なファイルサーバ
- その他の特徴は以下のドキュメントを参照
参考:
Docker volumes
- EC2と外部インスタンスでサポート
- 永続ストレージ。設定(タスク定義のscope)を変更することで、一時ストレージ領域としても利用可能。
- 同一コンテナインスタンス内のコンテナ間で共有可能
- 外部ストレージと連携することで使用する
- EBS volmes
- ローカルのボリューム(Windowsインスタンスの場合は)
- サードパーティのボリューム
- Windowsインスタンスの場合、上の3つの外部ストレージのうち「ローカルのボリューム」のみ連携可能
参考:
Bind mounts
- 一時ストレージ領域
- ECSタスクが停止すると削除されてしまう
- 同一タスク内のコンテナ間で共有可能
- Fargateにおける Fargate ephemeral task storage を指す
- 詳細については、以下の「Fargate ephemeral task storage」に記載
- EC2でも利用可能
参考:
Fargate ephemeral task storage (Bind mounts)
- 一時ストレージ領域(名前の通り)
- コンテナイメージの容量も含まれる(以下に式と例を示す)
式)実際に使える容量 = ①設定したエフェメラル容量 - ②イメージの容量
例)① = 20GiB, ② = 1GiB の場合、
実際に使える容量 = 20GiB - 1GiB = 19GiB
-
Fargate Linux プラットフォームバージョン 1.4.0 以降を使用している場合、
- defaultで20GiBが設定される。
- AES-256 暗号化アルゴリズムにより暗号化される。
- 容量は、最小20Gib ~ 最大200GiBを設定可能。
- Container Insights をオンにすると、エフェメラルストレージの予約サイズと使用量が Amazon CloudWatch Container Insights に送信される。(Windowsコンテナはサポート外)
-
Fargate Linux プラットフォームバージョン 1.3.0 以前を使用している場合、
- 10GB の Docker Layer ストレージ
- 4GB の ボリュームマウント用ストレージ
- コンテナ間で共有するために使用
-
Fargate Windows プラットフォームバージョン 1.0.0 以降を使用している場合、
- 容量は、最小20Gib ~ 最大200GiBを設定可能。
参考:
Discussion