Snowball Edge デバイスで S3 バケットを操作する - AWS Snowball Edge デベロッパーガイド

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

Snowball Edge デバイスで S3 バケットを操作する

Snowball Edge デバイスで Amazon S3 バケットを作成して、ローカルデータアクセス、ローカルデータ処理、データレジデンシーを必要とするアプリケーション用に、オンプレミスでオブジェクトを保存および取得できます。Snow Family デバイスの Amazon S3 互換ストレージは、SNOW という新しいストレージクラスを提供します。このストレージクラスは、S3 API を使用し、複数の Snowball Edge デバイス間でデータを永続的かつ冗長的に保存するように設計されています。Snowball Edge バケットで、Amazon S3 と同じ API と機能 (バケットのライフサイクルポリシー、暗号化、タグ付けなど) を使用できます。

の使用 AWS CLI

AWS CLIを使用して、デバイスの Amazon S3 バケットを操作するには、以下の手順に従います。

を設定するには AWS CLI
  1. ~/.aws/config でオブジェクトエンドポイントのプロファイルを作成します。

    [profile your-profile] aws_access_key_id = your-access-id aws_secret_access_key = your-access-key region = snow ca_bundle = dev/apps/ca-certs/your-ca_bundle
  2. デバイスから証明書を取得します。詳細については、「Snowball Edge デベロッパーガイド」を参照してください。

  3. SDK を仮想環境にインストールした場合は、以下のコマンドを使用してアクティブ化します。

    source your-virtual-environment-name/bin/activate

オペレーションを設定したら、 AWS CLIの API コールを使用してオペレーションにアクセスできます。以下の例で、cert は IAM を使用して取得したデバイス証明書です。

オブジェクト操作へのアクセス

aws s3api --profile your-profile list-objects-v2 --endpoint-url https://s3api-endpoint-ip

バケット操作へのアクセス操作

aws s3control --profile your-profile list-regional-buckets --account-id bucket-owner --endpoint-url https://s3ctrlapi-endpoint-ip

Java SDK の使用

以下の例に従って、Java SDK を使用して Amazon S3 オブジェクトを操作します。

import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; import software.amazon.awssdk.http.SdkHttpClient; import software.amazon.awssdk.http.apache.ApacheHttpClient; import software.amazon.awssdk.regions.Region; import java.net.URI; AwsBasicCredentials creds = AwsBasicCredentials.create(accessKey, secretKey); // set creds by getting Access Key and Secret Key from snowball edge SdkHttpClient httpClient = ApacheHttpClient.builder().tlsTrustManagersProvider(trustManagersProvider).build(); // set trust managers provider with client certificate from snowball edge String s3SnowEndpoint = "10.0.0.0"; // set s3-snow object api endpoint from describe service S3Client s3Client = S3Client.builder().httpClient(httpClient).region(Region.of("snow")).endpointOverride(new URI(s3SnowEndpoint)).credentialsProvider(StaticCredentialsProvider.create(creds)).build();

バケット ARN 形式

以下に示す Amazon リソースネーム (ARN) 形式を使用して、Snowball Edge デバイスの Amazon S3 バケットを識別できます。

arn:partition:s3:snow:account-id:device/device-id/bucket/bucket-name

ここで、partition は Snowball Edge デバイスを注文したリージョンのパーティションです。device-id は、デバイスがスタンドアロンの Snowball Edge デバイスの場合は job_id 、Snowball Edge クラスターの場合は cluster_id です。

Snowball Edge デバイスで S3 バケットを作成する

Snowball Edge デバイスで Amazon S3 バケットを作成して、ローカルデータアクセス、ローカルデータ処理、データレジデンシーを必要とするアプリケーション用に、エッジでオブジェクトを保存および取得できます。Snow Family デバイスの Amazon S3 互換ストレージは、SNOW という新しいストレージクラスを提供します。このストレージクラスは、Amazon S3 を使用し、複数のデバイス間でデータを永続的かつ冗長的に保存するように設計されています。Amazon S3 バケットと同じ API と機能 (バケットのライフサイクルポリシー、暗号化、タグ付けなど) を使用できます。

