外部ボリューム
この機能は、すべての AWS リージョンおよびすべての Google Cloud リージョンで利用できます。Microsoft Azure では利用できません。Azure でボリュームを使用するには、お問い合わせください。
外部ボリュームは、自身のクラウドオブジェクトストレージ(AWS S3 や Google Cloud Storage など)内のバケットまたはパスへの読み取り専用参照であり、データをコピーまたは移動することなく、その場で Zilliz Cloud がデータにアクセスできるようにします。
このページでは、Web コンソールおよび SDK を使用して外部ボリュームを作成および削除する方法について説明します。
考慮事項
-
ボリュームは、プロジェクトのクラウドプロバイダーおよびリージョンに制限されます。たとえば、プロジェクトが AWS us-west-2 にある場合、作成できるボリュームも AWS us-west-2 内のみです。
-
クラスターでボリュームを使用するには、そのクラスターがボリュームと同じクラウドプロバイダーおよびリージョンに存在している必要があります。
-
ボリュームを作成および管理するには、Project Admin である必要があります。
-
ボリュームは作成後に設定を編集できません。ボリュームの設定を変更したい場合は、代わりに希望する設定で新しいボリュームを作成してください。
-
外部ボリュームの場合、データは自身のバケット内に保持されます。そのため、データファイルは外部ボリューム上ではなく、クラウドオブジェクトストレージ内で管理する必要があります。
-
各組織は最大 100 個の外部ボリューム を作成できます。
始める前に
外部ボリュームを作成する前に、AWS S3 バケット または Google GCS バケット を統合する必要があります。ストレージ統合は、作成したい外部ボリュームと同じクラウドプロバイダーおよびリージョン内にある必要があることに注意してください。
外部ボリュームを作成する
-
SDK 経由
- Python
- Java
- cURL
python# Initiate a volume managerfrom pymilvus.bulk_writer.volume_manager import VolumeManagervolume_manager = VolumeManager(cloud_endpoint="https://api.cloud.zilliz.com",api_key="YOUR_API_KEY")# Create a volumevolume_manager.create_volume(project_id="proj-xxxxxxxxxxxxxxxxxxxxxxx",region_id="aws-us-west-2",volume_name="external_volume",volume_type="EXTERNAL",storage_integration_id="integ-xxxx",path="data/",)print(f"\nVolume external_volume created")# Volume external_volume createdjava// Initiate a volume managerimport io.milvus.bulkwriter.VolumeManager;import io.milvus.bulkwriter.VolumeManagerParam;VolumeManagerParam volumeManagerParam = VolumeManagerParam.newBuilder().withCloudEndpoint("https://api.cloud.zilliz.com").withApiKey("YOUR_API_KEY").build();VolumeManager volumeManager = new VolumeManager(volumeManagerParam);// Create a EXTERNAL volumeimport io.milvus.bulkwriter.request.volume.CreateVolumeRequest;CreateVolumeRequest request = CreateVolumeRequest.builder().projectId("proj-xxxxxxxxxxxxxxxxxxxxxxx").regionId("aws-us-west-2").volumeName("external_volume").type("EXTERNAL").storageIntegrationId("integ-xxxx").path("data/").build();volumeManager.createVolume(request);System.out.printf("\nVolume %s created%n", "external_volume");// Volume external_volume createdbashcurl --request POST \--url "${BASE_URL}/v2/volumes/create" \--header "Authorization: Bearer ${TOKEN}" \--header "Request-Timeout: 5" \--header "Content-Type: application/json" \-d '{"projectId": "proj-xxxxxxxxxxxxxxxxxxxxxxx","regionId": "aws-us-west-2","volumeName": "my_external_volume","type": "EXTERNAL","storageIntegrationId": "integ-xxxxxxxxxxxxxxxxxxx","path": "data/","description": "A volume for storing collection data."}'# {# "code": 0,# "data": {# "volumeName": "external_volume"# }# }次の表は、各パラメーターを説明しています。
Parameter Description projectIdボリュームを作成したいプロジェクトの ID。 regionId作成するボリュームのリージョンは、データをインポートまたは移行する対象クラスターのクラウドプロバイダーおよびリージョンと一致している必要があります。 volumeName作成するボリュームの名前は組織全体で一意である必要があり、64 文字以下で、文字またはアンダースコアで始まり、文字、数字、ハイフン、アンダースコアのみを含める必要があります。 type外部ボリュームを作成するには、このパラメーターを EXTERNALに設定します。デフォルトはMANAGEDです。storageIntegrationId参照するストレージ統合の ID。 type=EXTERNALの場合は必須です。選択するストレージ統合は、作成したい外部ボリュームと同じ組織およびリージョンに属している必要があります。pathストレージパス。 type=EXTERNALの場合は必須です。description(optional)作成するボリュームの説明。255 文字まで。 -
Web コンソール経由
1左側のナビゲーションで Volumes をクリックします。
2Volumes ページで + Volume をクリックします。
3ボリュームの設定を行います。
次の表は、外部ボリューム作成時に使用される各パラメーターを説明しています。
Parameter Description Name ボリューム名は組織全体で一意である必要があり、64 文字以下で、文字またはアンダースコアで始まり、文字、数字、ハイフン、アンダースコアのみを含める必要があります。 Description このパラメーターは任意です。255 文字まで。 Volume Type ボリュームタイプとして "External" を選択します。 Cloud Provider & Region ボリュームのクラウドプロバイダーおよびリージョンは、データをインポートまたは移行する対象クラスターのクラウドプロバイダーおよびリージョンと一致している必要があります。 Storage Integration & Path ストレージ統合(AWS S3 バケット または Google GCS バケット)は、クラウドストレージへのアクセス設定をカプセル化した認証情報オブジェクトです。
Path は、データが配置されている場所を指すポインターです。(例:folder/)4Create をクリックします。
ボリュームを一覧表示する
プロジェクト内の既存のすべてのボリュームを表示できます。
-
SDK 経由
- Python
- Java
- cURL
python# Initiate a volume managerfrom pymilvus.bulk_writer.volume_manager import VolumeManagervolume_manager = VolumeManager(cloud_endpoint="https://api.cloud.zilliz.com",api_key="YOUR_API_KEY")# View volumesvolume_list = volume_manager.list_volumes(project_id="proj-xxxxxxxxxxxxxxxxxxxxxxx",current_page=1,page_size=10)print(f"\nlistVolumes results: \n", volume_list.json()['data'])# listVolumes results:## {# "count": 1,# "currentPage": 1,# "pageSize": 10,# "volumes": [# {# "volumeName": "external_volume"# "type":"EXTERNAL"# }# ]# }java// Initiate a volume managerimport io.milvus.bulkwriter.VolumeManager;import io.milvus.bulkwriter.VolumeManagerParam;VolumeManagerParam volumeManagerParam = VolumeManagerParam.newBuilder().withCloudEndpoint("https://api.cloud.zilliz.com").withApiKey("YOUR_API_KEY").build();VolumeManager volumeManager = new VolumeManager(volumeManagerParam);// View volumesimport com.google.gson.Gson;import io.milvus.bulkwriter.request.volume.ListVolumesRequest;import io.milvus.bulkwriter.response.volume.ListVolumesResponse;ListVolumesRequest request = ListVolumesRequest.builder().projectId("proj-xxxxxxxxxxxxxxxxxxxxxxx").currentPage(1).pageSize(10).build();ListVolumesResponse listVolumesResponse = volumeManager.listVolumes(request);System.out.println("\nlistVolumes results: " + new Gson().toJson(listVolumesResponse));// listVolumes results://// {// "count": 1,// "currentPage": 1,// "pageSize": 10,// "volumes": [// {// "volumeName": "external_volume",// "type":"EXTERNAL"// }// ]// }bashexport BASE_URL="https://api.cloud.zilliz.com"export TOKEN="YOUR_API_KEY"curl --request GET \--url "${BASE_URL}/v2/volumes?projectId=proj-xxxxxxxxxxxxxxxxx" \--header "Authorization: Bearer ${TOKEN}" \--header "Content-Type: application/json"# {# "code": 200,# "data": {# "count": 3,# "currentPage": 1,# "pageSize": 10,# "volumes": [# {# "volumeName": "my_volume_1",# "type": "MANAGED",# "description": "A volume for storing collection data."# },# {# "volumeName": "my_volume_2",# "type": "EXTERNAL",# "description": "A volume for storing collection data."# },# {# "volumeName": "my_volume_3",# "type": "MANAGED",# "description": "A volume for storing collection data."# }# ]# }#} -
Web コンソール経由

