Amazon Aurora の バックアップウィンドウと夜間停止について

記事タイトルとURLをコピーする

SRE部 佐竹です。
本日は Amazon Aurora の運用に関してのTipsです。

はじめに

Amazon Aurora DB cluster を夜間停止する運用を行うにあたり、念のため注意しておきたい仕様がありますのでご紹介します。

バックアップウィンドウ について

AWS において、 RDS には「バックアップウィンドウ」という概念が存在します。バックアップウィンドウは RDS 及び Aurora が自動バックアップを取得するために指定もしくは自動的に決定されるメンテナンスのための時間です。

バックアップウィンドウによる自動バックアップの取得は、自動バックアップ設定が有効(ON)である必要があります。デフォルト有効ですが、RDS では無効にすることが可能です。しかし、Amazon Aurora では自動バックアップを無効にすることはできません。

Aurora の自動バックアップを無効にすることはできません。Aurora のバックアップ保持期間は、DB クラスターによって管理されます。

Aurora DB クラスターのバックアップと復元の概要 - Amazon Aurora

バックアップウィンドウを有効にしている場合、以下の画像の通り「Snapshot type」が automated となっている自動バックアップ(スナップショット)が毎日取得されます。

f:id:swx-satake:20201117144534p:plain

なお、手動で取得するバックアップ(スナップショット)はここが manual と表記されます。

加えて、バックアップウィンドウの実行において重要な点なのですが「RDS DB インスタンスもしくは Aurora DB Cluster のステータスが Available 状態である」必要があります。手動バックアップにおいてはステータスが Available 以外の状態ではスナップショットの取得処理は実行がされず失敗し、バックアップウィンドウの場合はスキップされます。

優先バックアップウィンドウ

公式ドキュメントに以下の通り記載があります。

DB インスタンスの作成時に優先バックアップウィンドウを指定しない場合、Amazon RDS によって 30 分のバックアップウィンドウがデフォルトで割り当てられます。
バックアップの使用 - Amazon Relational Database Service

つまりRDS には「優先バックアップウィンドウ」を指定可能です。また、Aurora にも同様に「優先バックアップウィンドウ」を指定可能です。

Aurora の優先バックアップウィンドウ

公式ドキュメントに以下の通り記載があります。

優先バックアップウィンドウは、Aurora に設定できますが、設定は無視されます。Aurora のバックアップは継続的かつ増分的です。
Amazon Aurora DB クラスターの変更 - Amazon Aurora

Aurora にも「優先バックアップウィンドウ」を指定可能と先ほど記載はしましたが、この設定は無視されます

無視される場合どうなるかなのですが、予めリージョンごとに指定された時間帯で取得されます。東京リージョンの設定は以下の通りです。

リージョン名 リージョン 時間ブロック
アジアパシフィック (東京) ap-northeast-1 13:00–21:00 UTC

ここまでのまとめ

  • RDS でも Aurora でも、自動バックアップ(スナップショット)取得のためのバックアップウィンドウが存在する
  • RDS では自動バックアップを無効にすることが可能であるが、Aurora では自動バックアップは無効にできない
  • RDS では優先バックアップウィンドウが設定可能で、意図した通りに動作する
  • Aurora では優先バックアップウィンドウの設定は無視され、予め決められたデフォルトの時間帯で動作する
  • ステータスが Available 状態でないと自動バックアップはスキップされる

Aurora DB Cluster の夜間停止によるコスト削減を行う場合の注意

先ほど記載しました、13:00–21:00 UTC は日本時間ですと 21:00-6:00 (JST) になります。

そして、夜間停止=就業時間外の停止となりますと、おおよそ「19:00頃から翌朝8:00くらい」までは Aurora は停止されていることになるでしょう。つまり、夜間停止をしていると Aurora の自動バックアップの時間帯に Aurora DB Cluster が Available ステータスになっていないことになります。停止されている Aurora のステータスは Stopped です。

このような場合、自動バックアップによるスナップショットの取得はスキップされ続けることになります。実際に夜間停止の運用を続けている Aurora の自動バックアップの取得状況を確認してみました。

f:id:swx-satake:20201117192355p:plain

上画像の通り、manual のスナップショットは古いものが1つあるものの automated のスナップショットは存在しません。

Aurora のリカバリは可能

しかし、本状態であっても Aurora に対して「Restore to point in time」等を利用したリカバリは実行が可能です。これは「Latest restore time」の値で確認が可能で、ここまでの時間に巻き戻せる状況になっています。

これは Aurora は自動バックアップをオフにできない=常時増分バックアップを取得してくれるためです。自動取得のスナップショットは無いものの、リストアができないわけではありません

このような状況でどのようなシーンにおいて困ることがあるかというと「最新のスナップショットを利用して作業を行いたい場合」などでしょう。また、DB インスタンスの削除時に、[Retain automated backups (自動バックアップの保持)] を選択しても自動バックアップは全くないため、保持されないという状況になります。後者の場合は特にファイナルスナップショットを忘れずに取得ください。

まとめ

f:id:swx-satake:20200922003617p:plain:w150

今回は Amazon Aurora DB cluster を夜間停止する運用を行うにあたり、自動バックアップが正常に取得されないという運用上の注意点について記載しました。また合わせてそのような状況になっている理由、つまり仕様についてもご説明させて頂きました。

Aurora を夜間停止される場合は本件に関しても念のためご注意された上、停止の運用を実施ください。

なお、弊社開発の Cloud Automator を利用することで容易に Aurora DB Cluster の夜間停止がスケジューリング可能です。

最後に、RDSの夜間停止については以下のブログも合わせて参考ください。

blog.serverworks.co.jp

ではまたお会いしましょう。

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

営業部カスタマーサクセス課所属。AWS資格12冠。2010年1月からAWSを利用してきました。2021 Japan APN Ambassador /2020-2021 APN ALL AWS Certifications Engineer。AWSのコスト削減、最適化を得意としています。