RDS: 過去のDBスナップショットをまとめて削除

概要

「 RDS: 過去のDBスナップショットをまとめて削除」アクションでは、選択した複数のAWSアカウントのすべてのリージョンにおいて、過去のDBスナップショットの削除を一括して行うことができます。

DBスナップショットが過去のものかどうか判定するための基準は、以下の2通りで指定することができます。

  • DBスナップショットが作成されてからの経過日数
  • DBスナップショットの作成日が特定の日付以前

例えば、判定するための基準を「365日以上前に作成されたDBスナップショット」と指定して3つのAWSアカウントを設定した場合は、3つのAWSアカウントそれぞれで、利用可能な全リージョンにおいて、作成から365日以上経過したDBスナップショットが1回のジョブ実行で削除されます。

なお、特定のタグが付与されているDBスナップショットを削除する対象から除外することもできます。

設定時のオプション

No. オプション 説明
1 削除するDBスナップショット

経過日数で指定する場合
DBスナップショットが作成されてからの経過日数で指定するには、「〜日以上前に作成されたDBスナップショット」を選択して日数を入力します。
日数には1〜10,000が入力できます。

日付で指定する場合
DBスナップショットの作成日が特定の日付以前かどうかで指定するには、「〜以前に作成されたDBスナップショット」を選択して年月日を指定します。
過去の日付のみが指定できます。
指定された日付は、日本時間における日付として解釈されます。

2 特定のタグが付いたDBスナップショットを除外する

削除対象となるDBスナップショットのうち、削除したくないDBスナップショットをタグで指定する場合にチェックします。

例えば、以下のように設定するとジョブ実行時にタグ「CASkip:yes」がついているDBスナップショット削除されずにスキップされます。

設定例

「RDS: 過去のDBスナップショットをまとめて削除」アクションを使ったジョブを作成してみます。

  1. Cloud Automator の運用ジョブ画面から「ジョブの追加」ボタンをクリックします
  2. ジョブを所属させるグループを選択します
  3. トリガーの選択で、任意のトリガーを選択します
  4. アクションの選択で「RDS: 過去のDBスナップショットをまとめて削除」アクションを選択します
  5. AWSアカウントの選択でAWSアカウントを1〜50件以内で選択します。
    複数選択する場合は、WindowsではCtrlキーを押しながら、macOSではCmdキーを押しながら選択肢をクリックしてください。
    また、Shiftキーを押しながら一括選択することもできます
  6. アクションのパラメーターを設定します

    No. オプション 設定値の例
    1 削除するDBスナップショット 365日以上前に作成されたDBスナップショット
    2 特定のタグが付いたDBスナップショットを除外する チェックしない

削除されるDBスナップショットのプレビュー

このアクションでは、ジョブを実行した場合に削除されるDBスナップショットの一覧をあらかじめCSVファイルとしてプレビューすることができます。

プレビューを行う手順については「対象リソースプレビューCSVについて」をご覧ください

対象リソースプレビューCSVの内容

このアクションの対象リソースプレビューCSVは、文字コードエンコーディングがUTF-8で、以下のサンプルのような内容になっています。

1行につき、対象となる1つのDBスナップショットが記録されます。各列に記載される情報は以下の通りです。

AWSアカウントID DBスナップショットを所有しているAWSアカウントのID(AWSが付与する12桁の番号)
AWSアカウント名 AWSアカウントの名前(AWSアカウントをCloud Automatorに登録した際に付けた名前)
リージョン DBスナップショットが存在しているリージョン
DBスナップショット名 DBスナップショット名
作成日(JST) DBスナップショットが作成された日(日本時間)
備考

空欄の場合、このDBスナップショットはジョブ実行によって削除されます。

skippedの場合、このDBスナップショットはジョブ実行時に削除されずスキップされます。
また、以下のようにスキップされた理由も記載されます。

  • skipped (This snapshot has an exclusion tag.)
    • ジョブの「特定のタグが付いたDBスナップショットを除外する」に設定されたタグがDBスナップショットに付与されているためスキップされた
  • skipped (The snapshot status is XXX.)
    • DBスナップショットの状態が copying または creating だったためスキップされた

実行結果の確認

  1. 作成したジョブのログボタンをクリックします
  2. 実行ログ一覧から該当の実行ログの詳細をクリックします
  3. ログの詳細にて結果を確認します
    「成功」となっていれば該当のジョブが実行されて成功していることが確認できます。
    「実行中」となっている場合はジョブの実行中なのでしばらく経ってから確認してください
  4. それぞれのDBスナップショットの操作結果は「リソース操作結果」の項目で確認できます
    • DBスナップショットの削除が成功したかどうかは「リソース操作結果」の最初に表示されている4つの箱(completed、skipped、aborted、failed)に表示される件数で把握できます
    • それぞれのリソース操作結果詳細は、見出し部分をクリックすることで詳細表示を展開することができます
  5. リソース操作結果詳細
    • 「AWSアカウント別サマリー」のタブには、AWSアカウント毎、リージョン毎に成否に応じたリソース数の集計が表示されます
    • 「completed」のタブには、問題なく削除ができたリソースの詳細が表示されます
    • 「skipped」のタブには、AWS Backupで管理されていたり、除外する対象とするタグが付いているためスキップされたリソースの詳細が表示されます
    • 「aborted」および「failed」のタブには、処理中に何らかのエラーが発生したリソースの詳細が表示されます

ログのステータス条件

ジョブの実行結果 条件
成功 削除すべきDBスナップショットがすべて問題なく削除できた場合
(スキップされたDBスナップショットがあっても成功となります)
失敗

以下いずれかの場合に失敗となります

  • AWSアカウントの権限不足などにより、リージョン一覧やDBスナップショット一覧を取得できなかった場合
  • 削除に失敗したDBスナップショットがあった場合
  • 削除すべきDBスナップショットが1件も存在しなかった場合

リソース操作履歴のステータス条件

リソース操作結果 条件
Completed DBスナップショットに対するDeleteDBSnapshot APIの呼び出しが成功した場合
Failed

以下のいずれかの場合

  • DeleteDBSnapshot APIの呼び出しが成功しなかった場合
  • AWSアカウントあたりのDBスナップショット処理数の上限を超えた場合
Skipped

以下のいずれかの場合

  • 削除対象のDBスナップショットに、DBスナップショットを除外するためのタグが付与されていた場合
  • DBスナップショットのステータスが copying または creating だった場合
Aborted 予期しない問題が発生した場合

 

注意事項

このアクションには以下のような制限があります。

  • 1つのジョブで設定できるAWSアカウントの数は最大 50 件です
  • 各AWSアカウントで利用可能なすべてのリージョンが処理対象となります
    • 除外するリージョンを指定することはできません
  • 各AWSアカウント毎に一度に削除できるDBスナップショットは、すべてのリージョンにあるDBスナップショットを合計して最大で 1,000 件です
    • したがって、1回のジョブ実行で削除できるDBスナップショットの上限はAWSアカウント 50 件 × DBスナップショット 1,000 件 = 50,000 件となります
  • AWSアカウント1つにつき、すべてのリージョンにある削除対象DBスナップショットの合計が 1,000 件を超える場合、ランダムに選ばれた 1,000 件が対象となり、それ以外のDBスナップショットは失敗となりま
  • AWSバックアップによって取得されたDBスナップショットは、プレビューCSVやジョブの実行の対象になりません
    • CSVファイルには情報が掲載されず、ジョブ実行後もリソース操作結果に反映されません

このアクションで利用されるAWS API

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください