データ移行に Amazon S3 アダプタを使用してファイルを転送する - AWS Snowball Edge 開発者ガイド

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

データ移行に Amazon S3 アダプタを使用してファイルを転送する

以下は Amazon S3 アダプターの概要です。このアダプターを使用すると、Amazon S3 アダプターとの間でプログラムでデータを転送できます。AWS Snowball EdgeAmazon S3 REST API アクションを使用するデバイス。この Amazon S3 REST API サポートは、アクションのサブセットのみに限定されています。このアクションのサブセットをいずれかの AWS SDK で使用して、プログラムでデータを転送できます。また、Amazon S3 でサポートされる AWS Command Line Interface (AWS CLI) コマンドのサブセットを使用して、プログラムでデータを転送できます。

お使いのソリューションでバージョン 1.11.0 以降の AWS SDK for Java を使用している場合は、以下の S3ClientOptions を使用しなければなりません。

  • disableChunkedEncoding() – インターフェイスでは、チャンクエンコーディングがサポートされないことを示します。

  • setPathStyleAccess(true) – すべてのリクエストに対して、パススタイルのアクセスを使用するようにインターフェイスを設定します。

詳細については、を参照してください。クラス S3ClientOptions.ビルダーアマゾンAppStreamJava 用 SDK

重要

上のローカルバケットへのデータの読み取りと書き込みには、一度に 1 つの方法のみを使用することをおすすめします。AWS Snowball Edgeデバイス。ファイルインターフェイスと Amazon S3 アダプタの両方を同じバケットで同時に使用すると、読み取り/書き込みの競合が発生する可能性があります。

のレート制限 AWS Snowball Edge制限の詳細を示します。

AWS のサービスを Snowball Edge 上で正しく動作させるには、サービスのポートを許可する必要があります。詳細については、「AWS Snowball Edge デバイスで AWS のサービスを使用するために必要なポート」を参照してください。

のダウンロードとインストールAWS CLIAmazon S3 アダプターで使用するためのバージョン 1.16.14

現在、Snowball Edge デバイスはバージョン 1.16.14 以前のバージョンしかサポートしていませんAWS CLIAmazon S3 アダプターで使用します。Snow Family デバイスで Amazon S3 互換のストレージを使用している場合は、最新バージョンのストレージを使用できます。AWS CLI. 最新バージョンをダウンロードして使用するには、を参照してください。AWS Command Line Interfaceユーザーガイド

このタスクを実行するには、ご使用のオペレーティングシステムに合わせて以下の手順を実行してください。

をインストールします。AWS CLILinux オペレーティングシステムでは

次の連鎖コマンドを実行します。

curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.14.zip" -o "awscli-bundle.zip";unzip awscli-bundle.zip;sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws;/usr/local/bin/aws --version;

をインストールします。AWS CLIWindows オペレーティングシステムの場合

ご使用のオペレーティングシステム用のインストーラーファイルをダウンロードして実行します。

を使用するAWS CLISnowball Edge デバイスでのおよび API オペレーション

AWS CLI または API オペレーションを使用して、Snowball Edge で IAM、Amazon S3、Amazon EC2 コマンドを発行するには、リージョンを snow として指定する必要があります。これを行うには AWS configure を使用するか、次の例に示すようにコマンド自体内で指定します。

aws configure --profile abc AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: 1234567 Default region name [None]: snow Default output format [None]: json

または

aws s3 ls --profile snowballEdge --endpoint http://192.0.2.0:8080 --region snow

AWS Snowball の Amazon S3 API インターフェイスを使用した認可

Amazon S3 アダプターを使用すると、すべてのインタラクションが以下のように署名されます。AWSデフォルトでは署名バージョン 4 アルゴリズム。この認可は、ソースからインターフェイスに移動するデータを検証するためにのみ使用されます。すべての暗号化と復号はデバイス上で行います。暗号化されていないデータは、デバイスに保存されません。

インターフェイスを使用する際は、次の点に注意が必要です。

  • へのリクエストに署名するためのローカル Amazon S3 認証情報を取得するにはAWS Snowball Edgeデバイスで、以下を実行します。snowballEdge list-access-keysそしてsnowballEdge get-secret-access-keysスノーボールエッジのクライアントコマンド。詳細については、「Snowball Edge クライアントの使用」を参照してください。これらのローカル Amazon S3 認証情報には、アクセスキーとシークレットキーのキーペアが含まれます。これらのキーは、ジョブに関連付けられたデバイスでのみ有効です。AWS Identity and Access Management (IAM) に該当する部分がないため、AWS クラウド では使用できません。

  • 暗号化キーは、使用する AWS 認証情報で変わることはありません。署名バージョン 4 のアルゴリズムを使用した署名は、ソースからインターフェイスに移動するデータを検証するためだけに使用されます。このため、この署名は Snowball でデータを暗号化するために使用される暗号化キーには関係しません。

