Alibaba Cloud

AWS S3 / Tencent COS から Alibaba Cloud OSS へのオンライン移行手順

Data Online Migration: COS から OSS へ — source / target / policy を示したコードウィンドウ風のアイキャッチ
目次
  1. 0x01 概要
  2. 0x02 事前準備
  3. 00x01 Tencent Cloud 側:クラウド API キーの作成
  4. 00x02 Alibaba Cloud 側:移行先バケットの作成
  5. 00x03 Alibaba Cloud 側:RAM ユーザーの作成と権限付与
  6. 00x04 Alibaba Cloud 側:移行先バケットへの権限付与
  7. 0x03 移行の実施
  8. 00x01 リージョンの選択
  9. 00x02 ソースアドレス(移行元)の作成
  10. 00x03 宛先アドレス(移行先)の作成
  11. 00x04 移行タスクの作成
  12. 00x05 データの検証
  13. 0x04 失敗したファイルの再試行
  14. 0x05 まとめ

0x01 概要

AWS S3 や Tencent Cloud(テンセントクラウド)COS などのサードパーティのクラウドストレージ、あるいはオンプレミスの IDC から Alibaba Cloud(アリババクラウド)の OSS(Object Storage Service)へデータを移行する場合、従来の方法では移行ツールの開発や長い転送期間が必要になるのが一般的でした。Alibaba Cloud のオンライン移行サービス(Data Online Migration)は、開発不要でコンソールから操作できる統合移行プラットフォームです。簡単な設定だけで、複数の移行元にある大量のデータを効率的かつ安全に OSS へ集約できます。

本記事では、Tencent Cloud COS から Alibaba Cloud OSS への移行を例に、事前準備から移行タスクの作成、データの検証、失敗したファイルの再試行までの手順を画面付きで解説します。AWS S3 など他のクラウドストレージを移行元にする場合も、ソースアドレスのタイプと認証情報(アクセスキー)が異なるだけで、以降の流れは同じです。

0x02 事前準備

00x01 Tencent Cloud 側:クラウド API キーの作成

Tencent Cloud コンソールにログインし、アクセス管理(CAM)> ユーザー > ユーザーリスト を開きます。ルートアカウントのキーを使うのではなく、移行専用のサブユーザー(例では cos_test)を作成しておくと、権限を最小限に絞れるためおすすめです。

Tencent Cloud アクセス管理(CAM)のユーザーリスト画面。ルートアカウントの下にサブユーザー cos_test が表示され、赤枠で囲まれている
図 1 Tencent Cloud CAM のユーザーリストで移行用サブユーザーを確認

サブユーザーの詳細画面で API キー タブを開き、キーの作成 をクリックしてクラウド API キーを 1 組新規作成し、SecretId と SecretKey を控えておきます。SecretKey は作成時にしか表示されないため、必ずこの時点で保存してください。

Tencent Cloud CAM のユーザー詳細画面。API キータブの Create Key ボタンを矢印で示し、作成された SecretId の行が赤枠で囲まれている
図 2 サブユーザーの「API キー」タブでクラウド API キーを作成

移行元バケットのリソース(バケット名・リージョン・オブジェクト)を確認します。Tencent Cloud COS のバケット名は <バケット名>-<APPID> の形式になっており、後でソースアドレスを作成する際にこの完全な名前が必要です。

Tencent Cloud COS コンソールのファイルリスト。test-bucket-1521225051 バケットの test ディレクトリに 3 つの JPEG ファイルが表示されている
図 3 移行元の Tencent Cloud COS バケット(test-bucket-APPID)のオブジェクト一覧

このキーに、移行元バケットの読み取り権限(List と Get)があることを確認します。例では QcloudCOSReadOnlyAccess などのプリセットポリシーをサブユーザーに付与しています。

Tencent Cloud CAM のユーザー詳細の Permissions タブ。QcloudCOSGetServiceAccess、QcloudCOSReadOnlyAccess、QcloudCOSListOnly の 3 つのポリシーが関連付けられている
図 4 サブユーザーに COS の読み取り系プリセットポリシーが付与されていることを確認

