Redis 用 Amazon ElastiCache
Redis 用 ElastiCache ユーザーガイド (API バージョン 2015-02-02)

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

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 バケットへのアクセスの管理については、Amazon S3 開発者ガイドの「アクセスの管理」を参照してください。

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

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

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

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

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. [Create] を選択します。

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

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

ElastiCache がスナップショットを Amazon S3 バケットにコピーするためには、バケットへのアクセスが必要です。次の手順では、前のステップで作成した Amazon S3 バケットへのアクセスを ElastiCache に付与します。

警告

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

Amazon 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] を選択します。

  5. [Access Control List] を選択します。

  6. [Access for other AWS accounts] の下の [+ Add account] を選択します。

  7. ボックスに、以下のリストに示している AWS リージョンの正規化 ID を追加します。

    • 中国 (北京) および 中国 (寧夏) リージョン:

      b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83

       

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

      40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6

      重要

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

    • その他すべての AWS リージョン:

      540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
  8. 以下について、[Yes] を選択してバケットのアクセス許可を設定します。

    1. オブジェクトのリスト化

    2. オブジェクトの書き込み

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

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

Amazon S3 バケットで、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して ElastiCache バックアップをエクスポートする準備ができました。

ステップ 3: ElastiCache バックアップをエクスポートする

これで、S3 バケットを作成し、そのバケットにアクセスするためのアクセス許可を ElastiCache に付与しました。次は、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、スナップショットをそのバケットにエクスポートできます。以下では、次の S3 固有の IAM アクセス許可を持っていることを前提としています。

{ "Statement": { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" } "Version": "2012-10-17" }

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

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

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

  1. AWS マネジメントコンソールにサインインし、ElastiCache コンソール(https://console.aws.amazon.com/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 を使用してコピーします。詳細については、Amazon Simple Storage Service コンソールユーザーガイド の「オブジェクトのコピー」を参照してください。

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

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

パラメーター

  • --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.

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

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

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

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

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

パラメーター

  • 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.

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

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

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