AWS S3 でデータをバックアップおよびリストアする
バックアップ戦略の作成、その戦略のテスト、およびバックアップの実行は、各顧客の責任です。
AWS S3 を使用したデータのバックアップとリストアがサポートされています。データを S3 にバックアップし、その後新しい CelerData クラスターにデータをリストアすることで、データを移行することもできます。
始める前に
IAM ポリシーを設定する
AWS IAM ロール(または IAM ユーザー)に以下のようなポリシーがアタッチされていることを確認し、AWS S3 との統合を成功させます。データスナップショットを保存する S3 バケットの名前に <bucket_name>
を置き換えることを忘れないでください。このロールを仮定ロールにアタッチするか、データクレデンシャルで参照されるロールにアタッチできます。詳細については、AWS リソースへの認証を参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "s3",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<bucket_name>/*"
]
},
{
"Sid": "s3list",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::<bucket_name>"
]
}
]
}
適切なクレデンシャル方法を選択する
AWS リソースへの認証に従って、適切なクレデンシャル方法を選択してください。その後、StorageCredentialParams
のパラメーターセットを以下のように準備します。
-
AWS S3 にアクセスするためのクレデンシャル方法としてインスタンスプロファイルを選択した場合、S3 バケットが存在するリージョンとして
aws_s3_region
を設定します。aws_s3_region
は、リポジトリを作成する際に以下のようにStorageCredentialParams
で使用されます。"aws.s3.use_instance_profile" = "true",
"aws.s3.region" = "us-west-2" -
AWS S3 にアクセスするためのクレデンシャル方法として仮定ロールを選択した場合、仮定ロールの ARN として
iam_role_arn
を、S3 バケットが存在するリージョンとしてaws_s3_region
を設定します。iam_role_arn
とaws_s3_region
は、リポジトリを作成する際に以下のようにStorageCredentialParams
で使用されます。"aws.s3.use_instance_profile" = "true",
"aws.s3.iam_role_arn" = "arn:aws:iam::xxxxxxxxxx:role/yyyyyyyy",
"aws.s3.region" = "us-west-2"
以下の表は、StorageCredentialParams
で設定する必要があるパラメーターを説明しています。
パラメーター名 | 必須 | 説明 |
---|---|---|
aws.s3.use_instance_profile | はい | AWS S3 にアクセスするためのクレデンシャル方法としてインスタンスプロファイルと仮定ロールを許可します。このパラメーターを true に設定します。 |
aws.s3.iam_role_arn | いいえ | データファイルが保存されている AWS S3 バケットに対する権限を持つ IAM ロールの ARN。AWS S3 にアクセスするためのクレデンシャル方法として仮定ロールを使用する場合、このパラメーターを指定する必要があります。その後、CelerData は Hive catalog を使用して Hive データを分析する際にこのロールを仮定します。 |
aws.s3.region | はい | AWS S3 バケットが存在するリージョン。例: us-west-1 。 |
詳細については、AWS S3 へのアクセ スのための認証パラメーターを参照してください。
データをバックアップする
データベース、テーブル、またはパーティションの粒度レベルでの完全バックアップがサポートされています。
テーブルに大量のデータを保存している場合、パーティションごとにデータをバックアップおよびリストアすることをお勧めします。これにより、ジョブの失敗時の再試行コストを削減できます。定期的に増分データをバックアップする必要がある場合、テーブルに対して動的パーティション化プラン(たとえば、特定の時間間隔で)を策定し、毎回新しいパーティションのみをバックアップすることができます。
リポジトリを作成する
データをバックアップする前に、AWS S3 にデータスナップショットを保存するためのリポジトリを作成する必要があります。CelerData クラスター内で複数のリポジトリを作成できます。詳細な手順については、CREATE REPOSITORYを参照してください。
以下の例では、Amazon S3 バケット bucket_s3
に test_repo
という名前のリポジトリを作成します。StorageCredentialParams
を準備したパラメーターセットに置き換えることを忘れないでください。
CREATE REPOSITORY test_repo
WITH BROKER
ON LOCATION "s3a://bucket_s3/backup"
PROPERTIES(
StorageCredentialParams
);
CelerData は S3A プロトコルに従ってのみ AWS S3 にリポジトリを作成することをサポートしています。したがって、AWS S3 にリポジトリを作成する際には、リポジトリの場所として渡す S3 URI の ON LOCATION
にある s3://
を s3a://
に置き換える必要があります。
作成したリポジトリは SHOW REPOSITORIES を使用して確認できます。データをリストアした後、CelerData クラスター内でリポジトリを削除するには DROP REPOSITORY を使用します。ただし、AWS S3 にバックアップされたデータスナップショットは CelerData を通じて削除できません。AWS S3 で手動で削除する必要があります。
データスナップショットをバックアップする
リポジトリが作成された後、データスナップショットを作成し、リモートリポジトリにバックアップする必要があります。詳細な手順については、BACKUPを参照してください。
以下の例では、データベース sr_hub
のテーブル sr_member
に対してデータスナップショット sr_member_backup
を作成し、リポジトリ test_repo
にバックアップします。
BACKUP SNAPSHOT sr_hub.sr_member_backup
TO test_repo
ON (sr_member);
BACKUP は非同期操作です。SHOW BACKUP を使用して BACKUP ジョブのステータスを確認したり、CANCEL BACKUP を使用して BACKUP ジョブをキャンセルしたりできます。
データをリストアまたは移行する
AWS S3 にバックアップされたデータスナップショットを現在の CelerData クラスターまたは別の CelerData クラスターにリストアして、データをリストアまたは移行できます。