00x02 Alibaba Cloud 側:移行先バケットの作成

  • Alibaba Cloud OSS コンソールにログインし、バケットの作成 をクリックします。
  • 移行先のリージョンを選択してバケットを作成し、バケット名とリージョンを控えておきます(例では target-usa-test、US (Silicon Valley))。
Alibaba Cloud OSS コンソールのバケット一覧。US (Silicon Valley) リージョンに標準ストレージクラスの target-usa-test バケットが 1 件表示されている
図 5 Alibaba Cloud OSS コンソールで移行先バケットを作成(例:target-usa-test、US (Silicon Valley))

00x03 Alibaba Cloud 側:RAM ユーザーの作成と権限付与

Alibaba Cloud RAM コンソールにログインし、アイデンティティ管理 > ユーザー を開いて ユーザーの作成 をクリックし、移行作業用の RAM ユーザー(例では migration-user)を作成します。

Alibaba Cloud RAM アクセス制御のユーザー一覧。作成した migration-user が赤枠で囲まれている
図 6 RAM コンソールで移行作業用の RAM ユーザーを作成

この RAM ユーザーに以下の権限を付与します。

ポリシータイプ

ポリシー名

システムポリシー

AliyunOSSImportFullAccess

カスタムポリシー(以下の Action を含むこと)

ram:CreateRole、ram:CreatePolicy、ram:AttachPolicyToRole、ram:ListRoles

カスタムポリシーのポリシードキュメントは次のとおりです。

JSON
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ram:CreateRole",
                "ram:CreatePolicy",
                "ram:AttachPolicyToRole",
                "ram:ListRoles"
            ],
            "Resource": "*"
        }
    ]
}
Alibaba Cloud RAM のカスタムポリシー AliyunOSSCustom の詳細画面。ポリシードキュメントに ram:CreateRole、ram:CreatePolicy、ram:AttachPolicyToRole、ram:ListRoles の 4 つの Action が記述されている
図 7 ロール・ポリシー作成用のカスタムポリシー(AliyunOSSCustom)のポリシードキュメント
Alibaba Cloud RAM ユーザー migration-user の権限管理タブ。システムポリシー AliyunOSSImportFullAccess とカスタムポリシー AliyunOSSCustom の 2 行が赤枠で囲まれている
図 8 RAM ユーザーに AliyunOSSImportFullAccess とカスタムポリシーの 2 つを付与

00x04 Alibaba Cloud 側:移行先バケットへの権限付与

オンライン移行サービスが移行先バケットへ書き込めるように、RAM ロールで権限を付与します。方法は 2 つあります。

方法 1:コンソールで自動作成する 宛先アドレスの作成時に、ロールの権限付与 で ロールの新規作成 を選ぶと、必要な権限を持つロール(oss-import-<タイムスタンプ>-<バケット名>)がワンクリックで作成されます。手動での作成は不要です。具体的な操作は 0x03 の 00x03 で説明します。

方法 2:手動で作成する(バケットが現在のアカウントに属する場合)

  1. RAM コンソールで ロール > ロールの作成 を開き、信頼できるエンティティのタイプで クラウドサービス、信頼できるサービスで Data Transport を選択します。ロール名はすべて小文字にしてください。
  2. このロールに、oss:List*、oss:Get*、oss:Put*、oss:AbortMultipartUpload を含むカスタムポリシーをアタッチします。
JSON
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "oss:List*",
                "oss:Get*",
                "oss:Put*",
                "oss:AbortMultipartUpload"
            ],
            "Resource": [
                "acs:oss:*:*:target-usa-test",
                "acs:oss:*:*:target-usa-test/*"
            ]
        }
    ]
}

0x03 移行の実施

