Amazon Web Services ブログ

Amazon Aurora Backtrack – 時間を巻き戻す

こんなご経験、皆さんにもありますよね。重要なプロダクションデータベースに素早く、見かけ上はシンプルな修正を加えなければならないという状況。まずクエリを作成して、ざっと目を通し、そして実行キーを押す。数秒後、WHERE 句を書き忘れたとか、ドロップしたのが誤ったテーブルだったとか、または、他にも深刻な間違いがあったことに気づき、クエリを中断するものの、すでに一部の変更は反映されてしまっている。あなたは深いため息をつき、歯の間から弱々しい音をもらし、Undo (元に戻す) 機能があればよかったのにとうつむくのです。さて、次はどうしますか?

最新の Amazon Aurora Backtrack
今日は Amazon Aurora の新しい「巻き戻し」機能についてご紹介します。 これは現在の技術レベルで可能な、現実世界を「元に戻す」のに最も近い方法です。

この機能は新しく開始される Aurora データベースクラスターで有効にすることができます。 これを有効にするには、巻き戻す必要がある可能性のある時間を指定するだけで、そのあとは通常通りにデータベースを使用します (以下は事前設定の設定ページ):

Aurora は分散型ログ構造ストレージシステム (詳細については Design Considerations for High Throughput Cloud-Native Relational Databases を参照) を採用しています。データベースへ変更を加えるたびに新しいログレコードが作成され、ログシーケンス番号 (LSN) が生成されます。巻き戻し機能を有効にすることで、LSN のストレージ用クラスターに FIFO バッファーがプロビジョニングされます。これにより、素早いアクセスと秒単位で測定されたリカバリ時間が利用できるようになります。

すべてが失われたように思えたその絶望的な瞬間のあと、あなたはただアプリケーションを一時停止し、Aurora コンソールを開いてクラスターを選択して [Backtrack DB cluster] (DB クラスターを巻き戻す) をクリックするだけです。

それから Backtrack を指定し、取り返しのつかない過ちを犯してしまった寸前を選び、[Backtrack DB cluster] (DB クラスターを巻き戻す) をクリックします。

それから巻き戻しが終わるまで待ち、アプリケーションを再開して、何ごともなかったかのように作業に戻ります。巻き戻し機能を開始すると、Aurora はデータベースを一時停止し、すべての接続を遮断して、コミットされていない書き込みをドロップし、巻き戻し機能が完了するのを待ちます。その後、通常のオペレーションを再開して、リクエストを受け入れます。 巻き戻し機能の実行中、インスタンスの状態は backtracking (巻き戻し中) になります。

巻き戻しが完了すると、コンソールに通知が表示されます。

万一、行き過ぎてしまっても心配はありません。もう少しあとへ巻き戻すことができます。クローン、バックアップ、復元などの他の Aurora の機能は、巻き戻し用に構成されたインスタンス上でも引き続き機能します。

皆さんなら、この画期的な新機能を使ったクリエイティブで思いもよらないユースケースが思いつくはずです。たとえば、データベースに変更を加えるテストの実行後に、テストデータベースを復元するためにも使用できます。API または CLI から復元を開始することも可能で、既存のテストフレームワークに統合しやすくなります。

主要事項
このオプションは、新しく作成された MySQL 互換の Aurora データベースクラスターから、バックアップより復元された MySQL 互換クラスターに適用されます。クラスターの作成または復元時に設定する必要があります。実行中のクラスターに対してこの機能を有効化することはできません。

この機能は Amazon Aurora が稼動している全 AWS リージョンでご利用可能で、今日からすぐ使い始めることができます。

Jeff;