Elastic Container Instance (ECI) は、永続ストレージおよび一時ストレージ用のボリュームのマウントをサポートしています。このトピックでは、サポートされているボリュームタイプ、および API または ECI コンソールを使用したボリュームの宣言とマウントの方法について説明します。
ボリュームが必要な理由
デフォルトでは、コンテナファイルシステムはエフェメラルです。つまり、コンテナ内に書き込まれたデータは、コンテナ自体が存在する間のみ存在します。これにより、以下の 2 つの実用的な問題が発生します:
再起動時のデータ損失:コンテナがクラッシュして再起動すると、前回の実行中に書き込まれたすべてのファイルが失われます。
コンテナ間での共有不可:同じ ECI インスタンス内のコンテナは、ローカルファイルシステムを介してファイルを共有できません。
ボリュームは、コンテナのライフサイクルとは独立して永続化するストレージを提供することで、これら両方の問題を解決します。
ボリュームタイプ
ECI は、さまざまなストレージニーズに対応するために 5 種類のボリュームタイプをサポートしています。一般的なユースケースは次のとおりです:
コンテナが再起動してもデータが存続するようにデータベースファイルを永続化する
同じインスタンス内のコンテナ間で設定ファイルやログデータを共有する
イメージやメディアファイルなどの非構造化データをオブジェクトストレージに保存する
中間処理結果のための一時的なスクラッチ領域を提供する
コンテナに設定データを注入する
ボリュームタイプは、データが再起動後も存続する必要があるか、また複数のインスタンスが同時にアクセスする必要があるかという 2 つの主要な基準に基づいて選択します。
| ボリュームタイプ | 説明 | 永続性 | API モード | コンソールモード |
|---|---|---|---|---|
| Disk | 低レイテンシー、高パフォーマンス、高い耐久性、高い信頼性を備えたブロックストレージです。データベースやミドルウェアに適しています。1 つのインスタンスにのみマウントでき、共有ストレージタイプではありません。 | 永続 | サポート | 非サポート |
| NAS | 共有アクセスと自動スケーリングを備えた分散ファイルシステム (File Storage NAS) です。インスタンス間のデータ共有、ビッグデータ分析、Web アプリケーション、ログストレージに適しています。インスタンスが削除されてもデータは保持されます。 | 永続 | サポート | サポート |
| OSS | イメージやメディアファイルなどの非構造化データ向けのオブジェクトストレージ (Object Storage Service (OSS)) です。インスタンス間の共有アクセスをサポートします。ossfs (FUSE ベースのクライアント) を介してマウントされます。読み取りに最適化されているため、書き込み集中型のワークロードは避けてください。インスタンスが削除されてもデータは保持されます。 | 永続 | サポート | サポート |
| emptyDir | コンテナグループにスコープが限定された一時的なスクラッチ領域です。ECI インスタンスが再起動するとデータはクリアされます。 | エフェメラル | サポート | サポート |
| ConfigFile | コンテナグループに設定データを渡します。 | エフェメラル | サポート | サポート |
OSS ボリュームは ossfs を使用してマウントされます。これはユーザー空間ファイルシステム (FUSE) として実装されています。書き込み集中型のワークロードの場合は、代わりに NAS または他のボリュームを使用してください。
ボリュームの設定
ボリュームの設定は 2 段階のプロセスです。まずコンテナグループレベルでボリュームを宣言し、次に特定のコンテナにマウントします。宣言には Volume.N.Name および Volume.N.Type パラメーターを使用し、マウントには Container.VolumeMount 関連のパラメーターを使用します。
API モード
CreateContainerGroup 操作を呼び出す際、Volume.N.Name および Volume.N.Type パラメーターを使用して各ボリュームを宣言し、次に Container.VolumeMount 関連のパラメーターを使用してマウントします。
次の表に、Volume.N.Type でサポートされている値を示します。
Volume.N.Type の値 | ボリュームタイプ | リファレンス |
|---|---|---|
EmptyDirVolume | emptyDir (一時ディレクトリ) | emptyDir ボリュームのマウント |
ConfigFileVolume | ConfigFile (設定ファイル) | ConfigFile ボリュームのマウント |
NFSVolume | NFS (NAS ファイルシステム) | NAS ボリュームのマウント |
FlexVolume | FlexVolume プラグイン — Disk、NAS、OSS をサポート | ディスクボリュームのマウント、NAS ボリュームのマウント伸縮性コンテナインスタンスに OSS バケットをボリュームとしてマウント |
DiskVolumeも有効なVolume.N.Typeの値ですが、推奨されません。ディスクをマウントするにはFlexVolumeを使用してください。
コンソールモード
Elastic Container Instance 購入ページで ECI インスタンスを作成する際、[コンテナグループ設定] でボリュームを設定し、次に [コンテナ設定] でマウントします。
[コンテナグループ設定] セクションで [詳細設定] をクリックし、ボリュームを指定します。コンソールでは、次のボリュームタイプがサポートされています:
設定項目 (ConfigFile)
一時ディレクトリ (emptyDir)
NAS 永続ストレージ (NFS)
OSS 永続ストレージ (FlexVolume)

[コンテナ設定] セクションで、コンテナの横にある [詳細設定] をクリックしてボリュームをマウントします。

Disk ボリュームはコンソールではサポートされていません。ディスクをマウントするには API を使用してください。