

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

# Amazon Keyspaces のポイントインタイムリカバリでデータをバックアップおよび復元する
<a name="PointInTimeRecovery"></a>

ポイントインタイムリカバリ (PITR) により、テーブルデータの継続的なバックアップが可能になるため、Amazon Keyspaces テーブルの誤った書き込みオペレーションや削除オペレーションを防止できます。

例えば、テストスクリプトで、誤って本稼働環境の Amazon Keyspaces テーブルに書き込みを行ったとします。ポイントインタイムリカバリにより、過去 35 日以内に PITR を有効にした後の任意の時点の状態にテーブルデータを復元することができます。ポイントインタイムリカバリが有効になっているテーブルを削除した場合、35 日以内に削除されたテーブルのデータをクエリすれば (追加料金なし)、削除直前の状態に復元することができます。

コンソール、 AWS SDK と AWS Command Line Interface （AWS CLI）、または Cassandra クエリ言語 (CQL) を使用して、Amazon Keyspaces テーブルを特定の時点に復元できます。詳細については、「[Amazon Keyspaces でポイントインタイムリカバリを使用する](PointInTimeRecovery_Tutorial.md)」を参照してください。

ポイントインタイムオペレーションのパフォーマンスや可用性がベーステーブルに影響を及ぼすことはなく、テーブルを復元しても追加のスループットは消費されません。

PITR クォータの詳細については「[Amazon Keyspaces (Apache Cassandra 向け) のクォータ](quotas.md)」を参照してください。