外部ボリュームの詳細を表示する
特定のボリュームの詳細を確認できます。
-
SDK 経由
- Python
- Java
- cURL
python# Initiate a volume managerfrom pymilvus.bulk_writer.volume_manager import VolumeManagervolume_manager = VolumeManager(cloud_endpoint="https://api.cloud.zilliz.com",api_key="YOUR_API_KEY")# View volumesvolume_list = volume_manager.describe_volume(volume_name="external_volume")print(f"\ndescVolume results: \n", volume_list.json()['data'])# descVolume results:## {# "volumeName": "external_volume",# "type": "EXTERNAL",# "regionId": "aws-us-west-2",# "storageIntegrationId": "integ-xxxx",# "path": "data/",# "status": "RUNNING",# "createTime": "2024-04-15T12:00:00Z",# }java// Initiate a volume managerimport io.milvus.bulkwriter.VolumeManager;import io.milvus.bulkwriter.VolumeManagerParam;VolumeManagerParam volumeManagerParam = VolumeManagerParam.newBuilder().withCloudEndpoint("https://api.cloud.zilliz.com").withApiKey("YOUR_API_KEY").build();VolumeManager volumeManager = new VolumeManager(volumeManagerParam);// View volumesimport com.google.gson.Gson;import io.milvus.bulkwriter.request.volume.DescribeVolumeRequest;import io.milvus.bulkwriter.response.volume.VolumeInfo;DescribeVolumeRequest request = DescribeVolumeRequest.builder().volumeName("descVolume").build();VolumeInfo volumeInfo = volumeManager.describeVolume(request);System.out.println("\ndescVolume results: " + new Gson().toJson(volumeInfo));// descVolume results:////{// "volumeName": "volume-22222lentitude",// "type": "EXTERNAL",// "regionId": "aws-us-west-2",// "storageIntegrationId": "integ-lir5xfbcgrkla6fjc39w15qjk",// "path": "",// "status": "RUNNING",// "createTime": "2026-04-27T15:40:53Z"//}bashexport BASE_URL="https://api.cloud.zilliz.com"export TOKEN="YOUR_API_KEY"curl --request GET \--url "${BASE_URL}/v2/volumes/${VOLUME_NAME}" \--header "Authorization: Bearer ${TOKEN}" \--header "Content-Type: application/json"# {# "code": 0,# "data": {# "volumeName": "external_volume",# "type": "EXTERNAL",# "regionId": "aws-us-west-2",# "storageIntegrationId": "si-xxxx",# "path": "data/",# "status": "RUNNING",# "createTime": "2024-04-15T12:00:00Z"# }#} -
Web コンソール経由