以下の例では、 AWS CLIを使用して Snowball Edge デバイス用の Amazon S3 バケットを作成します。このコマンドを実行するには、ユーザー入力プレースホルダーをユーザー自身の情報に置き換えます。

aws s3control --profile your-profile create-bucket --bucket your-snow-bucket --endpoint-url https://s3ctrlapi-endpoint-ip

を使用したオブジェクトライフサイクル設定の作成と管理 AWS CLI

Amazon S3 ライフサイクルを使用して、Snow Family デバイスの Amazon S3 互換ストレージのストレージ容量を最適化できます。ライフサイクルルールを作成して、オブジェクトが古くなったり、新しいバージョンに置き換えられたりしたときに期限切れにすることができます。ライフサイクルルールを作成、有効化、無効化、または削除できます。Amazon S3 ライフサイクルの詳細については、「ストレージのライフサイクルの管理」を参照してください。

注記

バケット AWS アカウント を作成する はバケットを所有し、ライフサイクルルールを作成、有効化、無効化、または削除できる唯一のものです。

AWS Command Line Interface (AWS CLI) を使用して、Snow Family デバイスバケットの Amazon S3 互換ストレージのライフサイクル設定を作成および管理するには、以下の例を参照してください。

Snowball Edge バケットにライフサイクル設定を配置する

次の AWS CLI 例では、Snowball Edge バケットにライフサイクル設定ポリシーを配置します。このポリシーでは、フラグ付きのプレフィックス (myprefix) とタグを持つすべてのオブジェクトが 10 日後に期限切れになることを指定します。この例を使用するには、各ユーザー入力プレースホルダーをユーザー自身の情報に置き換えます。

まず、ライフサイクル設定ポリシーを JSON ファイルに保存します。この例では、ファイル名は lifecycle-example.json です。

{ "Rules": [{ "ID": "id-1", "Filter": { "And": { "Prefix": "myprefix", "Tags": [{ "Value": "mytagvalue1", "Key": "mytagkey1" }, { "Value": "mytagvalue2", "Key": "mytagkey2" } ], } }, "Status": "Enabled", "Expiration": { "Days": 10 } }] }

ファイルを保存したら、put-bucket-lifecycle-configuration コマンドの一部として JSON ファイルを送信します。このコマンドを使用するには、各ユーザー入力プレースホルダーを独自の情報に置き換えます。

aws s3control put-bucket-lifecycle-configuration --bucket example-snow-bucket --profile your-profile --lifecycle-configuration file://lifecycle-example.json --endpoint-url https://s3ctrlapi-endpoint-ip

このコマンドの詳細については、「 コマンドリファレンスput-bucket-lifecycle-configuration」の「」を参照してください。 AWS CLI

Snowball Edge デバイスで S3 バケットを操作する

Snow Family デバイスの Amazon S3 互換ストレージでは、Snowball Edge デバイスで Amazon S3 バケットを作成して、ローカルデータアクセス、ローカルデータ処理、データレジデンシーを必要とするアプリケーション用に、オンプレミスでオブジェクトを保存および取得できます。Snow Family デバイスの Amazon S3 互換ストレージは、SNOW という新しいストレージクラスを提供します。このストレージクラスは、S3 API を使用し、複数の Snowball Edge デバイス間でデータを永続的かつ冗長的に保存するように設計されています。Snowball Edge バケットで、Amazon S3 と同じ API と機能 (バケットのライフサイクルポリシー、暗号化、タグ付けなど) を使用できます。 AWS Command Line Interface (AWS CLI) または SDK を使用して、Snow Family デバイスの Amazon S3 互換ストレージを使用できます。 AWS SDKs

Snow Family デバイスバケットの Amazon S3 互換ストレージにアクセスできるかどうかを判断する

以下の例では、head-bucket コマンドを使用して、Amazon S3 バケットが存在し、 AWS CLIを使用してそのバケットにアクセスする許可があるかどうかを調べます。このコマンドを使用するには、各ユーザー入力プレースホルダーを独自の情報に置き換えます。

