バックアップのエクスポート - Redis 用 Amazon ElastiCache

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

バックアップのエクスポート

Amazon ElastiCache では、ElastiCache バックアップの Amazon Simple Storage Service (Amazon S3) バケットへのエクスポートがサポートされています。これにより、ElastiCache 外部からバックアップにアクセスできます。ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してバックアップをエクスポートできます。

バックアップのエクスポートは、他の AWS リージョンのクラスターを起動する必要がある場合に便利です。1 つの AWS リージョンでデータをエクスポートし、.rdb ファイルを新しい AWS リージョンにコピーして、その .rdb ファイルを使用することにより、新しいクラスターの入力を待つのではなく、新しいクラスターをシードできます。新しいクラスターのシードについては、「外部で作成されたバックアップによる新しいクラスターのシード」を参照してください。クラスターのデータをエクスポートする別の理由は、オフライン処理のために .rdb ファイルを使用するためです。

重要

ElastiCache バックアップと、そのコピー先の Amazon S3 バケットは、同じ AWS リージョンにあることが必要です。

Amazon S3 バケットにコピーされたバックアップは暗号化されますが、バックアップを保存する Amazon S3 バケットへのアクセス権を他の人に付与しないことを強くお勧めします。

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

警告

以下のシナリオでは、望まない方法でデータが公開される可能性があります。

  • 他のユーザーがバックアップのエクスポート先の Amazon S3 バケットにアクセスできる。

    バックアップへのアクセスを制御するために、データにアクセスする必要があるユーザーにのみ Amazon S3 バケットへのアクセスを許可します。Amazon S3 バケットへのアクセスの管理については、 https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html 開発者ガイドの「アクセスAmazon S3の管理」を参照してください。

  • 他のユーザーが CopySnapshot API を使用するためのアクセス許可を持っている。

    CopySnapshot API オペレーションを使用するためのアクセス許可のあるユーザーまたはグループは、独自の Amazon S3 バケットを作成し、このバケットにバックアップをコピーできます。バックアップへのアクセスを制御するには、AWS Identity and Access Management (IAM) ポリシーにより、だれが CopySnapshot API を使用できるかを管理します。IAM を使用して ElastiCache API オペレーションの使用を制御する方法の詳細については、 Amazon ElastiCache での Identity and Access Management ユーザーガイドElastiCacheの「」を参照してください。

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

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

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

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

  2. [Create Bucket] を選択します。

  3. [Create a Bucket - Select a Bucket Name and Region] で、以下の操作を実行します。

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

      Amazon S3 バケットの名前は DNS に準拠している必要があります。それ以外の場合、ElastiCache はバックアップファイルにアクセスできません。DNS 準拠のルールでは、次のようになります:

      • 名前は、3 ~ 63 文字以内にする必要があります。

      • また、名前は、1 つのラベルか、または複数のラベルをピリオド (.) でつなげて構成します。各ラベルには次の規則が適用されます。

        • 先頭の文字には小文字の英文字または数字を使います。

        • 末尾の文字には小文字の英文字または数字を使います。

        • 小文字、数字、ダッシュのみを含める必要があります。

      • 名前を IP アドレスの形式にすることはできません (例: 192.0.2.0)。

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

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

Amazon S3 バケットの作成の詳細については、の「バケットhttps://docs.aws.amazon.com/AmazonS3/latest/user-guide/CreatingaBucket.htmlの作成」を参照してくださいAmazon Simple Storage Service コンソールユーザーガイド

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

ElastiCache がスナップショットを Amazon S3 バケットにコピーできるようにするには、バケットへのアクセス権を付与します。ElastiCache バケットへのアクセス権は、バケットがデフォルトの AWS リージョンにあるか、オプトイン AWS リージョンにあるかによって、異なる方法で Amazon S3 に付与します。

2019 年 3 月 20 日より前に導入された AWS リージョンはデフォルトで有効になっています。これらの AWS リージョンでは、すぐに使用を開始できます。2019 年 3 月 20 日以降に導入された アジアパシフィック (香港) や 中東 (バーレーン) などのリージョンはデフォルトでは無効になっています。の「AWS リージョンの管理」で説明されているように、これらのリージョンを使用する前に、これらのリージョンを有効にするか、オプトインする必要がありますAWS General Reference

AWS リージョンに応じてアプローチを選択します。

デフォルトのリージョンの S3 バケットElastiCacheへのアクセス権を に付与する