00x01 リージョンの選択

  1. 作成した RAM ユーザーで、Alibaba Cloud の オンライン移行サービス コンソール(https://mgw.console.alibabacloud.com)にログインします。
  2. 画面左上でリージョンを選択します。Tencent Cloud COS の移行元データと同じ地域(例:東京)のリージョンがあればそれを優先し、なければ最も近いリージョンを選択します。

00x02 ソースアドレス(移行元)の作成

左側ナビゲーションの オンライン移行サービス > アドレス管理 で アドレスの作成 をクリックし、次のパラメータを設定します。

パラメータ

設定内容

名前

任意(3〜63 文字)

タイプ

Tencent COS

バケット(Bucket)

<バケット名>-<APPID>(例:example-1234567890)

ドメイン名

バケットのエンドポイント(例:https://cos.ap-nanjing.myqcloud.com)

AccessKeyId

Tencent Cloud の SecretId

SecretAccessKey

Tencent Cloud の SecretKey

プレフィックス

空欄の場合はバケット全体を移行します。指定する場合は / で始めず、/ で終えます(例:data/to/cos/)

Alibaba Cloud オンライン移行サービスのアドレスの作成パネル。名前 source_cos、タイプ Tencent COS、バケット、ドメイン名 https://cos.ap-nanjing.myqcloud.com、AccessKeyId、SecretAccessKey の入力欄が赤枠で囲まれ、確認ボタンを矢印で示している
図 9 ソースアドレスの作成:タイプに Tencent COS を選び、バケット・ドメイン名・キーを入力

00x03 宛先アドレス(移行先)の作成

同じく アドレス管理 で アドレスの作成 をクリックし、次のパラメータを設定します。

パラメータ

設定内容

名前

任意(ルールはソースアドレスと同じ)

タイプ

Alibaba OSS

バケット(Bucket)

自アカウントのバケット を選び、移行先バケット名を入力します。別アカウントのバケットへ移行する場合は クロスアカウントバケット を選びます

リージョン

移行先バケットがある Alibaba Cloud のリージョン

プレフィックス

任意。指定すると、データはこのディレクトリ配下に移行されます

ロールの権限付与

自アカウントのバケット:ロールの新規作成 で自動作成したロール、または 00x04 の方法 2 で手動作成したロール。クロスアカウント:バケット所有側のアカウントで権限付与したロール

ロールの権限付与 のプルダウンで ロールの新規作成 を選ぶと、RAM クイック権限付与の画面が開きます。

Alibaba Cloud オンライン移行サービスのアドレスの作成パネル。タイプ Alibaba OSS を選び、ロールの権限付与のプルダウン先頭にある「ロールの新規作成」が赤枠で囲まれている
図 10 宛先アドレスの作成:「ロールの権限付与」で「ロールの新規作成」を選択

自動作成されるロール名と、付与されるポリシーの内容(oss:List*、oss:Get*、oss:Put*、oss:AbortMultipartUpload。Resource は移行先バケット)を確認し、権限付与 をクリックします。

Alibaba Cloud の RAM クイック権限付与画面。ロール oss-import-<タイムスタンプ>-target-usa-test と、oss:List*、oss:Get*、oss:Put*、oss:AbortMultipartUpload を許可するカスタムポリシーの内容が表示されている
図 11 RAM クイック権限付与:自動作成されるロールと付与されるポリシーの内容

アドレスの作成パネルに戻り、作成されたロールを選択して 確認 をクリックします。

Alibaba Cloud オンライン移行サービスのアドレスの作成パネル。名前 target、タイプ Alibaba OSS、自アカウントのバケット target-usa-test、リージョン アメリカ(シリコンバレー)、ロールの権限付与に oss-import ロールが設定されている
図 12 宛先アドレスの設定:自アカウントのバケット・リージョン・作成したロールを指定

00x04 移行タスクの作成

左側ナビゲーションの オンライン移行サービス > 移行タスク で タスクの作成 をクリックします。

アドレスの選択:タスク名を入力し、ソースアドレスと宛先アドレスを選択して 次へ をクリックします。

Alibaba Cloud オンライン移行サービスの移行タスクの作成画面、ステップ 1 アドレスの選択。タスク名 test、ソースアドレス source_cos(cos://test-bucket-1521225051/)、宛先アドレス target(oss://target-usa-test/)が選択されている
図 13 移行タスクの作成(1/3):タスク名とソース・宛先アドレスを選択

タスクの設定:次の項目を設定します。

  1. 帯域幅・秒間移行ファイル数:デフォルトのまま、または上限を指定します。
  2. 上書き方式:上書きしない / すべて上書き / 最終更新日時で上書き から選択します。
  3. 移行レポート:プッシュしない、または移行先バケットへプッシュします。
  4. 移行ログ:プッシュしない / プッシュ / ファイルエラーログのみプッシュ から選択します。プッシュする場合は Log Service(SLS)の有効化とログサービスへの権限付与が必要で、権限付与時にロール AliyunOSSImportSlsAuditRole が作成されます。
  5. フィルター(任意):ファイル名(RE2 正規表現で「含める」または「除外」)、またはファイルの最終更新日時でフィルタリングします。
  6. ストレージクラス(任意):移行先ファイルのストレージクラスを指定します。
  7. 実行時間:今すぐ実行 / 実行日時を指定 / 定期実行(Cron 形式、最小間隔 1 時間)から選択します。
Alibaba Cloud オンライン移行サービスの移行タスクの作成画面、ステップ 2 タスクの設定。帯域幅と秒間移行ファイル数はデフォルト、上書き方式は最終更新日時で上書き、移行レポートと移行ログはプッシュしない、フィルターは未設定
図 14 移行タスクの作成(2/3):帯域幅・上書き方式・レポート/ログ・フィルターの設定

コンプライアンスに関する確約事項にチェックを入れ、次へ をクリックします。

Alibaba Cloud オンライン移行サービスの移行タスクの作成画面、ステップ 3 設定完了。タスク名、ソース/宛先アドレスのパス、帯域幅 500Mbit/s、1000 個/秒、実行時間 今すぐ実行などの設定内容一覧と OK ボタン
図 15 移行タスクの作成(3/3):設定内容を確認して OK をクリック

設定内容を確認して OK をクリックすると、移行タスクの実行が開始されます。

00x05 データの検証

  • タスク完了後、タスク詳細ページの 履歴 エリアで移行レポートを生成・ダウンロードし、成功 / 失敗 / スキップしたファイルの一覧を確認します。
  • 移行先バケットのオブジェクト数とストレージ使用量が移行元と一致していることを確認します。
Alibaba Cloud OSS コンソールの target-usa-test バケットのオブジェクト一覧。test/ ディレクトリ配下に test2_image.jpeg、test3_image.jpeg、test_image.jpeg の 3 ファイルが表示されている
図 16 移行先の OSS バケットに 3 つのオブジェクトが移行されていることを確認

0x04 失敗したファイルの再試行

ネットワークの一時的な障害などで一部のファイルが失敗した場合は、タスクを作り直す必要はなく、失敗したファイルだけを再試行できます。

  1. オンライン移行サービスのコンソールにログインし、タスクがあるリージョンを選択します。
  2. オンライン移行サービス > 移行タスク で、対象タスクの 管理 をクリックします。
  3. 履歴 エリアで、対象の実行レコードの 失敗したファイルの再試行 をクリックします。
  4. 帯域幅、ファイル数、上書き方式などのパラメータを確認して OK をクリックすると、サブタスクが失敗したファイルだけを再移行します(移行に成功したファイルは再試行されません)。

0x05 まとめ

オンライン移行サービスを使えば、Tencent Cloud COS から Alibaba Cloud OSS へのデータ移行は、ツールの開発なしにコンソール操作だけで完結します。実施にあたってのポイントは次の 3 点です。

  • 権限は最小限に:移行元は読み取り専用のサブユーザー、移行先は専用の RAM ユーザーと RAM ロールで権限を分離する。
  • メタデータの確認:標準ドメイン経由の移行では Content-Disposition が変わり得るため、移行後にアクセス時の挙動を確認する。
  • 検証と再試行:移行レポートで成功 / 失敗 / スキップを確認し、失敗分は「失敗したファイルの再試行」で補完する。

Cloud Navi は Alibaba Cloud のディストリビューターとして、他クラウドからの移行設計から実施・運用までを支援しています。大容量データの移行や、クロスアカウント・専用線経由での移行をご検討の際は、お問い合わせからお気軽にご相談ください。

シェア
記事一覧に戻る

この記事の内容について相談したい方へ

Cloud Navi のエンジニアが、御社の環境に合わせた設計・運用をご提案します。

お問い合わせ