ペタバイト単位のデータを効率的に転送する方法 - AWS Snowball

2023 年 5 月 18 日以降、このガイド機能は利用できなくなります。

第 1 世代の 80 TB Snowball デバイスの提供は、終了しました。すべてのデータ転送ジョブで Snowball Edge Storage Optimized デバイスを使用します。Snowball Edge のドキュメントについては、AWS Snowball Edgeデベロッパーガイドを参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ペタバイト単位のデータを効率的に転送する方法

ペタバイト単位のデータを転送するときは、オンサイトの Snowball とお使いのワークステーションの間のデータ転送を、以下のガイドラインに従って計画し、キャリブレーションしてください。大量のデータを扱う場合、小さな遅延やエラーが、転送を大幅に減速させます。

大規模な転送の計画

ペタバイト規模のデータ転送を計画するには、次のような手順をお勧めします。

ステップ 1: 何をクラウドに移行するのかを理解する

Snowball の最初のジョブを作成する前に、どのデータを転送するか、そのデータが現在どこに保管されているか、データの送信先はどこかを確認します。ペタバイト以上のデータを転送するときは、このような準備をしておけば、Snowball が届いたときの作業がずっと楽になります。

これらのデータは、スプレッドシートやホワイトボードに記録しておくこともできます。しかし、クラウドに移行する大量のコンテンツを整理するのが得策です。初めてデータをクラウドへ移行する場合は、クラウド移行モデルの設計をお勧めします。

このステップが終わると、クラウドに移行するデータの総量が明らかになります。

ステップ 2: ワークステーションを準備する

Snowball にデータを転送するときは、Snowball クライアントを介して行います。このクライアントは、転送するデータをホストしている物理ワークステーションにインストールされています。ワークステーションがデータ転送のボトルネックになると考えられるため、ワークステーションには、プロセス、メモリ、ネットワーキングの面で高レベルの要求に応える強力なコンピューターを使用することを強くお勧めします。

大規模なジョブの場合は、複数のワークステーションを使用することも考えてください。転送時間を短縮するため、すべてのワークステーションが推奨仕様を満たしていることを確認します。詳細については、「ワークステーションの仕様」を参照してください。

ステップ 3: 目標転送速度を計算する

各ワークステーションに接続されている Snowball へのデータ転送の速度を推定することは重要です。この推定速度が、目標転送速度となります。これは、ローカルネットワークのアーキテクチャという実際の条件の下で Snowball にデータを移行する速度の期待値です。

Snowball クライアントを実行しているワークステーションと Snowball との間のホップを減らすことで、それぞれの転送に要する時間を短縮できます。Snowball に転送するデータは、転送に使用するワークステーション上でホストすることが推奨されます。

目標転送速度を計算するには、Snowball クライアントをダウンロードし、データ転送に使用するワークステーションから snowball test コマンドを実行します。一度に複数の Snowball を使用する予定である場合は、各ワークステーションでこのテストを行います。テストの実行の詳細については、「Snowball クライアントを使用したデータ転送のテスト」を参照してください。

目標転送速度を特定するときは、それが、ローカルネットワークの速度やファイルサイズ、ローカルサーバーからの読み出し速度を始めとするたくさんの要素に影響されることを念頭に置いてください。Snowball クライアントは、条件の許す限り高速で、Snowball にデータをコピーします。お使いのローカル環境によりますが、50 TB の Snowball をわずか 1 日でコピーすることが可能です。2 つの 50 TB Snowball を並行して使用すれば、同じ時間内に 2 倍のデータをコピーできます。また、80 TB の Snowball を 2 日半でコピーすることもできます。

ステップ 4: 何台の Snowball が必要なのかを判断する

ステップ 1 で特定した、クラウドに移行させるデータの総量に基づいて、計画している大規模なデータ移行に何台の Snowball が必要になるかを判断します。Snowball には 50 TB (42 TB 使用可能) と 80 TB (72 TB 使用可能) の 2 種類が用意されているため、台数を効果的に判断できます。わずか 14 台 の Snowball でペタバイトのデータを移動させることができます。

ステップ 5: AWS Snow ファミリーマネジメントコンソール を使ってジョブを作成する

何台の Snowball が必要かがわかったら、次は、各デバイスのインポートジョブを作成します。Snowball の各インポートジョブはそれぞれ 1 台の Snowball を対象とするため、複数のインポートジョブを作成する必要があります。詳細については、「AWS Snowball ジョブの作成」を参照してください。

ステップ 6: データを転送セグメントに分割する

