すべてのプロダクト
Search
ドキュメントセンター

Elastic Container Instance:OSS ボリュームを Elastic Container Instance にマウントする

最終更新日:Jun 22, 2026

Object Storage Service (OSS) は、画像、音声ファイル、動画ファイルなどの非構造化データに対して、大規模で安全、コスト効率が高く、信頼性の高いストレージを提供します。このトピックでは、OSS ボリュームを Elastic Container Instance (ECI) にマウントする方法について説明します。

注意事項

  • OSS は使用量に基づいて課金され、従量課金、リソースプラン、ストレージ容量ユニット (SCU) などの課金方法をサポートしています。詳細については、「OSS の課金の概要」をご参照ください。

  • OSS は共有ストレージを提供します。単一の OSS バケットを複数のインスタンスにマウントできます。

  • 1 つのマウントディレクトリに保存するファイルは 1,000 個以下にしてください。

    ファイル数が多すぎると、OSS クライアントが大量のメモリを消費し、インスタンスでメモリ不足 (OOM) イベントが発生する可能性があります。

前提条件

  1. OSS バケットを作成します。

    1. OSS コンソールにログインします。

    2. OSS バケットを作成します。

      詳細については、「バケットの作成」をご参照ください。

  2. 権限付与のメソッドを選択します。

    • RAM ロールを使用した権限付与 (推奨)

      RAM ロールを作成し、権限を付与します。詳細については、「RAM ロールの作成」および「RAM ロールへの権限付与」をご参照ください。

      ロールを作成する際、[信頼できるエンティティタイプ][Alibaba Cloud サービス] に、[ロールタイプ][通常のサービスロール] に、[信頼できるサービス][Elastic Compute Service (ECS)] に設定します。AliyunOSSFullAccess ポリシーをロールにアタッチします。

    • AccessKey ペアを使用した権限付与 (非推奨)

      AccessKey ID と AccessKey シークレットを取得します。詳細については、「AccessKey ペアの取得」をご参照ください。

設定 (API)

CreateContainerGroup API オペレーションを呼び出して ECI を作成する際に、Volume 関連のパラメーターを使用してボリュームを指定し、次に Container.VolumeMount 関連のパラメーターを使用してボリュームをコンテナにマウントできます。関連パラメーターを以下に示します。詳細については、「CreateContainerGroup」をご参照ください。

ボリュームの宣言

Volume 関連のパラメーターを使用してボリュームを指定する場合、まずボリュームのタイプと名前を指定する必要があります。次に、Volume.N.Type パラメーターの値に基づいて、他の Volume 関連のパラメーターを設定する必要があります。

パラメーター

タイプ

説明

Volume.N.Name

String

oss-demo

ボリュームの名前。

Volume.N.Type

String

FlexVolume

FlexVolume プラグインを使用してマウントされるボリュームを作成するには、FlexVolume に設定します。

Volume.N.FlexVolume.Driver

String

alicloud/oss

FlexVolume プラグインのドライバー。OSS ボリュームをマウントするには、alicloud/oss に設定します。

Volume.N.FlexVolume.Options

String

{"bucket":"test-*","url":"oss-cn-hangzhou.aliyuncs.com","ramRole":"ram-*"}

FlexVolume オブジェクトのオプションの JSON 文字列。

FlexVolume を使用して OSS ボリュームをマウントする場合、Options パラメーターは OSS ボリュームの設定を指定します。次のパラメーターがサポートされています:

  • bucket:OSS バケットの名前。

  • url: OSS バケットのエンドポイントです。OSS コンソールの対象バケットの概要ページから取得できます。詳細については、「リージョンとエンドポイント」をご参照ください。

  • path:バケットのルートディレクトリからの相対ディレクトリパス。デフォルト値: /

  • otherOpts:OSS ボリュームをマウントする際に指定できるカスタムパラメーター。フォーマットは -o *** -o *** です。例: -o max_stat_cache_size=0 -o allow_other

  • akId:AccessKey ペアを使用して権限を付与する場合の AccessKey ID。

  • akSecret:AccessKey ペアを使用して権限を付与する場合の AccessKey シークレット。

  • ramRole:RAM ロールを使用して権限を付与する場合の RAM ロールの名前。

ボリュームのマウント

ボリュームを指定した後、VolumeMount 関連のパラメーターを使用してボリュームをコンテナにマウントできます。

パラメーター

タイプ

説明

Container.N.VolumeMount.N.Name

String

test-volume

コンテナ N にマウントするボリューム N の名前。この値は Volume.N.Name の値です。

Container.N.VolumeMount.N.MountPath

String

/usr/share

ボリュームをマウントするコンテナ内のパス。このディレクトリ内のデータは、ボリューム上のデータによって上書きされます。

Container.N.VolumeMount.N.SubPath

String

/usr/sub

ボリュームのサブディレクトリ。このパラメーターは、インスタンスが同じボリュームの異なるサブディレクトリをコンテナの異なるサブディレクトリにマウントできるように指定します。

Container.N.VolumeMount.N.ReadOnly

Boolean

false

