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

このガイドは廃止予定です。更新は終了予定です。

注記

第 1 世代 80 TB Snowball デバイスは利用できなくなりました。すべてのデータ転送ジョブに、Snowball Edge ストレージ最適化デバイスを使用します。Snowball Edge のドキュメントについては、AWS Snowball Edge 開発者ガイド

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

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

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

大規模な転送の計画

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

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

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

これらのデータは、スプレッドシートやホワイトボドに記録しておくこともできます。しかし、クラウドに移行する大量のコンテンツを整理するのが得策です。初めてデータをクラウドへ移行する場合は、クラウド移行モデルの設計をお勧めします。詳細については、AWS ホワイトペーパー Web サイトにあるクラウド移行の実践ガイドホワイトペーパーを参照してください。

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

ステップ 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: 必要な雪玉の数を決定する

ステップ 1 で特定した、クラウドに移行するデータの総量を下に、計画している大規模なデータ移行に必要な Snowball の台数を決めます。Snowball は、50 TB (42 TB 使用可能) and 80 TB (72 TB 使用可能) の 2 種類が用意されているため、効率的に活用することができます。14 Snowball のようなペタバイト以上のデータを移動できます。

ステップ 5: AWS Snow Family マネジメントコンソールを使用したジョブの作成

必要な Snowball の台数が分かったら、デバイスごとにインポートジョブを作成します。Snowball インポートジョブは、単一の Snowball を対象とするため、複数のインポートジョブを作成する必要があります。詳細については、「AWS Snowball Job 作成」を参照してください。

手順 6: データを転送セグメントに分割する

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

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

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

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

注記

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

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

ペタバイト規模のデータ転送が計画できたら、ワークステーションからいくつかのセグメントを Snowball に転送して、速度や合計転送時間をキャリブレーションするようにしましょう。

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

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

注記

また、 を使用することもできますsnowball testSnowball を受信する前にキャリブレーションを実行します。このコマンドの使用については、「Snowball クライアントを使ったデータ転送のテスト」を参照してください。

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

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

重要

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

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

これらのステップを完了すれば、Snowball を 1 台ずつ使ってデータをすばやく転送する方法を把握できるようになります。データをより速く転送する必要がある場合は、「並列データ転送」を転送してください。

並列データ転送

Snowball を使用してデータを転送するには、並列転送がもっとも効果的である場合があります。並列転送は、以下のいずれかのシナリオで行います。

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

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

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

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