メニュー
Amazon ElastiCache
ユーザーガイド (API Version 2015-02-02)

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

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

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

重要

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

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

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

警告: データの脆弱性

以下のシナリオでは、目的の方法でデータを公開します。

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

    バックアップへのアクセスを制御するために、データにアクセスする必要があるユーザーにのみ Amazon Amazon S3 バケットへのアクセスを許可します。Amazon Amazon S3 バケットへのアクセスの管理については、『Amazon S3 開発者ガイド』の「アクセスの管理」を参照してください。

     

  • 他のユーザーが、CopySnapshot API を使用するアクセス権限を持っている。

    CopySnapshot API を使用する権限のあるユーザーまたはグループは、独自の Amazon S3 バケットを作成し、このバケットにバックアップをコピーできます。バックアップへのアクセスを制御するには、IAM ポリシーを使用して、CopySnapshot API を使用できるユーザーを管理します。IAM を使用した ElastiCache API の使用の管理については、『Amazon ElastiCache に対する認証とアクセスコントロールElastiCache ユーザーガイド』の「」を参照してください。

ステップ 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. [Region] リストから、Amazon S3 バケットのリージョンを選択します。このリージョンは、エクスポートする ElastiCache バックアップと同じリージョンである必要があります。

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

  4. [Permissions] を選択します。

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

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

  7. ボックスに、次の一覧に示すリージョンの正規化 ID を追加します。

    • 中国 (北京) リージョン –

      b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83

       

    • AWS GovCloud (US) リージョン –

      40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6

      重要

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

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

      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" ], "Resource": "arn:aws:s3:::*" } "Version": "2012-10-17" }

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

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

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

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

  2. ElastiCache コンソールのダッシュボードで、[Backups] を選択します。

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

  4. [Copy] を選択します。

  5. [Create a 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] は、次のアクセス許可を持つバックアップのリージョン内の Amazon S3 バケットである必要があります。

      • オブジェクトアクセス – [Read] および [Write]。

      • アクセス許可 – [Read]。

      詳細については、「ステップ 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.

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

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

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

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

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 は、次のアクセス許可を持つバックアップのリージョン内の Amazon S3 バケットである必要があります。

    • オブジェクトアクセス – [Read] および [Write]。

    • アクセス許可 – [Read]。

    詳細については、「ステップ 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 Command Line Interface Reference』の「copy-snapshot」を参照してください。

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

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

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

Parameters

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

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

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

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

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

    エクスポートプロセスが成功するためには、TargetBucket は、次のアクセス許可を持つバックアップのリージョン内の Amazon S3 バケットである必要があります。

    • オブジェクトアクセス – [Read] および [Write]。

    • アクセス許可 – [Read]。

    詳細については、「ステップ 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」を参照してください。

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