外部ボリュームを削除する
不要になった外部ボリュームはいつでも削除できます。
外部ボリュームを削除すると、Zilliz Cloud からはボリュームのメタデータのみが削除され、データ自体はクラウドオブジェクトストレージ内にそのまま保持されます。
-
SDK 経由
- Python
- Java
- cURL
python# Initiate a volume managerfrom pymilvus.bulk_writer.volume_manager import VolumeManagervolume_manager = VolumeManager(cloud_endpoint="https://api.cloud.zilliz.com",api_key="YOUR_API_KEY")# Delete a volumevolume_manager.delete_volume(volume_name="external_volume")print(f"\nVolume external_volume deleted")# Volume external_volume deletedjava// Initiate a volume managerimport io.milvus.bulkwriter.VolumeManager;import io.milvus.bulkwriter.VolumeManagerParam;VolumeManagerParam volumeManagerParam = VolumeManagerParam.newBuilder().withCloudEndpoint("https://api.cloud.zilliz.com").withApiKey("YOUR_API_KEY").build();VolumeManager volumeManager = new VolumeManager(volumeManagerParam);// Delete a volumeimport io.milvus.bulkwriter.request.volume.DeleteVolumeRequest;DeleteVolumeRequest request = DeleteVolumeRequest.builder().volumeName("external_volume").build();volumeManager.deleteVolume(request);System.out.printf("\nVolume %s deleted%n", "external_volume");// Volume external_volume deletedbashexport BASE_URL="https://api.cloud.zilliz.com"export TOKEN="YOUR_API_KEY"export VOLUME_NAME="external_volume"curl --request DELETE \--url "${BASE_URL}/v2/volumes/${VOLUME_NAME}" \--header "Authorization: Bearer ${TOKEN}" \--header "Content-Type: application/json"# {# "code": 0,# "data": {# "volumeName": "external_volume"# }# } -
Web コンソール経由
1左側のナビゲーションで Volumes をクリックします。
2Actions 列の ... をクリックし、Delete を選択します。
3ボリューム名を入力し、Delete をクリックします。
請求
外部ボリュームの作成と利用には、Zilliz Cloud の料金は発生しません。支払い方法の登録も不要です。
ただし、インポートまたは移行時に Zilliz Cloud がお使いの bucket から読み取る際、クラウドプロバイダーからデータリクエスト料金が請求される場合があります。詳細については、Amazon S3 Pricing または Google Cloud Storage Pricing を参照してください。
FAQ
請求書の未払いにより organization が凍結された場合、私の volumes はどうなりますか?
organization が凍結されると、無料トライアルと従量課金の両方を含むすべての管理対象 Volumes と、それらに保存されているすべてのファイルは削除され、復元できません。外部ボリュームも凍結され、新しい操作には使用できなくなりますが、ご自身の bucket 内のデータには影響しません。
volumes を引き続き使用するには、まず未払いの請求書をすべて精算してください。
外部ボリュームと外部ストレージからの直接インポートの違いは何ですか?
どちらも、ご自身の S3 または GCS bucket からデータをインポートできます。主な違いは次のとおりです。
-
外部ボリュームでは、認証情報を管理するために、AWS S3 bucket、Google Cloud Storage bucket、または Microsoft Azure blob storage container を Zilliz Cloud と連携する必要があります。認証情報は一度設定すれば、複数の volumes や操作で再利用できます。データエンジニアがクラウドストレージのキーに直接アクセスする必要はありません。
-
直接の external storage import では、インポートリクエストごとに認証情報(access key と secret key)を指定する必要があります。これは一度限りのインポートには簡単ですが、認証情報の分離や再利用性は提供されません。
外部ボリュームの作成後に、ストレージ連携またはパスを変更できますか?
いいえ。外部ボリュームの作成後は、ストレージ連携とパスを変更できません。別のストレージ連携またはパスを使用するには、新しい外部ボリュームを作成してください。
アクティブなジョブまたは external collection から参照されている外部ボリュームを削除できますか?
いいえ。下流の external collections またはアクティブなジョブがその volume を参照している場合、削除はブロックされます。
外部ボリュームを使用すると、データ転送料金は請求されますか?
いいえ。外部ボリュームは、お使いの cluster と同じクラウドプロバイダーおよびリージョン内に存在する必要があります。すべてのデータアクセスは同じリージョン内で行われるため、Zilliz Cloud ではリージョン間のデータ転送料金は発生しません。
volume のステータスは何を意味しますか?
以下の表は、volume に設定される可能性のあるステータスを示しています。
ステータス | 説明 |
|---|---|
Available | この volume はアクティブで、利用可能です。 |
Frozen | 未払いの請求書により organization が凍結されています。この volume は新しい操作には使用できません。volumes を引き続き使用するには、請求をお支払いください。 |
Error | ストレージ連携の検証に失敗しました。設定を確認して再試行してください。 該当するストレージ連携は次のとおりです。 |