料金については、「[Amazon Keyspaces (for Apache Cassandra) pricing (Amazon Keyspaces (Apache Cassandra 向け) の料金)](https://aws.amazon.com/keyspaces/pricing)」を参照してください。

**Topics**
+ [Amazon Keyspaces のポイントインタイムリカバリの仕組み](PointInTimeRecovery_HowItWorks.md)
+ [Amazon Keyspaces でポイントインタイムリカバリを使用する](PointInTimeRecovery_Tutorial.md)

# Amazon Keyspaces のポイントインタイムリカバリの仕組み
<a name="PointInTimeRecovery_HowItWorks"></a>

このセクションでは、Amazon Keyspaces ポイントインタイムリカバリ (PITR) の仕組みの概要について説明します。料金の詳細については、「[Amazon Keyspaces (for Apache Cassandra) pricing (Amazon Keyspaces (Apache Cassandra 向け) の料金)](https://aws.amazon.com/keyspaces/pricing)」 を参照してください。

**Topics**
+ [PITR 継続的バックアップの時間ウィンドウ](#howitworks_backup_window)
+ [PITR 復元設定](#howitworks_backup_settings)
+ [暗号化されたテーブルの PITR 復元](#howitworks_backup_encryption)
+ [PITR によるマルチリージョンテーブルの復元](#howitworks_backup_multiRegion)
+ [ユーザー定義タイプ (UDTs) のテーブルの PITR 復元](#howitworks_backup_udt)
+ [PITR によるテーブル復元時間](#howitworks_restore_time)
+ [Amazon Keyspaces PITR と AWS サービスとの統合](#howitworks_integration)

## PITR 継続的バックアップの時間ウィンドウ
<a name="howitworks_backup_window"></a>

Amazon Keyspaces PITR では、復元可能なバックアップをテーブルに使用できる時間枠を維持するために、2 つのタイムスタンプが使用されます。
+ 最古の復元可能時間 – 最も古い復元可能バックアップの時刻をマークします。最古の復元可能バックアップは、35 日前、または PITR が有効化された時点のいずれか新しい方までさかのぼります。35 日の最大バックアップウィンドウは変更できません。
+ 現在の時刻 – 最新の復元可能バックアップのタイムスタンプが現在の時刻です。復元中にタイムスタンプが指定されない場合は、現在の時刻が使用されます。

PITR を有効にすると、`EarliestRestorableDateTime` から `CurrentTime` までの期間の任意の時点の状態まで復元できます。テーブルデータは、PITR が有効化された時点までしか復元できません。

PITR を無効にして後で再度有効にした場合は、最初の使用可能バックアップの開始時刻を、PITR が再有効化された時刻にリセットします。つまり、PITR を無効にすると、バックアップ履歴が消去されるということです。

**注記**  
テーブルでのデータ定義言語 (DDL) オペレーション (スキーマの変更など) は、非同期で実行されます。復元されたテーブルデータには完了したオペレーションのみが表示されますが、復元時にオペレーションが進行中である場合は、ソーステーブルで追加のアクションが表示される可能性があります。DDL ステートメントのリストについては、「[Amazon Keyspaces の DDL ステートメント (データ定義言語)](cql.ddl.md)」を参照してください。

復元するテーブルはアクティブでなくても構いません。削除されたテーブルで PITR が有効になっていて、バックアップウィンドウ内 (または過去 35 日以内) に削除が行われた場合でも、削除されたテーブルを復元できます。

**注記**  
以前に削除されたテーブルと同じ修飾名 (mykeyspace.mytable など) を用いて新しいテーブルが作成された場合、削除されたテーブルは復元できなくなります。コンソールでこれを実行すると警告が表示されます。

## PITR 復元設定
<a name="howitworks_backup_settings"></a>

PITR を使用してテーブルを復元すると、Amazon Keyspaces により、ソーステーブルのスキーマとデータを、新しいテーブルに対して選択したタイムスタンプ (`day:hour:minute:second`) に基づいた状態に復元します。既存のテーブルは PITR によりオーバーライドされません。

PITR では、テーブルのスキーマとデータに加えて、`custom_properties` ソーステーブルからの復元も行われます。カスタムプロパティについては、最古の復元時刻から現在の時刻までの範囲で選択したタイムスタンプに基づいて復元されるテーブルのデータとは異なり、常に現在の時刻のテーブル設定に基づいて復元されます。

復元されたテーブルの設定は、タイムスタンプが復元開始時であるソーステーブルの設定と一致します。これらの設定は復元中にオーバーライドすることができるので、その場合は `WITH custom_properties` を使用します。カスタムプロパティには以下の設定が含まれます。
+ 読み取り/書き込みキャパシティモード
+ プロビジョンドスループット性能設定
+ PITR 設定

テーブルがプロビジョンドキャパシティモードで、自動スケーリングが有効になっている場合、復元オペレーションはテーブルの自動スケーリング設定も復元します。これらの設定は、CQL の `autoscaling_settings` パラメータや CLI の `autoScalingSpecification` を使用して上書きできます。自動スケーリング設定の詳細については、「[Amazon Keyspaces 自動スケーリングでスループットキャパシティを自動的に管理する](autoscaling.md)」を参照してください。

テーブル全体を復元する場合、復元済みテーブルのすべてのテーブル設定は、復元時の送信元のテーブルの現在の設定から取得されます。

たとえば、テーブルのプロビジョニングされたスループットが 50 読み込みキャパシティーユニットおよび 50 書き込みキャパシティーユニットに最近下げられたとします。その後、このテーブルを 3 週間前の状態に復元します。このとき、プロビジョンドスループットの読み取りキャパシティユニットは 100 に、書き込みキャパシティユニットも 100 に設定されました。この場合、Amazon Keyspaces では、テーブルデータは指定の時点の状態に復元されますが、プロビジョンドスループット設定は最新の設定 (読み取りキャパシティユニット 50、書き込みキャパシティユニット 50) が使用されます。

次の設定は復元されないため、新しいテーブルに対して手動で設定する必要があります。
+ Amazon Keyspaces 変更データキャプチャ (CDC) ストリーム
+ AWS Identity and Access Management (IAM) ポリシー
+ Amazon CloudWatch メトリクスおよびアラーム
+ タグ (`WITH TAGS` を使用して CQL `RESTORE` ステートメントに追加できる)

## 暗号化されたテーブルの PITR 復元
<a name="howitworks_backup_encryption"></a>

PITR を使用してテーブルを復元すると、Amazon Keyspaces によりソーステーブルの暗号化設定が復元されます。テーブルが AWS 所有のキー (デフォルト) で暗号化されている場合、テーブルは同じ設定で自動的に復元されます。復元するテーブルがカスタマーマネージドキーを使用して暗号化されている場合は、テーブルデータを復元するために同じカスタマーマネージドキーを使用して Amazon Keyspaces にアクセスできる必要があります。

テーブルの暗号化設定は復元時に変更できます。から AWS 所有のキー カスタマーマネージドキーに変更するには、復元時に有効でアクセス可能なカスタマーマネージドキーを指定する必要があります。

カスタマーマネージドキーから に変更する場合は AWS 所有のキー、Amazon Keyspaces がソーステーブルのカスタマーマネージドキーにアクセスして、 でテーブルを復元していることを確認します AWS 所有のキー。テーブルの保管データ暗号化設定の詳細については、「[保管データ暗号化: Amazon Keyspaces での動作](encryption.howitworks.md)」を参照してください。

**注記**  
Amazon Keyspaces がカスタマーマネージドキーにアクセスできなくなったためにテーブルが削除された場合は、そのテーブルを復元する前に、カスタマーマネージドキーが Amazon Keyspaces にアクセスできるか確認する必要があります。カスタマーマネージドキーで暗号化されたテーブルは、Amazon Keyspaces がそのキーにアクセスできない場合に復元できません。詳細については、 AWS Key Management Service デベロッパーガイドの[「キーアクセスのトラブルシューティング](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html)」を参照してください。

## PITR によるマルチリージョンテーブルの復元
<a name="howitworks_backup_multiRegion"></a>

PITR を使用してマルチリージョンテーブルを復元できます。復元オペレーションを成功させるには、ソーステーブルのすべてのレプリカで PITR を有効にし、ソーステーブルと宛先テーブルの両方を同じ にレプリケートする必要があります AWS リージョン。

Amazon Keyspaces は、キースペースに含まれるレプリケート先の各リージョンでソーステーブルの設定を復元します。復元操作中に設定を上書きすることもできます。復元中に変更できる設定の詳細については、「[PITR 復元設定](#howitworks_backup_settings)」を参照してください。

マルチリージョンレプリケーションの詳細については、「」を参照してください[Amazon Keyspaces でのマルチリージョンレプリケーションの仕組み](multiRegion-replication_how-it-works.md)。

## ユーザー定義タイプ (UDTs) のテーブルの PITR 復元
<a name="howitworks_backup_udt"></a>

UDTs を使用するテーブルを復元できます。復元オペレーションを成功させるには、参照される UDTsが存在し、キースペースで有効である必要があります。

テーブルの復元時に必要な UDT がない場合、Amazon Keyspaces は自動的に UDT スキーマの復元を試み、テーブルの復元を続行します。

UDT を削除して再作成した場合、Amazon Keyspaces は UDT の新しいスキーマを使用して UDT を復元し、元の UDT スキーマを使用してテーブルを復元するリクエストを拒否します。この場合、古い UDT スキーマを使用してテーブルを復元する場合は、テーブルを新しいキースペースに復元できます。UDT を削除して再作成する場合、再作成された UDT のスキーマが削除された UDT のスキーマと同じであっても、再作成された UDT は新しい UDT と見なされます。この場合、Amazon Keyspaces は古い UDT スキーマを使用してテーブルを復元するリクエストを拒否します。

UDT がなく、Amazon Keyspaces が UDT の復元を試みると、リージョン内のアカウントの UDTs、試行は失敗します。

UDT クォータとデフォルト値の詳細については、「」を参照してください[Amazon Keyspaces のユーザー定義タイプ (UDTsクォータとデフォルト値](quotas.md#quotas-udts)。UDTs「」を参照してください[Amazon Keyspaces でのユーザー定義型 (UDT)](udts.md)。

## PITR によるテーブル復元時間
<a name="howitworks_restore_time"></a>

テーブルの復元にかかる時間は複数の要因に基づいており、テーブルのサイズに直接関連しているとは限りません。

復元時間に関する考慮事項を次に示します。
+ 新しいテーブルにバックアップを復元します。新しいテーブルを作成して復元プロセスを開始するためのすべてのアクションを実行するのに、テーブルが空でも最大で 20 分かかることがあります。
+ データモデルが適切に分散されている大きなテーブルの復元時間は数時間以上になる可能性があります。
+ ソーステーブルに大きく歪んだデータが含まれている場合は復元時間は長くなることがあります。例えば、テーブルのプライマリキーにより 1 年のうちの 1 か月がパーティショニングに使われており、すべてのデータが 12 月のものだった場合は、データを歪めています。

災害対策を計画する際のベストプラクティスは、平均復元完了時間を定期的に記録し、これらの時間が目標復旧時間全体にどのように影響するかを確認することです。

## Amazon Keyspaces PITR と AWS サービスとの統合
<a name="howitworks_integration"></a>

次の PITR オペレーションは、継続的なモニタリングと監査を有効にする AWS CloudTrail ために を使用してログに記録されます。
+ PITR が有効または無効になっている新規のテーブルを作成します。
+ 既存のテーブルで PITR を有効または無効にします。
+ アクティブなテーブルまたは削除されたテーブルを復元します。

詳細については、「[を使用した Amazon Keyspaces API コールのログ記録 AWS CloudTrail](logging-using-cloudtrail.md)」を参照してください。

 CloudFormationを使用して以下の PITR アクションを実行できます。
+ PITR が有効または無効になっている新規のテーブルを作成します。
+ 既存のテーブルで PITR を有効または無効にします。

詳細については、『[CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)』の「[Cassandra Resource Type Reference(Cassandra リソースタイプのリファレンス)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Cassandra.html)」を参照してください。

# Amazon Keyspaces でポイントインタイムリカバリを使用する
<a name="PointInTimeRecovery_Tutorial"></a>

Amazon Keyspaces (Apache Cassandra 向け) では、ポイントインタイム復元 (PITR) を使用して、特定の時点の状態にテーブルを復元できます。PITR では、過去 35 日以内の以前の状態にテーブルを復元することができ、データの保護と復旧の機能として利用できます。この機能は、間違えてデータを削除してしまった場合やアプリケーションエラーが起きた場合、またはテストの目的などで活躍します。データをすばやく効率的に復旧し、ダウンタイムとデータ損失を最小限に抑えることができます。以降のセクションでは、Amazon Keyspaces で PITR を使用してテーブルを復元し、データの整合性とビジネスの継続性を確保するプロセスについて説明します。

**Topics**
+ [Amazon Keyspaces PITR のテーブル復元用の IAM アクセス許可を設定する](howitworks_restore_permissions.md)
+ [Amazon Keyspaces でテーブルの PITR を設定する](configure_PITR.md)
+ [Amazon Keyspaces テーブルの PITR を無効にする](disable_PITR.md)
+ [Amazon Keyspaces でテーブルをバックアップから特定の時点に復元する](restoretabletopointintime.md)
+ [削除済みのテーブルを Amazon Keyspaces PITR を使用して復元する](restoredeleted.md)

# Amazon Keyspaces PITR のテーブル復元用の IAM アクセス許可を設定する
<a name="howitworks_restore_permissions"></a>

このセクションでは、Amazon Keyspaces テーブルを復元するための AWS Identity and Access Management (IAM) プリンシパルのアクセス許可を設定する方法を要約します。IAM では、 AWS マネージドポリシーである `AmazonKeyspacesFullAccess` に、Amazon Keyspaces テーブルの復元に必要なアクセス許可が含まれています。最低限必要なアクセス許可を含めたカスタムポリシーを実装するには、次のセクションで概説している要件を検討してください。

テーブルを正常に復元するには、IAM プリンシパルに次の最小限のアクセス許可が必要です。
+ `cassandra:Restore` — この復元アクションはターゲットテーブルの復元に必須です。
+ `cassandra:Select` — この選択アクションはソーステーブルからの読み取りに必須です。
+ `cassandra:TagResource` — タグアクションはオプションで、復元オペレーションによりタグが追加される場合にのみ必須です。

次の例は、キースペース `mykeyspace` 内のテーブルを復元するために必要な最小限のアクセス許可をユーザーに与えるポリシーを示しています。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "cassandra:Restore",
            "cassandra:Select"
         ],
         "Resource":[
            "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/*",
            "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
         ]
      }
   ]
}
```

選択した他の機能に基づいて、テーブルを復元するための追加の許可が必要になる場合があります。例えば、ソーステーブルが保管時にカスタマーマネージドキーで暗号化されている場合、テーブルを正常に復元するために、Amazon Keyspaces にはソーステーブルのカスタマーマネージドキーへのアクセス許可が必要になります。詳細については、「[暗号化されたテーブルの PITR 復元](PointInTimeRecovery_HowItWorks.md#howitworks_backup_encryption)」を参照してください。

IAM ポリシーを[条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)とともに使用して特定のソースへの受信トラフィックを制限するには、プリンシパルの代わりに復元オペレーションを実行する許可が Amazon Keyspaces に付与されていることを確認する必要があります。ポリシーにより受信トラフィックが次のいずれかに制限されている場合は、IAM ポリシーに `aws:ViaAWSService` 条件キーを追加する必要があります。
+ `aws:SourceVpce` の場合は VPC エンドポイント
+ `aws:SourceIp` の場合は IP レンジ
+ `aws:SourceVpc` の場合は VPC

 AWS サービスでプリンシパルの認証情報を使用してリクエストを実行すると、`aws:ViaAWSService` 条件キーによりアクセスが許可されます。詳細については、『*IAM ユーザーガイド*』の「[IAM JSON policy elements: Condition key(IAM JSON ポリシー要素: 条件キー)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」 を参照してください。

以下は、ソーストラフィックを特定の IP アドレスに制限し、プリンシパルの代わりに Amazon Keyspaces によってテーブルが復元されるようにするポリシーの例です。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"CassandraAccessForCustomIp",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"false"
            },
            "ForAnyValue:IpAddress":{
               "aws:SourceIp":[
                  "123.45.167.89"
               ]
            }
         }
      },
      {
         "Sid":"CassandraAccessForAwsService",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"true"
            }
         }
      }
   ]
}
```

 `aws:ViaAWSService` グローバル条件キーを使用したポリシーの例については、「[VPC エンドポイントポリシーと Amazon Keyspaces ポイントインタイムリカバリ (PITR)](vpc-endpoints.md#VPC_PITR_restore)」を参照してください。

# Amazon Keyspaces でテーブルの PITR を設定する
<a name="configure_PITR"></a>

コンソール、CQL、および AWS CLIで、PITR を使用したバックアップおよび復元のオペレーションを Amazon Keyspaces のテーブルに設定できます。

CQL または を使用して新しいテーブルを作成する場合は AWS CLI、テーブル作成ステートメントで PITR を明示的に有効にする必要があります。コンソールで新しいテーブルを作成した場合は、PITR がデフォルトで有効になります。

テーブルの復元方法については、「[Amazon Keyspaces でテーブルをバックアップから特定の時点に復元する](restoretabletopointintime.md)」を参照してください。

------
#### [ Console ]

**コンソールを使用してテーブルの PITR を設定する**

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

1. ナビゲーションペインで [**Tables (テーブル)**] を選択し、編集するテーブルを選択します。

1. [**Backups (バックアップ)**] タブで、[**Edit (編集)**] を選択します。

1. [**Edit point-in-time recovery settings (ポイントインタイムリカバリ設定の編集)**] セクションで、[**Enable Point-in-time recovery (ポイントタイムリカバリを有効にする)**] チェックボックスを選択します。

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ Cassandra Query Language (CQL) ]

**CQL を使用してテーブルの PITR を設定する**

1. テーブルの PITR 設定は、`point_in_time_recovery` カスタムプロパティを使用して管理することができます。

   新しいテーブルの作成時に PITR を有効にするには、`enabled` のステータスを `point_in_time_recovery` に設定する必要があります。例えば、次の CQL コマンドを使用できます。

   ```
   CREATE TABLE "my_keyspace1"."my_table1"(
   	"id" int,
   	"name" ascii,
   	"date" timestamp,
   	PRIMARY KEY("id"))
   WITH CUSTOM_PROPERTIES = {
   	'capacity_mode':{'throughput_mode':'PAY_PER_REQUEST'}, 
   	'point_in_time_recovery':{'status':'enabled'}
   }
   ```
**注記**  
ポイントインタイムリカバリのカスタムプロパティが指定されていない場合、デフォルトにより、ポイントインタイムリカバリは無効になります。

1. CQL を使用して既存のテーブルの PITR を有効にするには、次の CQL コマンドを実行します。

   ```
   ALTER TABLE mykeyspace.mytable
   WITH custom_properties = {'point_in_time_recovery': {'status': 'enabled'}}
   ```

------
#### [ CLI ]

**を使用してテーブルの PITR を設定する AWS CLI**

1. テーブルの PITR 設定は、`UpdateTable` API を使用して管理することができます。

   新しいテーブルの作成時に PITR を有効にするには、create-table コマンドに `point-in-time-recovery 'status=ENABLED'` を指定する必要があります。例えば、次の AWS CLI コマンドを使用できます。このコマンドは読みやすくするために別々の行に分割されています。

   ```
   aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' 
               --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' 
               --point-in-time-recovery 'status=ENABLED'
   ```
**注記**  
ポイントインタイムリカバリ値が指定されていない場合、デフォルトにより、ポイントインタイムリカバリは無効になります。

1. テーブルのpoint-in-timeリカバリ設定を確認するには、次の AWS CLI コマンドを使用します。

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

1. を使用して既存のテーブルの PITR を有効にするには AWS CLI、次のコマンドを実行します。

   ```
   aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=ENABLED'
   ```

------

# Amazon Keyspaces テーブルの PITR を無効にする
<a name="disable_PITR"></a>

Amazon Keyspaces テーブルの PITR は、コンソール、CQL、または AWS CLIを使用して、いつでも無効にすることができます。

**重要**  
PITR を無効にすると、35 日以内にテーブルの PITR を再度有効にしても、バックアップ履歴が直ちに削除されます。

テーブルの復元方法については、「[Amazon Keyspaces でテーブルをバックアップから特定の時点に復元する](restoretabletopointintime.md)」を参照してください。

------
#### [ Console ]

**コンソールを使用してテーブルの PITR を無効にする**

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

1. ナビゲーションペインで [**Tables (テーブル)**] を選択し、編集するテーブルを選択します。

1. [**Backups (バックアップ)**] タブで、[**Edit (編集)**] を選択します。

1. [**Edit point-in-time recovery settings (ポイントインタイムリカバリ設定の編集)**] セクションで、[**Enable Point-in-time recovery (ポイントタイムリカバリを有効にする)**] チェックボックスの選択を解除します。

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ Cassandra Query Language (CQL) ]

**CQL を使用してテーブルの PITR を無効にする**
+ 既存のテーブルの PITR を無効にするには、次の CQL コマンドを実行します。

  ```
  ALTER TABLE mykeyspace.mytable
  WITH custom_properties = {'point_in_time_recovery': {'status': 'disabled'}}
  ```

------
#### [ CLI ]

**を使用してテーブルの PITR を無効にする AWS CLI**
+ 既存のテーブルの PITR を無効にするには、次の AWS CLI コマンドを実行します。

  ```
  aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=DISABLED'
  ```

------

# Amazon Keyspaces でテーブルをバックアップから特定の時点に復元する
<a name="restoretabletopointintime"></a>

既存の Amazon Keyspaces テーブルを特定の時点の状態に復元する実際の方法を紹介します。

**注記**  
この手順では、操作対象のテーブルにポイントインタイムリカバリが設定済みであることが前提です。テーブルの PITR を有効にするには、「[Amazon Keyspaces でテーブルの PITR を設定する](configure_PITR.md)」を参照してください。

**重要**  
 復元中は、復元を実行するアクセス許可を IAM プリンシパル (ユーザー、グループ、ロールなど) に付与する AWS Identity and Access Management (IAM) ポリシーを変更または削除しないでください。行った場合、予期しない動作が発生する場合があります。例えば、テーブルの復元中にそのテーブルへの書き込みアクセス許可を削除してしまうと、基盤となる `RestoreTableToPointInTime` オペレーションが復元済みデータをテーブルに書き込むことができなくなります。  
復元オペレーションが完了したら、アクセス許可を変更または削除してもかまいません。

------
#### [ Console ]

**コンソールを使用してテーブルを特定の時点の状態に復元する**

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

1. コンソールの左側のナビゲーションペインで、**[テーブル]** を選択します。

1. テーブルのリストで、復元対象のテーブルを選択します。

1. テーブルの **[バックアップ]** タブの **[ポイントインタイムリカバリ]** セクションで、**[復元]** を選択します。

1. 新しいテーブル名には、復元後のテーブルの新しい名前を入力します (例: **mytable\$1restored**)。

1. 復元オペレーションのポイントインタイムを定義するために、次の 2 つのオプションのいずれかを選択できます。
   + あらかじめ設定されている **[Earliest]** (最も早い時間) を選択します。
   + **[Specify date and time]** (日時の指定) を選択し、新しいテーブルの復元時点の日付と時刻を入力します。
**注記**  
**[Earliest]** (最古) の時点から現在の時点までの期間内の任意の特定時点の状態に復元できます。Amazon Keyspaces により、選択した日時 (day:hour:minute:second) に基づいた状態にテーブルデータが復元されます。

1. [**Restore (復元)**] を選択して、復元プロセスを開始します。

   復元中のテーブルのステータスは、[**Restoring (復元中)**] と表示されます。復元が終わると、復元後のテーブルのステータスが **[アクティブ]** に変わります。

------
#### [ Cassandra Query Language (CQL) ]

**CQL を使用してテーブルを特定の時点の状態に復元する**

1. アクティブなテーブルを、`earliest_restorable_timestamp` から現在の時点までの範囲内の任意の時点の状態に復元できます。デフォルトは現在の時刻です。

   テーブルでポイントインタイムリカバリが有効になっていることを確認するには、次の例に示すように、`system_schema_mcs.tables` をクエリします。

   ```
   SELECT custom_properties
   FROM system_schema_mcs.tables
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';
   ```

   次のサンプル出力に示すように、ポイントインタイムリカバリが有効になります。

   ```
   custom_properties
   -----------------
   {
     ...,
       "point_in_time_recovery": {
       "earliest_restorable_timestamp":"2020-06-30T19:19:21.175Z"
       "status":"enabled"
     }
   }
   ```

1. 
   + テーブルを現在の時点に復元します。`WITH restore_timestamp = ...` 句を省略すると、現在のタイムスタンプが使用されます。

     ```
     RESTORE TABLE mykeyspace.mytable_restored
     FROM TABLE mykeyspace.mytable;
     ```
   + `restore_timestamp` に ISO 8601 形式で特定の時点を定義し、その時点の状態に復元することもできます。過去 35 日間の任意の時点を指定できます。たとえば、次のコマンドでは `EarliestRestorableDateTime` にテーブルを復元します。

     ```
     RESTORE TABLE mykeyspace.mytable_restored
     FROM TABLE mykeyspace.mytable
     WITH restore_timestamp = '2020-06-30T19:19:21.175Z';
     ```

     構文の完全な説明については、言語リファレンスの「[RESTORE TABLE](cql.ddl.table.md#cql.ddl.table.restore)」を参照してください。

1. テーブルの復元が成功したことを確認するには、`system_schema_mcs.tables` をクエリしてテーブルのステータスを確認します。

   ```
   SELECT status
   FROM system_schema_mcs.tables
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable_restored'
   ```

   クエリには次の出力が表示されます。

   ```
   status
   ------
   RESTORING
   ```

   復元中のテーブルのステータスは、[**Restoring (復元中)**] と表示されます。復元が終わると、テーブルのステータスが **[アクティブ]** に変わります。

------
#### [ CLI ]

**を使用してテーブルを特定の時点に復元する AWS CLI**

1. PITR を有効にした `myTable` という名前の簡単なテーブルを作成します。コマンドは読みやすくするため、別々の行に分割されています。

   ```
   aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' 
               --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' 
               --point-in-time-recovery 'status=ENABLED'
   ```

1. 新しいテーブルのプロパティを確認し、PITR 用の `earliestRestorableTimestamp` を確認してください。

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

   このコマンドの出力では、以下の値が返ります。

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable",
       "creationTimestamp": "2022-06-20T14:34:57.049000-07:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2022-06-20T14:34:57.049000-07:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "ENABLED",
           "earliestRestorableTimestamp": "2022-06-20T14:35:13.693000-07:00"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       }
   }
   ```

1. 
   + 特定の時点の状態にテーブルを復元するには、ISO 8601 形式で `restore_timestamp` を指定します。過去 35 日間の任意の時点を 1 秒間隔で選択できます。たとえば、次のコマンドでは `EarliestRestorableDateTime` にテーブルを復元します。

     ```
     aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored' --restore-timestamp "2022-06-20 21:35:14.693"
     ```

     このコマンドの出力は、復元されたテーブルの ARN を返します。

     ```
     {
         "restoredTableARN": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable_restored"
     }
     ```
   + テーブルを現在の時点に復元するには、`restore-timestamp` パラメータを省略できます。

     ```
     aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored1'"
     ```

------

# 削除済みのテーブルを Amazon Keyspaces PITR を使用して復元する
<a name="restoredeleted"></a>

次の手順は、削除されたテーブルをバックアップから削除時点の状態に復元する方法を示しています。これを行うには、CQL または を使用します AWS CLI。

**注記**  
この手順では、削除されたテーブルに対して PITR が有効になっていることを前提としています。



------
#### [ Cassandra Query Language (CQL) ]

**CQL を使用して削除済みテーブルを復元する**

1. 削除されたテーブルに対してポイントインタイムリカバリが有効になっていることを確認するには、システムテーブルのクエリを実行します。ポイントインタイムリカバリが有効になっているテーブルのみが表示されます。

   ```
   SELECT custom_properties
   FROM system_schema_mcs.tables_history 
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'my_table';
   ```

   クエリには次の出力が表示されます。

   ```
   custom_properties
   ------------------
   {
       ...,
      "point_in_time_recovery":{
         "restorable_until_time":"2020-08-04T00:48:58.381Z",
         "status":"enabled"
      }
   }
   ```

1. 次のサンプルステートメントを使用して、テーブルを削除時点の状態に復元します。

   ```
   RESTORE TABLE mykeyspace.mytable_restored
   FROM TABLE mykeyspace.mytable;
   ```

------
#### [ CLI ]

**を使用して削除されたテーブルを復元する AWS CLI**

1. 事前に作成し、PITR を有効にしておいたテーブルを削除します。コマンドの例を次に示します。

   ```
   aws keyspaces delete-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

1. 次のコマンドを使用して、削除されたテーブルを削除時点の状態に復元します。

   ```
   aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored2'
   ```

   このコマンドの出力は、復元されたテーブルの ARN を返します。

   ```
   {
       "restoredTableARN": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable_restored2"
   }
   ```

------