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

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

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

以下は、Amazon S3 アダプターの概要です。このアダプターを使用すると、Amazon S3 REST API アクションを使用して、AWS Snowball Edgeデバイス上に既に存在する S3 バケットとの間でプログラムでデータを転送できます。 Amazon S3 この 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) – すべてのリクエストに対して、パススタイルのアクセスを使用するようにインターフェイスを設定します。

詳細については、Amazon SDK for Java の「Class S3ClientOptions.Builder」を参照してください。 AppStream

重要

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

AWS Snowball Edge クォータ」で、制限の詳細を説明しています。

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

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

現在、Snowball Edge デバイスで Amazon S3 アダプターの使用がサポートされているのは、AWS CLI 1.16.14 以前のバージョンのみです。AWS CLI の新しいバージョンは、Amazon S3 アダプターのすべての機能をサポートしていないため、Amazon S3 アダプターとは互換性がありません。

注記

Snow Family デバイスの Amazon S3 互換ストレージを使用している場合は、AWS CLI の最新バージョンを使用できます。最新バージョンをダウンロードして使用するには、「AWS Command Line Interface ユーザーガイド」を参照してください。

Linux オペレーティングシステムに AWS CLI をインストールする

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

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;

Windows オペレーティングシステムに AWS CLI をインストールする

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

Snowball Edge デバイスで AWS CLI と 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 Signature Version 4 アルゴリズムで署名されます。この認可は、ソースからインターフェイスに移動するデータを検証するためにのみ使用されます。すべての暗号化と復号はデバイス上で行います。暗号化されていないデータは、デバイスに保存されません。

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

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

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

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

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

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