スナップショットエクスポートタスクの作成
スナップショットエクスポートタスクを作成して、スナップショットから Amazon S3 バケットにデータをエクスポートします。1 つの AWS アカウント につき、最大 5 つの DB スナップショットエクスポートタスクを同時に実行できます。
注記
データベースのタイプとサイズによっては、RDS スナップショットのエクスポートに時間がかかることがあります。エクスポートタスクでは、Amazon S3 にデータを抽出する前に、データベース全体を復元およびスケールします。このフェーズでのタスクの進捗状況は、[起動中] と表示されます。タスクが S3 へのデータのエクスポートに切り替わると、進捗状況は [進行中] と表示されます。
エクスポートが完了するまでにかかる時間は、データベースに格納されているデータによって異なります。例えば、数値のプライマリキーまたはインデックス列が適切に配信されているテーブルは、最も速くエクスポートされます。パーティション化に適した列が含まれていないテーブルや、文字列ベースの列に1つのインデックスしかないテーブルは処理に時間がかかります。エクスポートに低速のシングルスレッドプロセスを使用するため、このような長いエクスポート時間となります。
AWS Management Console、AWS CLI、または RDS API を使用して DB スナップショットを Amazon S3 にエクスポートできます。
Lambda 関数を使用してスナップショットをエクスポートする場合は、Lambda 関数ポリシーに kms:DescribeKey
アクションを追加します。詳細については、「AWS Lambda のアクセス許可」を参照してください。
[Amazon S3 へのエクスポート] コンソールオプションは、Amazon S3 にエクスポートできるスナップショットに対してのみ表示されます。スナップショットは、次の理由により、エクスポートに使用できない場合があります。
-
DB エンジンが S3 エクスポートでサポートされていない。
-
DB インスタンスのバージョンが S3 エクスポートでサポートされていない。
-
スナップショットを作成した AWS リージョンで S3 エクスポートがサポートされていない。
DB スナップショットをエクスポートするには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[スナップショット] を選択します。
-
タブから、エクスポートするスナップショットのタイプを選択します。
-
スナップショットのリストで、エクスポートするスナップショットを選択します。
-
[アクション] で、[Amazon S3 にエクスポート] を選択します。
[EAmazon S3 にエクスポート] ウィンドウが表示されます。
-
[エクスポート識別子] に、エクスポートタスクを識別する名前を入力します。この値は、S3 バケットで作成されるファイルの名前としても使用されます。
-
エクスポートするデータを選択します。
-
[すべて] を選択すると、スナップショット内のすべてのデータがエクスポートされます。
-
[部分的] を選択すると、スナップショットの特定部分がエクスポートされます。スナップショットのどの部分をエクスポートするかを特定するには、[識別子] に 1 つ以上のデータベース、スキーマ、またはテーブルをスペースで区切って入力します。
次の形式を使用します。
database
[.schema
][.table
]database2
[.schema2
][.table2
] ...database
n[.schema
n][.table
n]次に例を示します。
mydatabase mydatabase2.myschema1 mydatabase2.myschema2.mytable1 mydatabase2.myschema2.mytable2
-
-
[S3 バケット] で、エクスポート先のバケットを選択します。
エクスポートされたデータを S3 バケット内のフォルダパスに割り当てるには、[S3 プレフィックス] にオプションのパスを入力します。
-
IAM ロール の場合は、選択した S3 バケットへの書き込みアクセスを許可するロールを選択するか、新しいロールを作成します。
-
「IAM ロールを使用した Amazon S3 バケットへのアクセスの提供」のステップに従ってロールを作成した場合は、そのロールを選択します。
-
選択した S3 バケットへの書き込みアクセス権を付与するロールを作成しなかった場合は、[Create a new role] (新しいロールの作成) を選択して、ロールを自動的に作成します。次に、[IAM role name] (IAM ロール名) にロールの名前を入力します。
-
-
[AWS KMS key] で、エクスポートされたデータの暗号化に使用するキーの ARN を入力します。
-
[Amazon S3 にエクスポート] を選択します。
AWS CLI を使用して DB スナップショットを Amazon S3 にエクスポートするには、以下の必須オプションを指定して start-export-task コマンドを使用します。
-
--export-task-identifier
-
--source-arn
-
--s3-bucket-name
-
--iam-role-arn
-
--kms-key-id
以下の例では、スナップショットエクスポートタスクには my-snapshot-export
という名前が付けられ、スナップショットを amzn-s3-demo-destination-bucket
という名前の S3 バケットにエクスポートします。
Linux、macOS、Unix の場合:
aws rds start-export-task \ --export-task-identifier
my-snapshot-export
\ --source-arn arn:aws:rds:AWS_Region
:123456789012:snapshot:snapshot-name
\ --s3-bucket-nameamzn-s3-demo-destination-bucket
\ --iam-role-arniam-role
\ --kms-key-idmy-key
Windows の場合:
aws rds start-export-task ^ --export-task-identifier
my-snapshot-export
^ --source-arn arn:aws:rds:AWS_Region
:123456789012:snapshot:snapshot-name
^ --s3-bucket-nameamzn-s3-demo-destination-bucket
^ --iam-role-arniam-role
^ --kms-key-idmy-key
サンプル出力を次に示します。
{ "Status": "STARTING", "IamRoleArn": "iam-role", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "
amzn-s3-demo-destination-bucket
", "PercentProgress": 0, "KmsKeyId": "my-key", "ExportTaskIdentifier": "my-snapshot-export", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-11-13T19:46:00.173Z", "SourceArn": "arn:aws:rds:AWS_Region:123456789012:snapshot:snapshot-name" }
スナップショットのエクスポート先である S3 バケット内のフォルダパスを指定するには、start-export-task コマンドに --s3-prefix
オプションを含めます。
Amazon RDS API を使用して DB スナップショットを Amazon S3 にエクスポートするには、以下の必須パラメータを指定して StartExportTask オペレーションを使用します。
-
ExportTaskIdentifier
-
SourceArn
-
S3BucketName
-
IamRoleArn
-
KmsKeyId