aws s3api head-bucket --bucket sample-bucket --profile your-profile --endpoint-url https://s3api-endpoint-ip

バケットまたはリージョンバケットのリストを取得する

list-regional-buckets または list bucketsを使用して、 を使用して Snow Family デバイスバケットの Amazon S3 互換ストレージを一覧表示します AWS CLI。

aws s3control list-regional-buckets --account-id 123456789012 --profile your-profile --endpoint-url https://s3ctrlapi-endpoint-ip

list-regional-buckets コマンドの詳細については、「 コマンドリファレンスlist-regional-buckets」の「」を参照してください。 AWS CLI

aws s3 list-buckets --account-id 123456789012 --endpoint-url https://s3api-endpoint-ip

list-buckets コマンドの詳細については、 コマンドAWS CLI リファレンス「list-buckets」を参照してください。

次の SDK for Java の例では、Snowball Edge デバイスのバケットのリストを取得します。詳細については、Amazon Simple Storage Service API リファレンスListBucketsの「」を参照してください。

import com.amazonaws.services.s3.model.*; public void listBuckets() { ListBucketsRequest reqListBuckets = new ListBucketsRequest() .withAccountId(AccountId) ListBucketsResult respListBuckets = s3APIClient.RegionalBuckets(reqListBuckets); System.out.printf("ListBuckets Response: %s%n", respListBuckets.toString()); }

次の PowerShell 例では、Snowball Edge デバイスのバケットのリストを取得します。

Get-S3CRegionalBucketList -AccountId 012345678910 -Endpoint "https://snowball_ip" -Region snow

次の .NET の例では、Snowball Edge デバイスのバケットのリストを取得します。

using Amazon.S3Control; using Amazon.S3Control.Model; namespace SnowTest; internal class Program { static async Task Main(string[] args) { var config = new AmazonS3ControlConfig { ServiceURL = "https://snowball_ip", AuthenticationRegion = "snow" // Note that this is not RegionEndpoint }; var client = new AmazonS3ControlClient(config); var response = await client.ListRegionalBucketsAsync(new ListRegionalBucketsRequest() { AccountId = "012345678910" }); } }

バケットを取得する

以下の例では、 AWS CLIを使用して Snow Family デバイスバケットの Amazon S3 互換ストレージを取得します。このコマンドを使用するには、各ユーザー入力プレースホルダーを独自の情報に置き換えます。

aws s3control get-bucket --account-id 123456789012 --bucket DOC-EXAMPLE-BUCKET --profile your-profile --endpoint-url https://s3ctrlapi-endpoint-ip

このコマンドの詳細については、「AWS CLI コマンドリファレンス」の「get-bucket」を参照してください。

以下の Snow Family デバイスの Amazon S3 互換ストレージの例では、SDK for Java を使用してバケットを取得します。詳細については、「Amazon Simple Storage Service API リファレンスGetBucket」の「」を参照してください。

import com.amazonaws.services.s3control.model.*; public void getBucket(String bucketName) { GetBucketRequest reqGetBucket = new GetBucketRequest() .withBucket(bucketName) .withAccountId(AccountId); GetBucketResult respGetBucket = s3ControlClient.getBucket(reqGetBucket); System.out.printf("GetBucket Response: %s%n", respGetBucket.toString()); }

バケットを削除する

重要
  • バケット AWS アカウント を作成する がバケットを所有しており、バケットを削除できる唯一のバケットです。

  • Snow Family デバイスバケットは、削除する前に空にする必要があります。

  • バケットが削除された後は、そのバケットを復元することはできません。

以下の例では、 AWS CLIを使用して Snow Family デバイスバケットの Amazon S3 互換ストレージを削除します。このコマンドを使用するには、各ユーザー入力プレースホルダーを独自の情報に置き換えます。

aws s3control delete-bucket --account-id 123456789012 --bucket DOC-EXAMPLE-BUCKET --profile your-profile --endpoint-url https://s3ctrlapi-endpoint-ip

このコマンドの詳細については、「AWS CLI コマンドリファレンス」の「delete-bucket」を参照してください。