This topic describes the billable items of Data Online Migration. When you migrate data from different data sources to Object Storage Service (OSS), fees are generated for transferring data over the Internet and private network, sending API requests, restoring objects, and consuming traffic. This topic applies to the new version of Data Online Migration.
Billable items
Overview
The following table describes the billable items of different source and destination types in different scenarios.
Source | Destination | Traffic consumed to download data from the source | API requests sent to the source | API requests sent to the destination | Transfer acceleration |
OSS | OSS | For more information about the fees that are generated for migrating data between OSS buckets, see the Migrate data between Alibaba Cloud OSS buckets section of this topic. | Charged | Charged | Charged (only if enabled) Note If you want to migrate data across borders, we recommend that you enable the transfer acceleration feature to improve the efficiency of data transfer. The fees are generated only if you enable the transfer acceleration feature. The fees are charged by the destination OSS bucket. |
Amazon Simple Storage Service (Amazon S3) | OSS | Charged | Charged | Charged | - |
Kodo | OSS | Charged | Charged | Charged | - |
Tencent Cloud Object Storage (COS) | OSS | Charged | Charged | Charged | - |
Huawei Cloud Object Storage Service (OBS) | OSS | Charged | Charged | Charged | - |
Volcano Engine Tinder Object Storage (TOS) | OSS | Charged | Charged | Charged | - |
HTTP/HTTPS | OSS | Charged | Charged | Charged | - |
Local file system | OSS | - | - | Charged | - |
Local file system | Local file system | - | - | - | - |
OSS | Local file system | For more information about the fees that are generated for migrating data between an OSS bucket and a local file system, see the Migrate data from an OSS bucket to a local file system section of this topic. | Charged | - | - |
Billing scenarios
Migrate data between Alibaba Cloud OSS buckets
The following figure shows the billable items for data migration between OSS buckets. For more information, see the Migrate data from OSS section of this topic.
Migrate data from an OSS bucket that resides in the region selected in the Data Migration console
If the source OSS bucket resides in the region in which you access the Data Migration console, you are not charged for reading data from the source OSS bucket over the Internet.
Migrate data from an OSS bucket that does not reside in the region selected in the Data Migration console
If the source OSS bucket does not reside in the region in which you access the Data Migration console, you are charged for reading data from the source OSS bucket over the Internet.
If you want to migrate data across borders, we recommend that you enable the transfer acceleration feature for the destination OSS bucket. In this case, fees are charged by the destination OSS bucket.
Migrate data from an HTTP or HTTPS server to OSS
The following figure shows the billable items for data migration from an HTTP or HTTPS server to OSS.
Migrate data from a third-party storage service to OSS
The following figure shows the billable item for data migration from a third-party storage service to OSS.
Migrate data from a local file system to an OSS bucket
The following figure shows the billable items for data migration from a local file system to OSS.
Migrate data from an OSS bucket to a local file system
The following figure shows the billable items for data migration from an OSS bucket to a local file system.
Migrate data from an OSS bucket that resides in the region selected in the Data Migration console
Migrate data from an OSS bucket that does not reside in the region selected in the Data Migration console
Migrate data between local file systems
The following figure shows the billable items for data migration between local file systems.
Fees for API requests
Before you use Data Online Migration to migrate data, you must perform the following operations on data: call the ListObject operation to scan data at the source data address, call the HeadObject operation to compare files at the source and destination data sources, download the source files and upload them to the destination data address, and verify the metadata of files after data migration. During the process, fees are generated for API requests.
The number of requests for the ListObject operation varies based on the number of files at the source data address. Up to 1,000 files can be returned at a time. The number of API requests that are required varies based on the scenarios and overwrite methods. This section describes how the number of API requests is calculated when a single file is migrated.
If you migrate a file of the appendable type between OSS buckets and the file is greater than 150 MB in size, the system does not split the file into shards. The number of API requests is calculated based on the number of files that are less than 150 MB in size.
If a file of another type to be migrated is greater than or equal to 150 MB in size, during data migration, the system splits the file into shards and uploads them to the destination data address. Each shard is 50 MB in size. Therefore, the actual number of requests for data migration depends on the size of data to be migrated, and the number of API requests depends on the number of shards (N). For example, if the file to be migrated is 159 MB in size, the number of shards is calculated based on the following formula: N = 159 MB/50 MB ≈ 4. If the file to be migrated is 150 MB in size, the number of shards is calculated based on the following formula: N = 150 MB/50 MB = 3. The above threshold is for reference only. The actual number of API requests takes precedence.
The following rules for calculating the number of API requests apply only if your migration is successful.
Overwrite method: Do not overwrite
The following API requests are sent to migrate a file that exists at the source data address but does not exist at the destination data address:
File at the source data address less than 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × 1
-
2
Destination data address
HeadObject × 1
PutObject × 1
HeadObject × 1
3
File at the source data address greater than or equal to 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × N
-
1 + N
Destination data address
HeadObject × 1
InitiateMultipartUpload × 1
UploadPart × N
ListParts × 1
CompleteMultipartUpload×1
HeadObject × 1
5 + N
The following API requests are sent to migrate a file that has the same name at the source and destination data addresses:
File at the source data address less than 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
-
-
1
Destination data address
HeadObject × 1
-
-
1
File at the source data address greater than or equal to 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
-
-
1
Destination data address
HeadObject × 1
-
-
1
Overwrite method: Overwrite All
The following API requests are sent to migrate a file that exists at the source data address but does not exist at the destination data address:
File at the source data address less than 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × 1
-
2
Destination data address
-
PutObject × 1
HeadObject × 1
2
File at the source data address greater than or equal to 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × N
-
1 + N
Destination data address
-
InitiateMultipartUpload × 1
UploadPart × N
ListParts × 1
CompleteMultipartUpload×1
HeadObject × 1
4 + N
The following API requests are sent to migrate a file that has the same name at the source and destination data addresses:
File at the source data address less than 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject ×1
-
2
Destination data address
-
PutObject × 1
HeadObject × 1
2
File at the source data address greater than or equal to 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × N
-
1 + N
Destination data address
-
InitiateMultipartUpload ×1
UploadPart × N
ListParts × 1
CompleteMultipartUpload ×1
HeadObject × 1
4 + N
Overwrite method: Overwrite based on the last modification time
The following API requests are sent to migrate a file that exists at the source data address but does not exist at the destination data address:
File at the source data address less than 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × 1
-
2
Destination data address
HeadObject × 1
PutObject × 1
HeadObject × 1
3
File at the source data address greater than or equal to 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × N
-
1 + N
Destination data address
HeadObject × 1
InitiateMultipartUpload × 1
UploadPart × N
ListParts ×1
CompleteMultipartUpload ×1
HeadObject × 1
5 + N
The following API requests are sent to migrate a file that has the same name at the source and destination data addresses and the file version at the destination data address is earlier than that at the source data address:
File at the source data address less than 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × 1
-
2
Destination data address
HeadObject × 1
PutObject × 1
HeadObject × 1
3
File at the source data address greater than or equal to 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
GetObject × N
-
1 + N
Destination data address
HeadObject × 1
InitiateMultipartUpload × 1
UploadPart × N
ListParts × 1
CompleteMultipartUpload×1
HeadObject × 1
5 + N
The following API requests are sent to migrate a file that has the same name at the source and destination data addresses and the file version at the destination data address is later than that at the source data address:
File at the source data address less than 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
-
-
1
Destination data address
HeadObject × 1
-
-
1
File at the source data address greater than or equal to 150 MB in size
Location
Request for data comparison before data migration
Request for data migration
Request for data verification after data migration
Number of API requests
Source data address
HeadObject × 1
-
-
1
Destination data address
HeadObject × 1
-
-
1
Billing examples
Scenario: A user needs to migrate 1,000 files, and 900 of them are 500 KB in size and 100 of them are 160 MB in size.
The following examples apply only if the migration task is successful and no migration error occurs.
Example 1: The names of files to be migrated do not exist at the destination data address
Overwrite method: Do not overwrite
Item | Operation at the source data address | Number of requests at the source data address | Operation at the destination data address | Number of requests at the destination data address |
Operation on small files | HeadObject: 900 GetObject: 900 | 1,800 | HeadObject: 900 × 2 PutObject: 900 | 2,700 |
Operation on large files | HeadObject: 100 GetObject: 100 × 4 | 500 | HeadObject: 100 × 2 InitiateMultipartUpload: 100 UploadPart: 100 × 4 ListParts: 100 CompleteMultipartUpload: 100 | 900 |
Number of scans | ListObject: 1 | 1 | - | - |
Total number of requests | - | 2,301 | - | 3,600 |
Overwrite method: Overwrite All
Item | Operation at the source data address | Number of requests at the source data address | Operation at the destination data address | Number of requests at the destination data address |
Operation on small files | HeadObject: 900 GetObject: 900 | 1,800 | HeadObject: 900 PutObject: 900 | 1,800 |
Operation on large files | HeadObject: 100 GetObject: 100 × 4 | 500 | HeadObject: 100 InitiateMultipartUpload: 100 UploadPart: 100 × 4 ListParts: 100 CompleteMultipartUpload: 100 | 800 |
Number of scans | ListObject: 1 | 1 | - | - |
Total number of requests | - | 2,301 | - | 2,600 |
Example 2: Files at the source and destination data addresses share the same names and the file version at the destination data address is earlier than that at the source data address
Overwrite method: Do not overwrite
Item | Operation at the source data address | Number of requests at the source data address | Operation at the destination data address | Number of requests at the destination data address |
Operation on small files | HeadObject: 900 | 900 | HeadObject: 900 | 900 |
Operation on large files | HeadObject: 100 | 100 | HeadObject: 100 | 100 |
Number of scans | ListObject: 1 | 1 | - | - |
Total number of requests | - | 1,001 | - | 1,000 |
Overwrite method: Overwrite All
Item | Operation at the source data address | Number of requests at the source data address | Operation at the destination data address | Number of requests at the destination data address |
Operation on small files | HeadObject: 900 + GetObject: 900 | 1,800 | HeadObject: 900 + PutObject: 900 | 1,800 |
Operation on large files | HeadObject: 100 + GetObject: 100 × 4 | 500 | HeadObject: 100 + InitiateMultipartUpload: 100 + UploadPart: 100 × 4 + ListParts: 100 + CompleteMultipartUpload: 100 | 800 |
Number of scans | ListObject: 1 | 1 | - | - |
Total number of requests | - | 2,301 | - | 2,600 |
Overwrite method: Overwrite based on the last modification time
Item | Operation at the source data address | Number of requests at the source data address | Operation at the destination data address | Number of requests at the destination data address |
Operation on small files | HeadObject: 900 + GetObject: 900 | 1,800 | HeadObject: 900×2 + PutObject: 900 | 2,700 |
Operation on large files | HeadObject: 100 + GetObject: 100 × 4 | 500 | HeadObject: 100 × 2 + InitiateMultipartUpload: 100 + UploadPart: 100 × 4 + ListParts: 100 + CompleteMultipartUpload: 100 | 900 |
Number of scans | ListObject: 1 | 1 | - | - |
Total number of requests | - | 2,301 | - | 3,600 |
Example 3: Files at the source and destination data addresses share the same names and the file version at the destination data address is later than that at the source data address
Overwrite method: Do not overwrite or Overwrite based on the last modification time
Item | Operation at the source data address | Number of requests at the source data address | Operation at the destination data address | Number of requests at the destination data address |
Operation on small files | HeadObject: 900 | 900 | HeadObject: 900 | 900 |
Operation on large files | HeadObject: 100 | 100 | HeadObject: 100 | 100 |
Number of scans | ListObject: 1 | 1 | ||
Total number of requests | 1,001 | 1,000 |
Overwrite method: Overwrite All
Item | Operation at the source data address | Number of requests at the source data address | Operation at the destination data address | Number of requests at the destination data address |
Operation on small files | HeadObject: 900 GetObject: 900 | 1,800 | HeadObject: 900 PutObject: 900 | 1,800 |
Operation on large files | HeadObject: 100 GetObject: 100 × 4 | 500 | HeadObject: 100 InitiateMultipartUpload: 100 UploadPart: 100 × 4 CompleteMultipartUpload: 100 | 800 |
Number of scans | ListObject: 1 | 1 | ||
Total number of requests | 2,301 | 2,600 |
You are charged for API requests based on the pricing of storage service providers. For more information about billing methods and billable items of OSS, see Billing overview.
Fees for restoring and retrieving data
Before you create a migration job to migrate data of the Archive storage class, you must manually restore the data. Take note of the following items when you restore the data:
Before you create a source data address and a migration job, make sure that data of the Archive storage class is restored.
Make sure that you specify an appropriate number of days during which the restored data remains in the restored state based on the amount of data that you want to migrate. This can prevent data from entering the archived state during data migration.
You may be charged for the restoration operation. The fee may be relatively high. For more information about the billing methods, contact the service provider that offers the source bucket.
Data Online Migration does not restore data of the Archive storage class at the source data address during data migration. The data that is not restored or is being restored cannot be migrated.
Fees for the traffic generated by data downloads and uploads
You are charged for the traffic that is generated when data is downloaded from the source data address and uploaded to OSS. The fees for the traffic that is consumed to download and upload the data vary based on the scenario.
The following rules apply only if your migration is successful.
Migrate data from a third-party storage service
You are charged for downloading data from the source data address. The consumed traffic depends on the amount of data that you download. You are charged by the storage service provider that owns the source data address. You are not charged for uploading data to an OSS bucket within a specific bandwidth range. For more information, see Limits.
Migrate data from OSS
The region in which you access the Data Migration console determines whether you are charged for reading data from the source OSS bucket. The following figure shows how to select the region in which you access the Data Migration console. You must select a region before you create a migration task.
1. If the source OSS bucket resides in the region in which you access the Data Migration console, you are not charged for reading data from the source OSS bucket over the Internet.
For example, if the source and destination OSS buckets reside in the China (Beijing) region and you select the China (Beijing) region in the Data Migration console, no fees are generated for reading data from the source OSS bucket over the Internet during the migration.
2. If the source OSS bucket does not reside in the region in which you access the Data Migration console, you are charged for reading data from the source OSS bucket over the Internet.
For example, if you migrate data from an OSS bucket that resides in the China (Beijing) region to an OSS bucket that resides in the Singapore region, and you select the Singapore region in the Data Migration console, fees are generated for reading data from the source OSS bucket over the Internet.
To transfer data by using the shortest connection, we recommend that you select the region in which the source OSS bucket resides when you access the Data Migration console. If no region is available, we recommend that you select a region that is close to your business to ensure high migration performance.