

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

# のスナップショットをエクスポートする
<a name="snapshots-exporting"></a>

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

スナップショットのエクスポートは、別の AWS リージョンでクラスターを起動する必要がある場合に役立ちます。データを 1 つの AWS リージョンにエクスポートし、.rdb ファイルを新しい AWS リージョンにコピーしてから、その .rdb ファイルを使用して新しいクラスターをシードできます。新しいクラスターが使用中に入力されるのを待つ必要はありません。新しいクラスターのシードについては、「[外部で作成されたスナップショットによる新しいクラスターのシード](snapshots-seeding-redis.md)」を参照してください。クラスターのデータをエクスポートする別の理由は、オフライン処理のために .rdb ファイルを使用するためです。

**重要**  
 MemoryDB スナップショットとコピー先の Amazon S3 バケットは、同じ AWS リージョンにある必要があります。  
Amazon S3 バケットにコピーされたスナップショットは暗号化されますが、スナップショットを保存する Amazon S3 バケットへのアクセス権を他の人に付与しないことを強くお勧めします。
データ階層化を使用するクラスターでは、Amazon S3 へのスナップショットのエクスポートはサポートされていません。詳細については、「[データ階層化](data-tiering.md)」を参照してください。

スナップショットを Amazon S3 バケットにエクスポートする前に、スナップショットと同じ AWS リージョンに Amazon S3 バケットが必要です。バケットへのアクセスを MemoryDB に許可します。最初の 2 つのステップで、これを行う方法を示します。

**警告**  
以下のシナリオでは、望まない方法でデータが公開される可能性があります。  
**‭‬他のユーザーがスナップショットのエクスポート先の Amazon S3 バケットにアクセスできる場合。‭‬‬‬‬‬‬‬‬‬**  
スナップショットへのアクセスを制御するために、データへのアクセスを希望するユーザーにのみ Amazon S3 バケットへのアクセスを許可します。Amazon S3 バケットへのアクセスの管理については、*Amazon S3 デベロッパーガイド*の「[アクセスの管理](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html)」を参照してください。
**他のユーザーが CopySnapshot API を使用するためのアクセス許可を持っている。**  
`CopySnapshot` API オペレーションの使用権限を持つユーザーまたはグループは、独自の Amazon S3 バケットを作成し、このバケットにスナップショットをコピーできます。‬‬‬‬ スナップショットへのアクセスを制御するには、 AWS Identity and Access Management (IAM) ポリシーを使用して、`CopySnapshot`API を使用できるユーザーを制御します。IAM を使用して MemoryDB API オペレーションの使用を制御する方法については、MemoryDB ユーザーガイドの「[MemoryDB でのアイデンティティとアクセス権の管理](iam.md)」を参照してください。

