データキャッシュは、OSS バケット、NAS ファイルシステム、モデルリポジトリなどのソースからデータを事前にプルし、スナップショットとして保存します。同じリージョン内の Elastic Container Instance (ECI) は、起動時にキャッシュを直接マウントできるため、コンテナごとのデータ取得が不要になり、起動時間を短縮できます。
このトピックでは、データキャッシュの作成、クエリ、更新、コピー、および削除の方法について説明します。
前提条件
開始する前に、以下があることを確認してください。
ターゲットリージョンに VPC、vSwitch、およびセキュリティグループがあること
(インターネット経由でデータをプルする場合) Elastic IP アドレス (EIP)、または SNAT エントリが設定された vSwitch があること
データキャッシュのステータス
| ステータス | 意味 |
|---|---|
Available | データキャッシュはマウントする準備ができています。 |
UpdateFailed | 前回の更新試行は失敗しました。キャッシュは再度更新できます。 |
制限事項
データキャッシュを作成する前に、以下の制約事項を確認してください。
データキャッシュはリージョン固有であり、リージョン間で共有することはできません。別のリージョンでキャッシュを使用するには、まずコピーしてください。
データキャッシュの更新は API 経由でのみサポートされています。コンソールはこの操作をサポートしていません。
各データキャッシュはスナップショットによってバックアップされています。キャッシュが存在する限り、ストレージ料金が発生します。継続的なコストを回避するには、保持期間を設定するか、不要になったときにキャッシュを削除してください。
データキャッシュの作成
作成方法
| 方法 | 手順 |
|---|---|
| API | CreateDataCache 操作を呼び出します。 |
| コンソール | Elastic Container Instance コンソール で、左側のナビゲーションウィンドウから Data Cache をクリックします。Data Cache ページで Create Data Cache をクリックし、パラメーターを設定して OK をクリックします。 |
パラメーター
基本プロパティ
| API パラメーター | コンソールのラベル | 説明 |
|---|---|---|
RegionId | リージョン | データキャッシュが作成されるリージョンです。 |
Bucket | キャッシュバケット | キャッシュデータをグループ化し、パスの競合を回避するために使用されるバケットです。デフォルト: default。eci-system バケットは予約済みのため使用できません。 |
Path | キャッシュディレクトリ | バケット内でのキャッシュデータのストレージパスです。 |
Name | キャッシュ名 | データキャッシュの名前です。 |
Size | キャッシュサイズ | キャッシュサイズ (GiB) です。デフォルトは 20 です。実際のデータ量に基づいて設定してください。 |
RetentionDays | 保持期間 (日) | キャッシュが自動的に削除されるまでの日数です。設定しない場合、キャッシュは有効期限切れにならず、スナップショットのストレージ料金が発生し続けます。 |
データソース
| API パラメーター | コンソールラベル | 説明 |
|---|---|---|
DataSource.Type | タイプ | データソースのタイプです。 |
DataSource.Options | パラメーター | ソース固有のパラメーターを含む JSON オブジェクトです。 |
次の表に、サポートされているデータソースタイプとそのオプションを示します。
SDK を使用せずに直接 API を呼び出す場合、DataSource.Options の下にある各パラメーター名に、その文字数をプレフィックスとして付加します。たとえば、url(3 文字)は #3#url になり、repoId(6 文字)は #6#repoId になります。SDK ではこの処理が自動的に行われます — プレフィックスを付加する必要はありません。
| タイプ | データソース | オプション |
|---|---|---|
URL | ダウンロード元の URL | url:ダウンロード URL。accessToken:非公開データへのアクセス用アクセストークン。 |
HuggingFace または ModelScope | Hugging Face または ModelScope 上のモデルまたはデータセット | repoSource:ModelScope/Model、ModelScope/DataSet、HuggingFace/Model、または HuggingFace/DataSet のいずれか。repoId:モデルまたはデータセットの ID。revision:バージョン(デフォルト: main または master)。accessToken:非公開データへのアクセス用アクセストークン。 |
NAS | File Storage NAS ファイルシステム | server:マウントポイント。path:サブディレクトリパス。エクストリーム NAS ファイルシステムの場合、パスにプレフィックス /share を付与します(例: /share/path)。vers:NFS プロトコルのバージョン。NFS v3 を使用してください。エクストリーム NAS は NFS v3 のみをサポートします。options:マウントオプション。推奨値: nolock,tcp,noresvport。 |
OSS | Object Storage Service (OSS) バケット | bucket:OSS バケット名。url:OSS エンドポイント。path:バケットルートからの相対的なサブディレクトリパス。デフォルト: /。otherOpts:カスタムマウントオプション(形式: -o option1 -o option2)。例: -o max_stat_cache_size=0 -o allow_other。ramRole:アクセスに使用する RAM ロール。akId:アクセスに使用する AccessKey ID。akSecret:アクセスに使用する AccessKey Secret。 |
SNAPSHOT | 既存のスナップショット | snapshotId:スナップショット ID。 |
OSS へのアクセスに RAM ロールを使用するには、信頼できるエンティティとして Alibaba Cloud サービス、ロールタイプとして 通常のサービスロール、信頼できるサービスとして [Elastic Compute Service] を指定して RAM ロールを作成します。このロールに [AliyunOSSFullAccess] ポリシーをアタッチします。詳細については、「信頼できる Alibaba Cloud サービス用の RAM ロールの作成」および「RAM ロールへの権限付与」をご参照ください。
ネットワークパラメーター
データソースがインターネット上にあり、vSwitch に SNAT エントリが設定されていない場合は、キャッシュ作成インスタンスに EIP を関連付けます。
| API パラメーター | コンソールラベル | 説明 |
|---|---|---|
EipInstanceId | 既存を使用 | 既存の EIP をインスタンスに関連付けます。 |
EipCreateParam | 自動作成 | 新しい EIP を作成し、自動的に関連付けます。 |
設定例
以下の例は、API を使用してさまざまなタイプのデータキャッシュを作成する方法を示しています。
URL
URL からデータをプルする:
{
"RegionId": "中国 (北京)",
"SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
"VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
"Bucket": "test",
"Path": "/demo/url",
"Name": "test-url-1",
"DataSource": {
"Type": "URL",
"Options": {
"#3#url": "https://www.example.com"
}
},
"RetentionDays": 1
}Hugging Face からモデルをプルする:
{
"RegionId": "中国 (北京)",
"SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
"VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
"Bucket": "test",
"Path": "/demo/url",
"Name": "test-url-2",
"DataSource": {
"Type": "URL",
"Options": {
"#10#repoSource": "HuggingFace/Model",
"#6#repoId": "stabilityai/stable-diffusion-2-1"
}
},
"RetentionDays": 1
}NAS
{
"RegionId": "中国 (北京)",
"SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
"VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
"Bucket": "test",
"Path": "/demo/nas",
"Name": "test-nas",
"DataSource": {
"Type": "NAS",
"Options": {
"#6#server": "126c24****-tw***.cn-beijing.nas.aliyuncs.com",
"#4#path": "/",
"#4#vers": "3",
"#7#options": "nolock,tcp,noresvport"
}
},
"RetentionDays": 1
}OSS
{
"RegionId": "中国 (北京)",
"SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
"VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
"Bucket": "test",
"Path": "/demo/oss",
"Name": "test-oss",
"DataSource": {
"Type": "OSS",
"Options": {
"#6#bucket": "test-***",
"#3#url": "oss-cn-beijing-internal.aliyuncs.com",
"#4#path": "/test",
"#9#otherOpts": "-o max_stat_cache_size=0 -o allow_other",
"#7#ramRole": "<your RAM role name>"
}
},
"RetentionDays": 1,
"SourceIp": "2401:b180:1000:3:a4ba:83d6:a4ba:83d6"
}スナップショット
{
"RegionId": "中国 (北京)",
"SecurityGroupId": "sg-2ze63v3jtm8e6syi****",
"VSwitchId": "vsw-2ze94pjtfuj9vaymf****",
"Bucket": "test",
"Path": "/demo/snapshot",
"Name": "test-snapshot",
"DataSource": {
"Type": "SNAPSHOT",
"Options": {
"#10#snapshotId": "s-2zehb6jegdehec19****"
}
},
"RetentionDays": 1,
"Size": 40
}データキャッシュの管理
データキャッシュの照会
データキャッシュを作成した後は、そのステータスを確認して、利用可能状態であることを確認してください。Available 状態のキャッシュは、Elastic Container Instance にマウントできます。
| 方法 | 手順 |
|---|---|
| API | DescribeDataCaches 操作を呼び出します。 |
| コンソール | データキャッシュ ページで、選択したリージョン内のすべてのキャッシュを表示します。キャッシュ ID をクリックすると、ステータス、バケット、ストレージパスなどの詳細を確認できます。 |
データキャッシュの更新
Available 状態または UpdateFailed 状態のデータキャッシュは更新可能です。更新可能なフィールドには、バケット、データソース、保持期間、サイズが含まれます。
| 方法 | 手順 |
|---|---|
| API | UpdateDataCache 操作を呼び出します。 |
| コンソール | 対応していません。 |
データキャッシュの別のリージョンへのコピー
データキャッシュはリージョン固有です。別のリージョンで使用する場合は、まずターゲットリージョンへコピーしてください。
| 方法 | 手順 |
|---|---|
| API | CopyDataCache 操作を呼び出します。 |
| コンソール | データキャッシュ ページで該当のキャッシュを見つけ、操作 列の コピー をクリックします。 |
データキャッシュの削除
各データキャッシュはスナップショットに基づいており、これによりストレージ料金が発生します。不要になったキャッシュ(特に保持期間が設定されていない場合)は速やかに削除して、継続的なコストを回避してください。
| 方法 | 手順 |
|---|---|
| API | DeleteDataCache 操作を呼び出します。 |
| コンソール | データキャッシュ ページで該当のキャッシュを見つけ、操作 列の 削除 をクリックします。 |