ローカル Amazon S3 認証情報の取得と使用

Snowball Edge とのやり取りは、すべて AWS 署名バージョン 4 アルゴリズムで署名されます。アルゴリズムの詳細については、以下を参照してください。署名バージョン 4 署名プロセスAWS 全般のリファレンス

Snowball Edge クライアントエッジデバイスに対するリクエストに署名するローカル Amazon S3 認証情報は、snowballEdge list-access-keys および snowballEdge get-secret-access-key Snowball Edge クライアント情報を実行して取得できます。認証情報の取得 を参照してください。これらのローカル Amazon S3 認証情報には、アクセスキー ID とシークレットキーのキーペアが含まれます。これらの認証情報は、ジョブに関連付けられたデバイスでのみ有効です。IAM に該当する部分がないため、AWS クラウド では使用できません。

サーバーの AWS 認証情報ファイルに、これらの認証情報を追加できます。通常、デフォルトの認証情報プロファイルファイルは ~/.aws/credentials にありますが、この場所はプラットフォームごとに異なる場合があります。このファイルは、ほとんどの AWS SDK および AWS CLI によって共有されます。ローカル認証情報は、次の例のようにプロファイル名を付けて保存できます。

[snowballEdge] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

S3 アダプターを次のように指定します。AWS CLIエンドポイント

を使用するときAWS CLIにコマンドを発行するにはAWS Snowball Edgeデバイスでは、エンドポイントが Amazon S3 アダプターであることを指定します。次に示すように、HTTPS エンドポイント、またはセキュリティで保護されていない HTTP エンドポイントの使用を選択できます。

セキュリティで保護された HTTPS エンドポイント

aws s3 ls --profile snowballEdge --endpoint https://192.0.2.0:8443 --ca-bundle path/to/certificate

セキュリティで保護されていない HTTP エンドポイント

aws s3 ls --profile snowballEdge --endpoint http://192.0.2.0:8080

8443の HTTPS エンドポイントを使用すると、データはサーバーから Snowball Edge に安全に転送されます。この暗号化は、新しい IP アドレスを取得する際に Snowball Edge によって生成される証明書を使用して行われます。証明書を取得したら、ローカルの ca-bundle.pem ファイルに保存できます。次に、以下に示すように AWS CLI プロファイルを設定し、証明書へのパスを含めます。

証明書をインターフェイスエンドポイントに関連付けるには
  1. Snowball Edge を電源とネットワークに接続し、電源を入れます。

  2. デバイスの起動が終了したら、ローカルネットワークでの IP アドレスを書き留めておきます。

  3. ネットワーク上のターミナルから Snowball Edge に ping を送信できることを確認します。

  4. ターミナルで snowballEdge get-certificate コマンドを実行します。このコマンドの詳細については、「データ転送の証明書の取得」を参照してください。

  5. snowballEdge get-certificate コマンドの出力をファイルに保存します (例: ca-bundle.pem)。

  6. ターミナルから次のコマンドを実行します。

    aws configure set profile.snowballEdge.ca_bundle /path/to/ca-bundle.pem

この手順を完了したら、次の例のように、これらのローカル認証情報、証明書、および指定されたエンドポイントを使用して CLI コマンドを実行できます。

aws s3 ls --profile snowballEdge --endpoint https://192.0.2.0:8443

Amazon S3 アダプターではサポートされていない Amazon S3 機能

Amazon S3 アダプターを使用すると、Amazon S3 API アクションを使用して Snowball Edge との間でデータをプログラム的に転送できます。ただし、Amazon S3 アダプターを使用する場合、すべての Amazon S3 転送機能と API アクションが Snowball Edge デバイスで使用できるわけではありません。例えば、以下の機能とアクションは、Snowball Edge での使用がサポートされません。

  • TransferManager— このユーティリティは、SDK for Java を使用して、ローカル環境から Amazon S3 にファイルを転送します。代わりに、インターフェイスを使用して、サポートされる API アクションまたは AWS CLI コマンドを使用することを検討してください。

  • GET Bucket (オブジェクトのリスト化) バージョン 2 – この GET アクションを実装すると、バケット内の一部またはすべて (最大 1,000) のオブジェクトが返されます。GET Bucket (List Objects) バージョン 1 アクションまたは ls AWS CLI コマンドを使用することを検討してください。

  • ListBuckets—ListBucketsオブジェクトエンドポイントとの併用はサポートされていません。次のコマンドは、Snow Family デバイス上の Amazon S3 互換ストレージでは動作しません。

    aws s3 ls --endpoint https://192.0.2.0 --profile profile