のスナップショットをエクスポートする - Amazon MemoryDB for Redis

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

のスナップショットをエクスポートする

MemoryDB for Redis は、MemoryDB スナップショットのAmazon Simple Storage Service (Amazon S3) バケットへのエクスポートをサポートしています。これにより、MemoryDB の外部からスナップショットにアクセスできます。エクスポートされた MemoryDB スナップショットはオープンソース Redis に完全に準拠しており、適切な Redis バージョンまたはツールで読み込むことができます。MemoryDB コンソール、 AWS CLI、または MemoryDB API を使用してスナップショットをエクスポートできます。

スナップショットをエクスポートすると、別のリージョンでクラスターを起動する必要がある場合に役立ちます。 AWS AWS あるリージョンでデータをエクスポートし、.rdb ファイルを新しいリージョンにコピーし、その.rdb AWS ファイルを使用して新しいクラスターをシードできます。新しいクラスターにデータが追加されるのを待つ必要はありません。新しいクラスターのシードについては、「外部で作成されたスナップショットによる新しいクラスターのシード」を参照してください。クラスターのデータをエクスポートする別の理由は、オフライン処理のために .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) ポリシーを使用して API を使用できるユーザーを制御しますCopySnapshot。IAM を使用して MemoryDB API オペレーションの使用を制御する方法については、MemoryDB ユーザーガイドの「MemoryDB for Redis でのアイデンティティとアクセス権の管理」を参照してください。

ステップ 1: Amazon S3 バケットを作成する

以下の手順では、Amazon S3 コンソールを使用して、MemoryDBのスナップショッをエクスポートおよび保存する Amazon S3 バケットを作成します。

Amazon S3 バケットを作成するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。

  2. バケットの作成 を選択します。

  3. バケットを作成する - バケット名と地域を選択する で、以下の操作を実行します。

    1. バケット名に Amazon S3 バケットの名前を入力します。

    2. リージョンリストから、Amazon S3 AWS バケットのリージョンを選択します。 AWS このリージョンは、エクスポートする MemoryDB AWS スナップショットと同じリージョンである必要があります。

    3. 作成を選択します。

Amazon S3 バケットの作成の詳細については、Amazon Simple Storage Service ユーザーガイドの「バケットの作成」を参照してください。

ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する

AWS 2019 年 3 月 20 日より前に導入されたリージョンは、デフォルトで有効になっています。 AWS これらのリージョンではすぐに作業を開始できます。2019 年 3 月 20 日以降に導入されたリージョンはデフォルトでは無効になっています。Managing AWS regions ‬で説明されているように、これらのリージョンを使用する前に、それらを有効にするか、オプトインする必要があります。

MemoryDB にリージョン内の S3 バケットへのアクセス権を付与します。 AWS

AWS リージョン内の Amazon S3 バケットに適切な権限を作成するには、次の手順を実行します。

MemoryDBにS3 バケットへのアクセス権を付与するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。

  2. スナップショットのコピー先とする Amazon S3 バケットの名前を選択します。これは、「ステップ 1: Amazon S3 バケットを作成する」で作成した S3 バケットとなります。

  3. 許可タブを選択し、許可バケットポリシーを選択します。

  4. ポリシーを更新して、オペレーションの実行に必要なアクセス許可を 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 スナップショットのエクスポート
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/memorydb/ にある MemoryDB for Redis コンソールを開きます。

  2. バックアップのリストを表示するには、左のナビゲーションペインからバックアップを選択します。

  3. スナップショットのリストで、エクスポートしたいスナップショットの左側にあるラジボタンを選択します。

  4. コピー を選択します。

  5. バックアップのコピーを作成しますかダイアログボックスで、以下の設定を指定します。

    1. スナップショット名ボックスにスナップショットの名前を入力します。

      この名前は 1~1,000 文字で、UTF-8 エンコードが可能である必要があります。

      MemoryDBは、ここで入力した値に、シャードス識別子と .rdb を追加します。たとえば、「‭my-exported-snapshot‬」と入力した場合、 MemoryDBはmy-exported-snapshot-0001.rdbを作成します。‬‬‬‬

    2. ターゲットS3の場所 リストから、バックアップをコピーする Amazon S3 バケット「ステップ 1: Amazon S3 バケットを作成する」で作成したバケットの名前を選択します。

      エクスポートプロセスを成功させるには、ターゲット S3 AWS ロケーションがスナップショットのリージョン内の Amazon S3 バケットで、次の権限が必要です。

      • オブジェクトアクセス – 読み取り および 書き込み

      • アクセス許可 – 読み取り

      詳細については、「ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する」を参照してください。

    3. コピー を選択します。

注記

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-name my-exported-snapshot \ --target-bucket my-s3-bucket

Windows の場合:

aws memorydb copy-snapshot ^ --source-snapshot-name automatic.my-primary-2021-06-27-03-15 ^ --target-snapshot-name my-exported-snapshot ^ --target-bucket my-s3-bucket
注記

S3 バケットにMemoryDBがスナップショットをエクスポートするためのアクセス許可がない場合、以下のいずれかのエラーメッセージを受け取ります。「ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する」に戻り、示されたアクセス権限を追加して、スナップショットのエクスポートを再試行してください。

  • MemoryDB は S3 バケットで読み取り権限 % を付与されていません。

    解決策: バケットで読み取りのアクセス権限を追加します。

  • MemoryDB は S3 バケットで % の WRITE 権限を付与されていません。

    解決策: バケットで書き込みのアクセス権限を追加します。

  • MemoryDB は S3 バケットで % の READ_ACP 権限を付与されていません。

    解決策: バケットで読み取りのアクセス権限を追加します。

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

AWS スナップショットを別のリージョンにコピーする場合は、Amazon S3 copy を使用してください。詳細については、‭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 権限を付与されていません。

    解決策: バケットで読み取りのアクセス権限を追加します。

詳細については、「」を参照してくださいCopySnapshot

AWS スナップショットを別のリージョンにコピーする場合は、Amazon S3 コピーを使用して、 AWS エクスポートしたスナップショットを別のリージョンの Amazon S3 バケットにコピーします。詳細については、Amazon Simple Storage Service ユーザーガイド‭‬の「‭オブジェクトのコピー‭‬」を参照してください。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