**Topics**
+ [ステップ 1: Amazon S3 バケットを作成する](#snapshots-exporting-create-s3-bucket)
+ [ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する](#snapshots-exporting-grant-access)
+ [ステップ 3: MemoryDB スナップショットをエクスポートする](#snapshots-exporting-procedures)

## ステップ 1: Amazon S3 バケットを作成する
<a name="snapshots-exporting-create-s3-bucket"></a>

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

**Amazon S3 バケットを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

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

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

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

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

   1. **[作成]** を選択します。

Amazon S3 バケットの作成の詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。

## ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する
<a name="snapshots-exporting-grant-access"></a>

AWS 2019 年 3 月 20 日より前に導入されたリージョンは、デフォルトで有効になっています。これらの AWS リージョンですぐに作業を開始できます。2019 年 3 月 20 日以降に導入されたリージョンはデフォルトでは無効になっています。[Managing AWS regions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) で説明されているように、これらのリージョンを使用する前に、それらを有効にするか、オプトインする必要があります。

### AWS リージョンの S3 バケットへのアクセス権を MemoryDB に付与する
<a name="snapshots-exporting-region"></a>

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

**MemoryDBにS3 バケットへのアクセス権を付与するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. スナップショットのコピー先とする Amazon S3 バケットの名前を選択します。これは、「[ステップ 1: Amazon S3 バケットを作成する](#snapshots-exporting-create-s3-bucket)」で作成した S3 バケットとなります。

1. **[許可]** タブを選択し、**[許可]**で**[バケットポリシー]**を選択します。

1. ポリシーを更新して、オペレーションの実行に必要なアクセス許可を MemoryDB に付与します。
   + `Principal` に `[ "Service" : "region-full-name.memorydb-snapshot.amazonaws.com" ]` を追加します。
   + スナップショットを Amazon S3 バケットにエクスポートするために必要な、以下のアクセス許可を追加します。
     + `"s3:PutObject"`
     + `"s3:GetObject"`
     + `"s3:ListBucket"`
     + `"s3:GetBucketAcl"`
     + `"s3:ListMultipartUploadParts"`
     + `"s3:ListBucketMultipartUploads"`

   次に、更新されたポリシーの例を示します。

------
#### [ JSON ]

****  

   ```
   {
       "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:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

------

## ステップ 3: MemoryDB スナップショットをエクスポートする
<a name="snapshots-exporting-procedures"></a>

これで、S3 バケットを作成し、そのバケットにアクセスするためのアクセス許可を MemoryDB に付与しました。S3 オブジェクト所有権を ACL 対応に変更します (バケット所有者優先)。次に、MemoryDB AWS コンソール、 CLI、または MemoryDB API を使用してスナップショットをエクスポートできます。以下では、次の S3 固有の IAM アクセス許可を持っていることを前提としています。

------
#### [ JSON ]

****  

```
{
	"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 スナップショットのエクスポート (コンソール)
<a name="snapshots-exporting-CON"></a>

以下のプロセスでは、MemoryDBコンソールを使用してスナップショットをAmazon S3バケットにエクスポートし、MemoryDBの外部からアクセスできるようにします。Amazon S3 バケットは、MemoryDB スナップショットと同じ AWS リージョンにある必要があります。

**Amazon S3 バケットへの MemoryDB スナップショットのエクスポート**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/) で MemoryDB コンソールを開きます。

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

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

1. **コピー** を選択します。

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

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

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

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

   1. **[ターゲットS3の場所]** リストから、バックアップをコピーする Amazon S3 バケット「[ステップ 1: Amazon S3 バケットを作成する](#snapshots-exporting-create-s3-bucket)」で作成したバケットの名前を選択します。

      **ターゲット S3 の場所**は、エクスポートプロセスを成功させるために、次のアクセス許可を持つスナップショットの AWS リージョンの Amazon S3 バケットである必要があります。
      + オブジェクトアクセス – **読み取り** および **書き込み**。
      + アクセス許可 – **読み取り**

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

   1. **コピー** を選択します。

**注記**  
S3 バケットにMemoryDBがスナップショットをエクスポートするためのアクセス許可がない場合、以下のいずれかのエラーメッセージを受け取ります。「[ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する](#snapshots-exporting-grant-access)」に戻り、示されたアクセス権限を追加して、スナップショットのエクスポートを再試行してください。  
MemoryDB は S3 バケットで読み取り権限 % を付与されていません。  
**解決策:** バケットで読み取りのアクセス権限を追加します。
MemoryDB は S3 バケットで % の WRITE 権限を付与されていません。  
**解決策:** バケットで書き込みのアクセス権限を追加します。
MemoryDB は S3 バケットで % の READ\$1ACP 権限を付与されていません。  
**解決策:** バケットで**読み取り**のアクセス権限を追加します。

スナップショットを別の AWS リージョンにコピーする場合は、Amazon S3 を使用してスナップショットをコピーします。詳細については、Amazon Simple Storage Service ユーザーガイドの「[オブジェクトのコピー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html)」を参照してください。

### MemoryDB スナップショットのエクスポート (AWS CLI)
<a name="snapshots-exporting-CLI"></a>

以下のパラメータを指定して ‭`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バケットの名前。スナップショットのコピーは、指定したバケットで作成されます。

  エクスポートプロセスを成功させるには、 がスナップショットの AWS リージョンにある Amazon S3 バケットで、次のアクセス許可を持っている`--target-bucket`必要があります。
  + オブジェクトアクセス – **読み取り** および **書き込み**。
  + アクセス許可 – **読み取り**

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

以下のオペレーションは、amzn-s3-demo-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 amzn-s3-demo-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 amzn-s3-demo-bucket
```

**注記**  
S3 バケットにMemoryDBがスナップショットをエクスポートするためのアクセス許可がない場合、以下のいずれかのエラーメッセージを受け取ります。「[ステップ 2: Amazon S3 バケットへのアクセス権を MemoryDB に付与する](#snapshots-exporting-grant-access)」に戻り、示されたアクセス権限を追加して、スナップショットのエクスポートを再試行してください。  
MemoryDB は S3 バケットで読み取り権限 % を付与されていません。  
**解決策:** バケットで読み取りのアクセス権限を追加します。
MemoryDB は S3 バケットで % の WRITE 権限を付与されていません。  
**解決策:** バケットで書き込みのアクセス権限を追加します。
MemoryDB は S3 バケットで % の READ\$1ACP 権限を付与されていません。  
**解決策:** バケットで**読み取り**のアクセス権限を追加します。

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

スナップショットを別の AWS リージョンにコピーする場合は、Amazon S3 コピーを使用します。詳細については、Amazon Simple Storage Service ユーザーガイドの「[オブジェクトのコピー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html)」を参照してください。

### MemoryDB スナップショットをエクスポートする (MemoryDB API)
<a name="snapshots-exporting-API"></a>

以下のパラメータを指定して ‭`CopySnapshot`‬ API オペレーションを使用し、スナップショットを Amazon S3 バケットにエクスポートします。‬‬‬‬

**パラメータ**
+ `SourceSnapshotName` – コピーするスナップショットの名前。‬‬‬‬
+ `TargetSnapshotName` – スナップショットのコピーの名前。

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

  MemoryDB は、ここで入力した値に、シャード識別子と `.rdb` を追加します。例えば、「`my-exported-snapshot`」と入力した場合、`my-exported-snapshot-0001.rdb` が返されます。
+ `TargetBucket` – スナップショットをエクスポートするAmazon S3バケットの名前。スナップショットのコピーは、指定したバケットで作成されます。

  は、エクスポートプロセスを成功させるために、次のアクセス許可を持つスナップショットの AWS リージョンの Amazon S3 バケット`TargetBucket`である必要があります。
  + オブジェクトアクセス – **読み取り** および **書き込み**。
  + アクセス許可 – **読み取り**

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

以下の例では、Amazon S3 バケット ‭`amzn-s3-demo-bucket`‬ に自動スナップショットのコピーを作成します。‬‬‬‬

**Example**  

```
https://memory-db.us-east-1.amazonaws.com/
    ?Action=CopySnapshot
    &SourceSnapshotName=automatic.my-primary-2021-06-27-03-15
    &TargetBucket=&example-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 に付与する](#snapshots-exporting-grant-access)」に戻り、示されたアクセス権限を追加して、スナップショットのエクスポートを再試行してください。  
MemoryDB は S3 バケットで読み取り権限 % を付与されていません。  
**解決策:** バケットで読み取りのアクセス権限を追加します。
MemoryDB は S3 バケットで % の WRITE 権限を付与されていません。  
**解決策:** バケットで書き込みのアクセス権限を追加します。
MemoryDB は S3 バケットで % の READ\$1ACP 権限を付与されていません。  
**解決策:** バケットで**読み取り**のアクセス権限を追加します。

詳細については、「[スナップショットのコピー](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CopySnapshot.html)」を参照してください。

スナップショットを別の AWS リージョンにコピーする場合は、Amazon S3 コピーを使用して、エクスポートされたスナップショットを別の AWS リージョンの Amazon S3 バケットにコピーします。詳細については、Amazon Simple Storage Service ユーザーガイドの「[オブジェクトのコピー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html)」を参照してください。