2019 年 3 月 20 日より前に導入された AWS リージョンはデフォルトで有効になっています。これらの AWS リージョンでは、すぐに使用を開始できます。2019 年 3 月 20 日以降に導入された アジアパシフィック (香港) や 中東 (バーレーン) などのリージョンはデフォルトでは無効になっています。の「AWS リージョンの管理」で説明されているように、これらのリージョンを使用する前に、これらのリージョンを有効にするか、オプトインする必要がありますAWS General Reference

デフォルトで有効になっている AWS リージョンの Amazon S3 バケットで適切なアクセス許可を作成するには、以下の手順を実行します。

警告

Amazon S3 バケットにコピーされるバックアップは暗号化されますが、Amazon S3 バケットへのアクセス権を持つユーザーなら、誰でもデータにアクセスできます。したがって、この Amazon S3 バケットへの不正アクセスを防ぐよう IAM ポリシーを設定することを強くお勧めします。詳細については、 https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html 開発者ガイドの「アクセスAmazon S3の管理」を参照してください。

デフォルトの AWS リージョンの S3 バケットへのアクセス権を ElastiCache に付与するには

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

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

  3. バケットの AWS リージョンが ElastiCache バックアップの AWS リージョンと同じであることを確認します。同じでない場合は、「ステップ 1: Amazon S3 バケットを作成する」に戻り、バックアップするクラスターと同じ AWS リージョンに新しいバケットを作成します。

  4. [Permissions] タブを選択し、[Access Control List] を選択します。次に、[Access for other AWS accounts] で [Add grantee] を選択します。

  5. [] ボックスに、以下に示すように AWS リージョンの正規 ID を追加します。

    • AWS GovCloud (US-West) リージョン:

      40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6
      重要

      バックアップは AWS GovCloud (US) 内の S3 バケットにエクスポートする必要があります。

    • その他すべての AWS リージョンは、デフォルトで有効になっています。

      540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
  6. 次のオプションで [はい] を選択して、バケットのアクセス許可を設定します。

    • オブジェクトのリスト化

    • オブジェクトの書き込み

    • バケットの読み取りアクセス権限

  7. [Save] を選択します。

これにより、Amazon S3 バケットでは、ElastiCache コンソール、ElastiCache、または AWS CLI API を使用して ElastiCache バックアップをエクスポートできるようになりました。

オプトインリージョンで S3 バケットへのアクセス権を ElastiCache に付与する

2019 年 3 月 20 日より前に導入された AWS リージョンはデフォルトで有効になっています。これらの AWS リージョンでは、すぐに使用を開始できます。2019 年 3 月 20 日以降に導入された アジアパシフィック (香港) や 中東 (バーレーン) などのリージョンはデフォルトでは無効になっています。の「AWS リージョンの管理」で説明されているように、これらのリージョンを使用する前に、これらのリージョンを有効にするか、オプトインする必要がありますAWS General Reference

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

