AWS運用 - Amazon RDS バックアップから復元する時のTips
Amazon RDS はリレーショナルデータベースのマネージドサービスです。データベースは利用者自身で冗長構成化やスケールアウト、バックアップなどの運用をすることが難しいため、マネージドサービスとして利用できるRDSは人気の高いサービスではないでしょうか。
本ブログでは、データを元に戻す場合など、データベースをバックアップから復元したい時のTipsについて、いくつかご紹介したいと思います。
目次
AWS運用 RDS バックアップの復元方式
RDS バックアップの復元方式は、以下の3種類があります。
- スナップショットの復元
- ポイントインタイムリカバリ
- バックトラック(Aurora MySQL のみ 構築時に要設定)
Aurora ではない MySQL on RDS の復元方式としては、「スナップショットの復元」または「ポイントインタイムリカバリ」の2択になります。この2つの復元方式はデータベースを巻き戻すのではなく、別データベースサーバーとして起動させるものになります。
「復元」や「リカバリ」と聞くと、現在起動しているデータベースを巻き戻せると勘違いされる方も多いのではないでしょうか。(ちなみに、Aurora MySQL のバックトラックは巻き戻し機能に当たります)
「スナップショットの復元」は、定期的に自動で取得したスナップショットや手動で取得したスナップショットの時点のサーバーを起動します。
「ポイントインタイムリカバリ」は、最も遅い復元可能な時刻と復元可能な最新時刻の間から任意の時点のサーバーを起動します。
これらの方式から、希望に近い時間で復元できる方式を選ぶことが可能です。
削除してはいけないデータベースを誤ってDROPしてしまった時などのために、自動スナップショットを取得するようにしておくことをオススメします。
AWS運用 RDSのエンドポイント名
復元で新しいサーバーを起動する際、私も以前DB識別子をどうしたらいいのか悩んでしまうことがありました。この悩みの原因となったのが「現在存在しているRDSと同じDB識別子を使用することができない」という点です。
DB識別子の取り扱い方法としては、以下の3パターンがあります。
- 既存のRDSを削除してから、既存のRDSと同じ識別名でRDSを作成する。
- 既存とは異なる識別名でRDSを作成する。
- ひとまず既存とは異なる識別名でRDSを作成する。その後、既存のRDSの識別名を変更する。最後に既存とは異なる識別名で作成したRDSの識別名を、既存で使用していた識別名に変更する。
RDSのバックアップから復元する際、上記のどのパターンで作業をするのが最適なのか悩まれることもあるかと思います。RDS作成時の作業量・システムのダウンタイム・WEBサーバーの作業有無について表にまとめましたので、参考にしていただけますと幸いです。
ちなみに弊社ではWEBサーバー側の作業を無くすこと、システムが稼働している場合のダウンタイム を短くする観点から、パターン③で行うことが多いです。
パターン① | パターン② | パターン③ | |
RDS作成時の作業量 | 多少発生 | 最も少ない | 最も多い |
システムが稼働している場合の予想ダウンタイム | 長い (DB削除後からDB作成までの間) | 無 | 短い (RDSの識別名を変更、異なる識別名で作成したRDSの識別名変更までの間) |
WEBサーバーの作業有無 | 無 | 有 (WEBサーバー側で接続先DBホスト名の変更など) | 無 |
AWS運用 Retain automated backups
前章のパターン②、パターン③では、使用していない不要なRDSが残る点が運用担当者としてはネックになり、コスト的な観点としては、不要なRDSはなるべく早めに削除することが望ましいと思いますが、そのRDS削除時に注意していただきたい点があります。
Retain automated backups という名前の、とても有用な機能ですので、いざという時にはぜひ活用してみてください。
以前は、RDSを削除すると自動取得していたスナップショットは削除されてしまっていましたが、現在はRDSのマネジメントコンソール画面の Retain automated backups の箇所にチェックを入れることで、RDSを削除しても自動取得していたスナップショットを一定期間保持することが可能となっています。
復旧作業が無事完了し、不要となったRDSも削除してひと段落ついたと思った矢先、やっぱり以前の地点に戻して!となった時に困らないように、Retain automated backups はチェックしておくと安心かと思います。
RDS バックアップからの復元(まとめ)
本ブログでは、RDS バックアップから復元する時のTipsについてご紹介しました。
RDSを復元したいシチュエーションとしては、システムに不具合が出た時など、緊急対応を求められてしまうケースが多いかと思います。
日々の通常稼働時とは別に、いざという時に備えて、復元時のシミュレーションや手順書を用意しておくことがAWS運用において肝心となるかと思いますので、ぜひこのポイントを押さえてみておいてくださいね。
それでも・・・「いざという時に自社で対応できるかな?」と不安をお持ちの方もご安心ください。
弊社が提供する「cloud link」というサービスでは、バックアップの取得〜トラブル時の復元まで弊社にお任せいただくことが可能です。
バックアップの取得やトラブル時の復元だけでなく、AWS運用について少しでも気になられる方は、ぜひ弊社までお気軽にご相談ください。
元記事発行日: 2022年06月03日、最終更新日: 2024年02月28日