AWS Snowball のパフォーマンス - AWS Snowball

このガイドはまもなく廃止される予定で、更新はされません。

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

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

AWS Snowball のパフォーマンス

以下は、AWS Snowball のパフォーマンスについての情報です。ここでは一般的なパフォーマンスについて説明します。オンプレミス環境は、それぞれに異なる方法、つまり、それぞれに異なるネットワーク技術、ハードウェア、オペレーティングシステム、手順その他で稼働しているためです。

次の表は、ネットワークの転送速度が、Snowball にデータが収まるまでにかかる時間に、どのように影響するのかを示したものです。小さいファイルを大きなファイルにバッチせずに転送すると、オーバーヘッドが増加するため転送速度が低下します。

レート (MB/秒) 42 TB の転送時間 72 TB の転送時間
800 14 時間 1 日
450 1.09 日間 1.8 日間
400 1.16 日間 2.03 日間
300 1.54 日間 2.7 日間
277 1.67 日間 2.92 日間
200 2.31 日間 4 日間
100 4.63 日間 8.10 日間
60 8 日間 13 日間
30 15 日間 27 日間
10 46 日間 81 日間

以下では、インターネットを介したデータ転送の代わりに Snowball を使用すべきタイミングを、どのように判断すればよいのか、そして、データソースから Snowball へのデータ転送を高速化する方法について、説明します。

データ転送の高速化

一般的に、データソースから Snowball への転送速度は、以下に示す方法で改善できます。パフォーマンスへのプラスの影響が大きいものから順に並べています。

  1. 最新の Mac または Linux の Snowball クライアントを使用する – Mac および Linux 向けの最新の Snowball は、いずれも x86 命令セットアーキテクチャへの Advanced Encryption Standard New Instructions (AES-NI) 拡張をサポートしています。この拡張により、Snowball と Mac または Linux ワークステーション間で転送されているデータの、暗号化や復号化の速度が向上します。サポートされるハードウェアを含む AES-NI の詳細については、ウィキペディアの AES 命令セットを参照してください。

  2. 小容量ファイルの一括バッチ処理 – コピー操作によっては、暗号化によりオーバーヘッドが生じる場合があります。そのため、個々のファイル上で多数の転送を実行すると、大容量ファイルで同数のファイルを転送するよりも全体のパフォーマンスは遅くなります。1 つの snowball cp コマンドでバッチ処理することで、小容量ファイルの転送速度を大幅に向上させることができます。Amazon S3 へのインポート処理中に、これらのバッチファイルは、自動的に元の状態に解凍されます。詳細については、「snowball cp コマンドのオプション」を参照してください。

  3. 一度に複数のコピーオペレーションを実行する - ワークステーションが十分に強力であれば、一度に複数の snowball cp コマンドを実行できます。これを行うには、同一の Snowball に接続されている Snowball クライアントの個別のインスタンスで、個別のターミナルウィンドウから各コマンドを実行します。

  4. 複数のワークステーションからコピーする – 単一の Snowball を複数のワークステーションに接続できます。各ワークステーションは、Snowball クライアントの個別のインスタンスをホストできます。

  5. ファイルではなくディレクトリを転送するsnowball cp コマンドにはそれぞれオーバーヘッドがあるため、多数のコピーコマンドを 1 つずつキューに入れることは推奨されません。多数のコマンドをキューイングすると、転送パフォーマンスに大きな悪影響を及ぼします。

    たとえば、C:\\MyFiles というディレクトリに file1.txt、file2.txt、file3.txt の 3 つのファイルしか含まれていないとします。次の 3 つのコマンドを発行します。

    snowball cp C:\\MyFiles\file1.txt s3://mybucket snowball cp C:\\MyFiles\file2.txt s3://mybucket snowball cp C:\\MyFiles\file3.txt s3://mybucket

    このシナリオでは、次のコピーコマンドを使用してディレクトリ全体を転送した場合の 3 倍のオーバーヘッドになります。

    Snowball cp –r C:\\MyFiles\* s3://mybucket
  6. 転送中にファイル上で他のオペレーションを実行しない - 転送時のファイル名変更、ファイルメタデータの変更、コピーオペレーション時のファイルへのデータ書き込みは、転送パフォーマンスに大きな悪影響を及ぼします。転送時、ファイルは静的な状態にされることをお勧めします。

  7. ローカルネットワークの使用を減らす – Snowball はローカルネットワークを介して通信します。そのため、Snowball、それが接続しているスイッチ、およびデータソースをホストしているワークステーションの間の、その他のローカルネットワークトラフィックを減らすことで、データ転送の速度を改善できます。

  8. 不要なホップを削除する – Snowball、データソース、ワークステーションを設定して、これらのみを単一のスイッチを介したマシン通信にすることが推奨されます。これにより、データ転送速度を大幅に向上できます。

パフォーマンスの大幅向上

お客様のパフォーマンスの結果は、ご使用のハードウェア、ネットワーク、ファイルの数と大きさ、保存方法によって異なります。したがって、希望するパフォーマンスが得られない場合は、パフォーマンスメトリクスを試してみることをお勧めします。

はじめに、全体の転送パフォーマンスが低下するまでコピーオペレーションを複数回行います。コピーオペレーションを一度に複数回実行すると、転送パフォーマンス全体に著しく良い影響を与える可能性があります。たとえば、ターミナルウィンドウで実行中の snowball cp コマンドが 1 つであり、データ転送が 30 MB/秒であることが判ったとします。2 つめのターミナルウィンドウを開き、転送する別のファイルセットで 2 つめの snowball cp コマンドを実行します。ここで、両方のコマンドが 30 MB/秒で実行されていることが判ります。 この場合、合計の転送パフォーマンスは 60 MB/秒です。

ここで、別のワークステーションから Snowball に接続するとします。そのワークステーションから Snowball クライアントを実行して、転送したい別のファイルセットに対して 3 番目の snowball cp コマンドを実行します。ここでパフォーマンスを確認し、snowball cp コマンドの 3 つのインスタンスがすべて 25 MB/秒のパフォーマンスで稼働しているとわかった場合、合計パフォーマンスは 75 MB/秒です。この例では、各インスタンスのそれぞれのパフォーマンスは低下しましたが、全体のパフォーマンスは増加しました。

データ転送の高速化」に掲載されている技術を使用したこの方法は、データ転送パフォーマンスを最適化するのに役立ちます。