メニュー
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 ファイルを使用するためです。

重要

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

  • Amazon S3 バケットにコピーするバックアップは暗号化されません。バックアップを保存する Amazon S3 バケットへのアクセスは他のユーザーに許可しないことを強くお勧めします。

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

警告: データの脆弱性

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

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

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

     

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

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

ステップ 1: 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. [Region] で、バックアップがある同じリージョンを選択します。

    3. [Create] を選択します。

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

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

以下の手順では、Amazon ElastiCache に S3 バケットへのアクセスを許可し、バックアップをバケットにコピーできるようにします。

警告

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

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

  2. [All Buckets] を選択し、エクスポートされるバックアップの書き込み先となる Amazon S3 バケットの名前を選択します。これは、「ステップ 1: Amazon S3 バケットを作成する」で作成した S3 バケットとなります。

  3. [Properties] を選択し、[Permissions] を選択します。

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

  5. [Add more permissions] を選択します。

  6. [Grantee] に、次の一覧に示すリージョンの正規化 を入力します。

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

       

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

      重要

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

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

  7. [List]、[Upload/Delete]、および [View Permissions] を選択します。ElastiCache には、S3 バケットでエクスポートされたバックアップを作成するために、これらのアクセス権限が必要です。

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

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

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

これで S3 バケットを作成し、これにアクセスする権限を ElastiCache に付与したので、以下のいずれかの方法を使用してバックアップをエクスポートします。

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

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

  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 バケットであり、かつ、バックアップをエクスポートするための ListUpload/DeleteView のアクセス権限が ElastiCache に付与されている必要があります。詳細については、「ステップ 2: ElastiCache に Amazon S3 バケットへのアクセスを許可する」を参照してください。

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

注記

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

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

    解決策: バケットでアクセス許可の表示を追加します。

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

別のリージョンにバックアップをコピーする場合は、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 バケットであり、かつ、バックアップをエクスポートするための ListUpload/DeleteView のアクセス権限が ElastiCache に付与されている必要があります。詳細については、「ステップ 2: ElastiCache に Amazon S3 バケットへのアクセスを許可する」を参照してください。

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

Linux, macOS, or Unix 用:

Copy
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 の場合:

Copy
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 にない場合、以下のいずれかのエラーメッセージを受け取ります。示されたアクセス権限を追加し、バックアップのエクスポートを再試行してください。

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

    解決策: バケットでアクセス許可の表示を追加します。

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

詳細については、『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 バケットであり、かつ、バックアップをエクスポートするための ListUpload/DeleteView のアクセス権限が ElastiCache に付与されている必要があります。詳細については、「ステップ 2: ElastiCache に Amazon S3 バケットへのアクセスを許可する」を参照してください。

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

Copy
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 がスナップショットをエクスポートするために必要なアクセス権限がない場合、次のいずれかのエラーメッセージを受け取ります。示されたアクセス権限を追加し、バックアップのエクスポートを再試行してください。

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

    解決策: バケットでアクセス許可の表示を追加します。

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

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

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