分散SQLiteを実現する「LiteFS」にスナップショット機能によるディザスタリカバリを提供する「LiteFS Cloud」、Fly.ioが発表
今回は「分散SQLiteを実現する「LiteFS」にスナップショット機能によるディザスタリカバリを提供する「LiteFS Cloud」、Fly.ioが発表」についてご紹介します。
関連ワード (今後、構成、構築等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
データセンターをグローバル展開し、アプリケーションプラットフォームサービスを提供しているFly.ioは、分散SQLiteを実現するLiteFSの付加機能として、バックアップとスナップショット、リカバリ機能などをマネージドサービスとして提供する「LiteFS Cloud」を発表しました。
LiteFS Cloud: now in preview.
We love SQLite for distributed web apps! Introducing managed backups for LiteFS. Read more from Darla Shockley and @benbjohnson.https://t.co/nQxitx5x7d— Fly.io (@flydotio) July 5, 2023
コンパクトなデータベースであるSQLiteを複数のサーバで実行し、レプリケーションによってそれぞれのSQLiteのデータベースを同期させることで、シンプルながら大量のアクセスに対応できる、いわゆる「分散SQLite」システムへの注目度が高まっています。
分散SQLiteを実現する代表的なソフトウェアが、Fly.ioに所属するBen Johnson氏がオープンソースとして開発している「LiteFS」です。
分散SQLiteを実現するLiteFSとは?
LiteFSは、SQLiteのデータベースをレプリケーションし、複数のSQLiteに対してデータベースの同期を実現するソフトウェアです。
マスターとなるSQLiteが何らかの障害で落ちた場合には、自動的に別のSQLiteへとマスターが移行する、フェイルオーバーの機能も備えています。
具体的な仕組みは、SQLiteのデータベースファイルとファイルシステムの間にプロキシをはさみ、トランザクション処理を検知して記録する独自の「Lite Transaction File」(LTXファイル)を作成します。
これを別のSQLiteへ転送し、そこで処理の内容を復元することでレプリカデータベースを実現します。
分散ファイルシステムとしてFUSE(File System in User Space)を用いることでLTXファイルを別のSQLiteへ転送し、HashiCorpのConsulによってサービスディスカバリや障害発生時のフェイルオーバーなどを処理しています。
「LiteFS Cloud」は分散SQLiteにディザスタリカバリを提供
今回、Fly.ioが発表した「LiteFS Cloud」は、このLiteFSに対して5分ごとのスナップショットを取得することでデータベースのバックアップとスナップショットを提供するクラウドサービスです。
カレンダーからリストアしたい時刻のスナップショットを選んで、簡単にリストア可能となっています。
これによりLiteFSによって構成された分散SQLiteのクラスタに対してディザスタリカバリを実現することになります。
Fly.ioでは今後、スナップショットを別の分散SQLiteクラスタに展開することで、迅速にステージング環境などを構築できる機能や、VercelやDenoなど他のクラウドサービスのSQLiteでもLiteFS Cloudを利用可能にする機能などを開発するとしています。