マウントディレクトリが読み取り専用かどうかを指定します。デフォルト値: false。

Container.N.VolumeMount.N.MountPropagation

String

None

ボリューム N のマウントプロパゲーション設定。マウントプロパゲーションを使用すると、1 つのコンテナにマウントされたボリュームを、同じ ECI 内の他のコンテナや、同じホスト上の他の ECI と共有できます。有効な値:

  • None:ボリュームマウントは、このボリュームまたはそのサブディレクトリに後からマウントされたものを受け取りません。

  • HostToContainer:ボリュームマウントは、このボリュームまたはそのサブディレクトリに後からマウントされたものをすべて受け取ります。

  • Bidirectional:この値は HostToContainer と同様の効果があります。ボリュームマウントは、このボリュームまたはそのサブディレクトリに後からマウントされたものをすべて受け取ります。さらに、コンテナ N によって作成されたすべてのボリュームマウントは、ホストおよび同じボリュームを使用するすべての ECI のすべてのコンテナに伝播されます。

デフォルト値: None。

説明

ボリュームは init コンテナにもマウントできます。必要なパラメーターは前の表のパラメーターと似ています。Container を InitContainer に変更するだけです。

設定 (コンソール)

Elastic Container Instance 購入ページで Elastic Container Instance を作成する際、[コンテナグループ設定] セクションでボリュームを指定し、次に [コンテナ設定] セクションでコンテナにボリュームをマウントできます。

ボリュームの宣言

  1. [コンテナグループ設定] セクションで、[詳細設定] を展開します。

  2. [ストレージ] セクションの [OSS 永続化] タブで、[追加] をクリックします。

  3. OSS ボリュームのパラメーターを設定します。

    • 名前: OSS ボリュームの名前。

    • バケット:OSS バケットの名前です。

    • RAM ロール:OSS へのアクセス権限を持つ RAM ロールです。

ボリュームのマウント

  1. [コンテナ設定] セクションで、コンテナを選択し、その詳細設定を展開します。

  2. [ストレージ] スイッチをオンにして、[追加] をクリックします。

    利用可能なボリュームは、コンテナグループの設定で宣言したものです。

    ストレージ設定の行で、[ボリューム] を宣言済みのボリューム (例: oss-demo) に設定し、ストレージタイプ (例: [OSS 永続化]) を選択し、[コンテナ内のマウントパス] (例: /data) を入力します。オプションで、[サブパス] (例: test) を指定し、[読み取り専用] チェックボックスを選択します。

説明

複数のコンテナにボリュームをマウントする場合は、さらにコンテナを選択して上記の手順を繰り返します。

設定例

  1. ECI のインスタンス A を作成し、OSS ボリュームをマウントします。

    次の例は、CreateContainerGroup オペレーションを呼び出してインスタンス A を作成するために使用されるパラメーターを示しています。詳細については、「CreateContainerGroup」をご参照ください。

    ContainerGroupName=test-oss-a
    # ボリュームの宣言
    Volume.1.Name=oss-demo
    Volume.1.Type=FlexVolume
    Volume.1.FlexVolume.Driver=alicloud/oss
    Volume.1.FlexVolume.Options={"bucket":"test-***","url":"oss-cn-hangzhou-internal.aliyuncs.com","ramRole":"ram-***"}
    # ボリュームをコンテナにマウント
    Container.1.Name=nginx
    Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
    Container.1.VolumeMount.1.Name=oss-demo
    Container.1.VolumeMount.1.MountPath=/data-a
  2. インスタンス A に接続し、マウントディレクトリにファイルを作成します。

    ECI への接続方法については、「ワークベンチを使用して ECI インスタンスに接続する」をご参照ください。

    root@test-oss-a:/# cd data-a
    root@test-oss-a:/data-a# ls
    root@test-oss-a:/data-a# echo "hello" >test
    root@test-oss-a:/data-a# ls
    test
    root@test-oss-a:/data-a# cat test
    hello
  3. インスタンス A を削除します。

  4. 別の ECI であるインスタンス B を作成し、同じ OSS ボリュームをマウントします。

    ContainerGroupName=test-oss-b
    # ボリュームの宣言
    Volume.1.Name=oss-demo
    Volume.1.Type=FlexVolume
    Volume.1.FlexVolume.Driver=alicloud/oss
    Volume.1.FlexVolume.Options={"bucket":"test-***","url":"oss-cn-hangzhou-internal.aliyuncs.com","ramRole":"ram-***"}
    # ボリュームをコンテナにマウント
    Container.1.Name=nginx
    Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
    Container.1.VolumeMount.1.Name=oss-demo
    Container.1.VolumeMount.1.MountPath=/data-b
  5. インスタンス B に接続し、マウントディレクトリ内のファイルを確認します。

    OSS は永続ストレージを提供するため、インスタンス A が削除された後でも、インスタンス B からインスタンス A によって書き込まれたファイルにアクセスできます。

    root@test-oss-b:/# cd data-b
    root@test-oss-b:/data-b# ls
    test
    root@test-oss-b:/data-b# cat test
    hello