複数のジョブを使った大規模なデータ転送の場合、ベストプラクティスとして、データを処理しやすいサイズのデータ転送セグメントに分割することをお勧めします。データを多数のセグメントに分割すれば、セグメントを 1 つずつ転送することも、複数のセグメントを並行して転送することもできます。セグメントを計画するときは、各セグメントのデータの合計が、そのジョブに使用する Snowball に収まることを確認してください。データをセグメントに分割する際は、同じファイルやディレクトリを重複してコピーしないように注意してください。データ転送をセグメントに分割する例を以下に示します。

  • 50 TB の Snowball の場合、4 TB のセグメントを 10 個作成できます。

  • ファイルが大きい場合は、1 つ 1 つのファイルをセグメントにすることもできます。

  • 各セグメントのサイズはそれぞれ異なっても構いません。また、個々のセグメントは同じ種類のデータで構成することができます。たとえば、あるセグメントにはバッチ処理された小さいファイル、別のセグメントには大きいファイル、といった方法で分けることができます。このアプローチは、ファイルの種類ごとに平均転送速度を特定するときに役立ちます。

注記

転送する各ファイルに対し、メタデータオペレーションが実行されます。このオーバーヘッドは、ファイルサイズとは無関係に一定です。したがって、小さなファイルをまとめてバッチ処理する方がパフォーマンスが向上します。小容量ファイルのバッチ処理の実装情報については、「snowball cp コマンドのオプション」を参照してください。

データ転送をセグメントに分けて行うと、転送中に生じた問題をすばやく解決することができます。大規模な転送に 1 日以上かけた場合、その後でトラブルシューティングを行うのは簡単ではありません。

ペタバイト規模のデータ転送のプランニングが完了したら、ワークステーションからSnowball へセグメントをいくつか転送してみて、速度と総転送時間をチェックすることをお勧めします。

大規模な転送のキャリブレーション

大規模な転送をキャリブレーションするには、標準的なデータ転送セグメント一式を使い、snowball cp コマンドを実行します。つまり、前のセクションのガイドに従って定義したデータセグメントの数を選択し、Snowball にそれを転送します。同時に、転送速度および各オペレーションの転送時間の合計を記録します。

注記

Snowball がまだ手元にない場合は、snowball test コマンドでキャリブレーションすることもできます。このコマンドの使用については、「Snowball クライアントを使用したデータ転送のテスト」を参照してください。

キャリブレーションを行っている間、ワークステーションの CPU とメモリの使用率を監視します。結果が目標転送速度を下回る場合は、1 台のワークステーションで複数のセグメントを並行してコピーすることを検討します。その場合、データ転送セグメントを追加し、同じ Snowball に接続した複数の Snowball インスタンスを使ってキャリブレーションを繰り返します。実行中の Snowball クライアントの各インスタンスは、異なるセグメントを Snowball に転送する必要があります。

Snowball クライアントのインスタンスを追加しながら、データ転送を実行している全 Snowball クライアントインスタンスの転送速度の合計に見合った増加が見られなくなるまで、キャリブレーションを続けます。速度が見合った増加を見せなくなった時点で、実行中の最後の Snowball クライアントインスタンスを終了し、新しい目標転送速度を確認、記録します。

重要

ワークステーションはローカルでデータをホストする必要があります。パフォーマンス上の理由から、Snowball を使用してデータを転送する際に、ネットワーク全体でファイルを読み取ることは推奨されていません。

ワークステーションのリソースが限界にあり、Snowball へのデータ転送が目標速度に達していない場合は、ワークステーションに CPU またはディスク帯域幅といった別のボトルネックがあると考えられます。

これらのステップを完了すれば、Snowball を一度に 1 台ずつ使うことでいかに速くデータを転送できるかがわかるはずです。データをより速く転送する必要がある場合は、「並列データ転送」を転送してください。

並列データ転送

Snowball を使ってデータを転送するとき、並列転送を使うことで最も速く転送できる場合があります。並列転送は、以下のいずれかのシナリオで行います。

  • 1 台の Snowball を接続した 1 台のワークステーションで複数の Snowball クライアントのインスタンスを使用する

  • 1 台の Snowball を接続した複数のワークステーションで複数の Snowball クライアントのインスタンスを使用する

  • 複数の Snowball を接続した複数のワークステーションで複数の Snowball クライアントのインスタンスを使用する

1 台の Snowball を接続した 1 台のワークステーションで複数の Snowball クライアントを使用する場合は、snowball startコマンドを 1 回だけ実行します。Snowball クライアントの各インスタンスを、同じユーザーとホームディレクトリから実行するためです。第 2 のシナリオでも、複数のワークステーションのすべてで同じユーザーアカウントを使い、ネットワークファイルシステムを通じてデータを転送するなら、同じことが当てはまります。どのシナリオの場合も、「大規模な転送の計画」にあるガイダンスに従ってください。