翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MemoryDB は、MemoryDB スナップショットの Amazon Simple Storage Service (Amazon S3) バケットへのエクスポートをサポートしています。これにより、MemoryDB の外部からスナップショットにアクセスできます。エクスポートされた MemoryDB スナップショットは Valkey およびオープンソース Redis OSS に完全に準拠しており、適切なバージョンまたはツールで読み込むことができます。スナップショットは、MemoryDB コンソール、AWS CLI、または MemoryDB API を使用してエクスポートできます。
スナップショットのエクスポートは、他の AWS リージョンのクラスターを起動する必要がある場合に役立ちます。 1 つの AWS リージョンでデータをエクスポートし、.rdb ファイルを新しい AWS リージョンにコピーして、その .rdb ファイルを使うことにより、新しいクラスターの入力を待つのではなく、新しいクラスターをシードできます。新しいクラスターのシードについては、「外部で作成されたスナップショットによる新しいクラスターのシード」を参照してください。クラスターのデータをエクスポートする別の理由は、オフライン処理のために .rdb ファイルを使用するためです。
重要
-
コピー先のMemoryDBスナップショットと Amazon S3 バケットは、同じ AWS リージョンにあることが必要です。
Amazon S3 バケットにコピーされたスナップショットは暗号化されますが、スナップショットを保存する Amazon S3 バケットへのアクセス権を他の人に付与しないことを強くお勧めします。
データ階層化を使用するクラスターでは、Amazon S3 へのスナップショットのエクスポートはサポートされていません。詳細については、「データ階層化」を参照してください。
スナップショットをAmazon S3 バケットにエクスポートする前に、スナップショットと同じ AWS リージョンに Amazon S3 バケットが必要です。 バケットへのアクセスを MemoryDB に許可します。最初の 2 つのステップで、これを行う方法を示します。
警告
以下のシナリオでは、望まない方法でデータが公開される可能性があります。
-
他のユーザーがスナップショットのエクスポート先の Amazon S3 バケットにアクセスできる場合。
スナップショットへのアクセスを制御するために、データへのアクセスを希望するユーザーにのみ Amazon S3 バケットへのアクセスを許可します。Amazon S3 バケットへのアクセスの管理については、Amazon S3 デベロッパーガイドの「アクセスの管理」を参照してください。
-
他のユーザーが CopySnapshot API を使用するためのアクセス許可を持っている。
CopySnapshot
API オペレーションの使用権限を持つユーザーまたはグループは、独自の Amazon S3 バケットを作成し、このバケットにスナップショットをコピーできます。 スナップショットへのアクセスを制御するには、AWS Identity and Access Management (IAM) ポリシーを使用して、だれが CopySnapshot
API を使用できるかを管理します。 IAM を使用して MemoryDB API オペレーションの使用を制御する方法については、MemoryDB ユーザーガイドの「MemoryDB でのアイデンティティとアクセス権の管理」を参照してください。
トピック
ステップ 1: Amazon S3 バケットを作成する
以下の手順では、Amazon S3 コンソールを使用して、MemoryDBのスナップショットをエクスポートおよび保存する Amazon S3 バケットを作成します。
Amazon S3 バケットを作成するには
-
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
バケットの作成 を選択します。
-
バケットを作成する - バケット名と地域を選択する で、以下の操作を実行します。
-
バケット名に Amazon S3 バケットの名前を入力します。
-
リージョン リストから、Amazon S3 バケットの AWS リージョンを選択します。この AWS リージョンは、エクスポートする MemoryDB スナップショットと同じ AWS リージョンである必要があります。
-
作成を選択します。
-
Amazon S3 バケットの作成の詳細については、Amazon Simple Storage Service ユーザーガイドの「バケットの作成」を参照してください。
ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する
2019 年 3 月 20 日より前に導入された AWS リージョンはデフォルトで有効になっています。これらの AWS リージョンでは、すぐに使用を開始できます。2019 年 3 月 20 日以降に導入されたリージョンはデフォルトでは無効になっています。Managing AWS regions で説明されているように、これらのリージョンを使用する前に、それらを有効にするか、オプトインする必要があります。
MemoryDBにリージョンの S3 バケットへのアクセス権を AWS に付与する
AWS リージョンの Amazon S3 バケットで適切なアクセス許可を作成するには、以下の手順を実行します。
MemoryDBにS3 バケットへのアクセス権を付与するには
-
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
スナップショットのコピー先とする Amazon S3 バケットの名前を選択します。これは、「ステップ 1: Amazon S3 バケットを作成する」で作成した S3 バケットとなります。
-
[許可] タブを選択し、[許可]で[バケットポリシー]を選択します。
-
ポリシーを更新して、オペレーションの実行に必要なアクセス許可を MemoryDB に付与します。
[ "Service" : "
をregion-full-name
.memorydb-snapshot.amazonaws.com" ]Principal
に追加します。スナップショットを Amazon S3 バケットにエクスポートするために必要な、以下のアクセス許可を追加します。
"s3:PutObject"
"s3:GetObject"
"s3:ListBucket"
"s3:GetBucketAcl"
"s3:ListMultipartUploadParts"
"s3:ListBucketMultipartUploads"
次に、更新されたポリシーの例を示します。
{ "Version": "2012-10-17", "Id": "Policy15397346", "Statement": [ { "Sid": "Stmt15399483", "Effect": "Allow", "Principal": { "Service": "
aws-region
.memorydb-snapshot.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:GetBucketAcl", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::example-bucket", "arn:aws:s3:::example-bucket/*" ] } ] }
ステップ 3: MemoryDB スナップショットをエクスポートする
これで、S3 バケットを作成し、そのバケットにアクセスするためのアクセス許可を MemoryDB に付与しました。S3 オブジェクト所有権を ACL 対応に変更します (バケット所有者優先)。次は、MemoryDB コンソール、AWS CLI、または MemoryDB API を使用して、スナップショットをそのバケットにエクスポートできます。以下では、次の S3 固有の IAM アクセス許可を持っていることを前提としています。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" }] }
以下のプロセスでは、MemoryDBコンソールを使用してスナップショットをAmazon S3バケットにエクスポートし、MemoryDBの外部からアクセスできるようにします。Amazon S3バケットは、MemoryDBスナップショットと同じAWSリージョンでなければなりません。
Amazon S3 バケットへの MemoryDB スナップショットのエクスポート
-
AWS Management Console にサインインして、https://console.aws.amazon.com/memorydb/
で MemoryDB のコンソールを開きます。 -
スナップショットのリストを表示するには、左のナビゲーションペインから [スナップショット] を選択します。
-
スナップショットのリストで、エクスポートしたいスナップショットの左側にあるラジオボタンを選択します。
-
コピー を選択します。
-
バックアップのコピーを作成しますかダイアログボックスで、以下の設定を指定します。
-
[新しいスナップショット名] ボックスに新しいスナップショットの名前を入力します。
この名前は 1~1,000 文字で、UTF-8 エンコードが可能である必要があります。
MemoryDB は、ここで入力した値に、シャード識別子と
.rdb
を追加します。例えば、「my-exported-snapshot
」と入力した場合、MemoryDB がmy-exported-snapshot-0001.rdb
を作成します。 -
[ターゲットS3の場所] リストから、バックアップをコピーする Amazon S3 バケット「ステップ 1: Amazon S3 バケットを作成する」で作成したバケットの名前を選択します。
エクスポートプロセスが成功するためには、[ターゲットS3の場所] は、次のアクセス許可を持つバックアップの AWS リージョン内の Amazon S3 バケットである必要があります。
オブジェクトアクセス –読み取りおよび 書き込み。
アクセス許可 – 読み取り
詳細については、「ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する」を参照してください。
-
コピー を選択します。
-
注記
S3 バケットにMemoryDBがスナップショットをエクスポートするためのアクセス許可がない場合、以下のいずれかのエラーメッセージを受け取ります。「ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する」に戻り、示されたアクセス権限を追加して、スナップショットのエクスポートを再試行してください。
-
MemoryDB は S3 バケットで読み取り権限 % を付与されていません。
解決策: バケットで読み取りのアクセス権限を追加します。
-
MemoryDB は S3 バケットで % の WRITE 権限を付与されていません。
解決策: バケットで書き込みのアクセス権限を追加します。
-
MemoryDB は S3 バケットで % の READ_ACP 権限を付与されていません。
解決策: バケットで読み取りのアクセス権限を追加します。
別の AWS リージョンにスナップショットをコピーする場合は、Amazon S3 を使用してコピーします。 詳細については、Amazon Simple Storage Service ユーザーガイドの「オブジェクトのコピー」を参照してください。
以下のパラメータを指定して copy-snapshot
CLI オペレーションを使用することで、Amazon S3 バケットにスナップショットをエクスポートします。
パラメータ
-
--source-snapshot-name
– コピーするスナップショットの名前。 -
--target-snapshot-name
– スナップショットのコピーの名前。この名前は 1~1,000 文字で、UTF-8 エンコードが可能である必要があります。
MemoryDB は、ここで入力した値に、シャード識別子と
.rdb
を追加します。例えば、「my-exported-snapshot
」と入力した場合、MemoryDB がmy-exported-snapshot-0001.rdb
を作成します。 -
--target-bucket
– スナップショットをエクスポートするAmazon S3バケットの名前。スナップショットのコピーは、指定したバケットで作成されます。エクスポートプロセスが成功するためには、
--target-bucket
は、次のアクセス許可を持つスナップショットの AWS リージョン内の Amazon S3 バケットである必要があります。オブジェクトアクセス – 読み取り および 書き込み。
アクセス許可 – 読み取り
詳細については、「ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する」を参照してください。
以下のオペレーションは、my-s3-bucket にスナップショットをコピーします。
Linux、macOS、Unix の場合:
aws memorydb copy-snapshot \ --source-snapshot-name
automatic.my-primary-2021-06-27-03-15
\ --target-snapshot-namemy-exported-snapshot
\ --target-bucketmy-s3-bucket
Windows の場合:
aws memorydb copy-snapshot ^ --source-snapshot-name
automatic.my-primary-2021-06-27-03-15
^ --target-snapshot-namemy-exported-snapshot
^ --target-bucketmy-s3-bucket
注記
S3 バケットにMemoryDBがスナップショットをエクスポートするためのアクセス許可がない場合、以下のいずれかのエラーメッセージを受け取ります。「ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する」に戻り、示されたアクセス権限を追加して、スナップショットのエクスポートを再試行してください。
-
MemoryDB は S3 バケットで読み取り権限 % を付与されていません。
解決策: バケットで読み取りのアクセス権限を追加します。
-
MemoryDB は S3 バケットで % の WRITE 権限を付与されていません。
解決策: バケットで書き込みのアクセス権限を追加します。
-
MemoryDB は S3 バケットで % の READ_ACP 権限を付与されていません。
解決策: バケットで読み取りのアクセス権限を追加します。
詳細については、AWS CLI コマンドリファレンスの「copy-snapshot
」を参照してください。
別の AWS リージョンにスナップショットをコピーする場合は、Amazon S3 を使用してコピーします。 詳細については、Amazon Simple Storage Service ユーザーガイドの「オブジェクトのコピー」を参照してください。
以下のパラメータを指定して CopySnapshot
API オペレーションを使用し、スナップショットを Amazon S3 バケットにエクスポートします。
パラメータ
-
SourceSnapshotName
– コピーするスナップショットの名前。 -
TargetSnapshotName
– スナップショットのコピーの名前。この名前は 1~1,000 文字で、UTF-8 エンコードが可能である必要があります。
MemoryDB は、ここで入力した値に、シャード識別子と
.rdb
を追加します。例えば、「my-exported-snapshot
」と入力した場合、my-exported-snapshot-0001.rdb
が返されます。 -
TargetBucket
– スナップショットをエクスポートするAmazon S3バケットの名前。スナップショットのコピーは、指定したバケットで作成されます。エクスポートプロセスが成功するためには、
TargetBucket
は、次のアクセス許可を持つスナップショットの AWS リージョン内の Amazon S3 バケットである必要があります。オブジェクトアクセス – 読み取り および 書き込み。
アクセス許可 – 読み取り
詳細については、「ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する」を参照してください。
以下の例では、Amazon S3 バケット my-s3-bucket
に自動スナップショットのコピーを作成します。
https://memory-db.us-east-1.amazonaws.com/ ?Action=CopySnapshot &SourceSnapshotName=automatic.my-primary-2021-06-27-03-15 &TargetBucket=my-s3-bucket &TargetSnapshotName=my-snapshot-copy &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20210801T220302Z &Version=2021-01-01 &X-Amz-Algorithm=Amazon4-HMAC-SHA256 &X-Amz-Date=20210801T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20210801T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>
注記
S3 バケットにMemoryDBがスナップショットをエクスポートするためのアクセス許可がない場合、以下のいずれかのエラーメッセージを受け取ります。「ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する」に戻り、示されたアクセス権限を追加して、スナップショットのエクスポートを再試行してください。
-
MemoryDB は S3 バケットで読み取り権限 % を付与されていません。
解決策: バケットで読み取りのアクセス権限を追加します。
-
MemoryDB は S3 バケットで % の WRITE 権限を付与されていません。
解決策: バケットで書き込みのアクセス権限を追加します。
-
MemoryDB は S3 バケットで % の READ_ACP 権限を付与されていません。
解決策: バケットで読み取りのアクセス権限を追加します。
詳細については、「スナップショットのコピー」を参照してください。
別の AWS リージョンにスナップショットをコピーする場合は、Amazon S3 のコピーを使用して、エクスポートされたスナップショットを別の AWS リージョンの Amazon S3 バケットにコピーします。 詳細については、Amazon Simple Storage Service ユーザーガイドの「オブジェクトのコピー」を参照してください。