オプトイン AWS リージョンの S3 バケットへのアクセス権を ElastiCache に付与するには

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

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

  3. [Permissions] タブを選択し、[Permissions] で [Bucket policy] を選択します。

  4. ポリシーを更新して、オペレーションの実行に必要なアクセス許可を ElastiCache に付与します。

    • [ "Service" : "region-full-name.elasticache-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-opt-in-region.elasticache-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: ElastiCache バックアップをエクスポートする

これで、S3 バケットを作成し、そのバケットにアクセスするためのアクセス許可を ElastiCache に付与しました。次は、ElastiCache コンソール、AWS CLI、または ElastiCache 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:::*" }] }

ElastiCache バックアップのエクスポート (コンソール)

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

ElastiCache バックアップを Amazon S3 バケットにエクスポートするには

  1. AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/elasticache/ にある ElastiCache コンソールを開きます。

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

  3. バックアップのリストから、エクスポートするバックアップの名前の左にあるチェックボックスをオンにします。

  4. [Copy (コピー)] を選択します。

  5. [Create Copy of the Backup? (バックアップのコピーを作成しますか)] ダイアログボックスで、以下の設定を指定します。

    1. [New backup name] ボックスに、新しいバックアップの名前を入力します。

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

      ElastiCache は、ここで入力した値に、インスタンス識別子と .rdb を追加します。たとえば、「my-exported-backup」と入力した場合、ElastiCache によって my-exported-backup-0001.rdb が作成されます。

    2. [Target S3 Location] リストから、バックアップをコピーする Amazon S3 バケット (「ステップ 1: Amazon S3 バケットを作成する」で作成したバケット) の名前を選択します。

      エクスポートプロセスが成功するためには、[Target S3 Location (S3 ターゲット場所)] は、バックアップの AWS リージョン内で以下のアクセス許可のある Amazon S3 バケットであることが必要です。

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

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

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

    3. [Copy (コピー)] を選択します。

注記

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

  • ElastiCache has not been granted READ permissions %s on the S3 Bucket.

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

  • ElastiCache has not been granted WRITE permissions %s on the S3 Bucket.

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

  • ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket.

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

別の AWS リージョンにバックアップをコピーする場合は、Amazon S3 を使用してコピーします。詳細については、の「オブジェクトhttps://docs.aws.amazon.com/AmazonS3/latest/user-guide/MakingaCopyofanObject.htmlのコピー」を参照してくださいAmazon Simple Storage Service コンソールユーザーガイド

ElastiCache バックアップのエクスポート (AWS CLI)

以下のパラメーターを指定して Amazon S3 CLI オペレーションを使用することで、copy-snapshot バケットにバックアップをエクスポートします。

Parameters

  • --source-snapshot-name – コピーするバックアップの名前。

  • --target-snapshot-name – バックアップのコピーの名前。

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

    ElastiCache は、ここで入力した値に、インスタンス識別子と .rdb を追加します。たとえば、「my-exported-backup」と入力した場合、ElastiCache によって my-exported-backup-0001.rdb が作成されます。

  • --target-bucket – バックアップをエクスポートする Amazon S3 バケットの名前。バックアップのコピーは、指定したバケットで作成されます。

    エクスポートプロセスが成功するためには、--target-bucket は、バックアップの AWS リージョン内で以下のアクセス許可のある Amazon S3 バケットであることが必要です。

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

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

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

以下のオペレーションは、my-s3-bucket にバックアップをコピーします。

Linux, macOS, or Unix 用:

aws elasticache copy-snapshot \ --source-snapshot-name automatic.my-redis-primary-2016-06-27-03-15 \ --target-snapshot-name my-exported-backup \ --target-bucket my-s3-bucket

Windows の場合:

aws elasticache copy-snapshot ^ --source-snapshot-name automatic.my-redis-primary-2016-06-27-03-15 ^ --target-snapshot-name my-exported-backup ^ --target-bucket my-s3-bucket
注記

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

  • ElastiCache has not been granted READ permissions %s on the S3 Bucket.

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

  • ElastiCache has not been granted WRITE permissions %s on the S3 Bucket.

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

  • ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket.

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

詳細については、 の copy-snapshot を参照してくださいAWS CLI Command Reference

別の AWS リージョンにバックアップをコピーする場合は、Amazon S3 コピーを使用します。詳細については、の「オブジェクトhttps://docs.aws.amazon.com/AmazonS3/latest/user-guide/MakingaCopyofanObject.htmlのコピー」を参照してくださいAmazon Simple Storage Service コンソールユーザーガイド

ElastiCache バックアップのエクスポート (ElastiCache API)

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

Parameters

  • SourceSnapshotName – コピーするバックアップの名前。

  • TargetSnapshotName – バックアップのコピーの名前。

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

    ElastiCache は、ここで入力した値に、インスタンス識別子と .rdb を追加します。たとえば、「my-exported-backup」と入力した場合、my-exported-backup-0001.rdb が返されます。

  • TargetBucket – バックアップをエクスポートする Amazon S3 バケットの名前。バックアップのコピーは、指定したバケットで作成されます。

    エクスポートプロセスが成功するためには、TargetBucket は、バックアップの AWS リージョン内で以下のアクセス許可のある Amazon S3 バケットであることが必要です。

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

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

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

以下の例では、Amazon S3 バケット my-s3-bucket に自動バックアップのコピーを作成します。

https://elasticache.us-west-2.amazonaws.com/ ?Action=CopySnapshot &SourceSnapshotName=automatic.my-redis-primary-2016-06-27-03-15 &TargetBucket=my-s3-bucket &TargetSnapshotName=my-backup-copy &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2016-01-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>
注記

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

  • ElastiCache has not been granted READ permissions %s on the S3 Bucket.

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

  • ElastiCache has not been granted WRITE permissions %s on the S3 Bucket.

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

  • ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket.

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

詳細については、『』の「CopySnapshot」を参照してくださいAmazon ElastiCache API Reference

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