Snow Family デバイスとの間でのデータ移行に Amazon S3 アダプターを使用したファイルの転送 - AWS Snowball Edge デベロッパーガイド

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

Snow Family デバイスとの間でのデータ移行に Amazon S3 アダプターを使用したファイルの転送

Amazon S3 アダプターの概要を次に示します。このアダプターを使用して、Amazon S3 RESTAPIアクションを使用して AWS Snowball Edge 、デバイス上に既にある Amazon S3バケットとの間でプログラムでデータを転送できます。この Amazon S3 REST API サポートは、アクションのサブセットに限定されています。このアクションのサブセットを の 1 AWS SDKsつで使用して、プログラムでデータを転送できます。また、Amazon S3 でサポートされる AWS Command Line Interface (AWS CLI) コマンドのサブセットを使用して、プログラムでデータを転送できます。

ソリューションで AWS SDK for Java バージョン 1.11.0 以降を使用している場合は、次の を使用する必要がありますS3ClientOptions

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

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

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

重要

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

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

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

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

現在、Snowball Edge デバイスで Amazon S3 アダプターの使用がサポートされているのは、 AWS CLI 1.16.14 以前のバージョンのみです。の新しいバージョン AWS CLI は、Amazon S3 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

の Amazon S3 APIインターフェイスによる承認 AWS Snowball

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

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

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

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

Snow Family デバイスでのローカル 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 クライアント情報を実行して取得できます。Snow Family デバイスの認証情報の取得 を参照してください。これらのローカル Amazon S3 認証情報には、アクセスキー ID とシークレットキーのキーペアが含まれます。これらの認証情報は、ジョブに関連付けられたデバイスでのみ有効です。IAM 対応するもの AWS クラウド がないため、 では使用できません。

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

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

Snow Family デバイスで S3 AWS CLI アダプターをエンドポイントとして使用するように を設定する

を使用して AWS Snowball Edge デバイスにコマンド AWS CLI を発行する場合、エンドポイントが 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

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

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

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

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

  4. ターミナルで snowballEdge get-certificate コマンドを実行します。このコマンドの詳細については、「Snow Family デバイスでのパブリックキー証明書の管理」を参照してください。

  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

Snow Family デバイスの Amazon S3 アダプターでサポートされていない Amazon S3 の機能

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

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

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

  • ListBuckets – オブジェクトエンドポイント ListBuckets を持つ はサポートされていません。次のコマンドは、Snow Family デバイスの Amazon S3 互換ストレージでは機能しません。

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