COLUMN
コラム
2022年12月21日
クラウドデータベースとオンプレミスデータベースの相違
カテゴリー:システム開発, テクノロジー
タグ:BaaS, Database, DBaas, クラウドサービス
データベースはシステムのボトルネックになりやすく、その性能や設計がとても大事です。また、レプリケーションの設定や運用も十分な知識が必要です。データベースが停止するだけで、業務やサービスが完全にストップしてしまったという話はよく聞かれます。
そんな中で注目されているのがデータベースのマネージドデータベースであったりDaaS(Database as a Service)やBaaS(Backend as a Service)になります。本記事ではそれぞれの特徴とメリット、デメリットなどを紹介します。
オンプレミスでの運用
自社管理されたサーバーで、データベースサーバーを提供する方法です。最近ではクラウドインスタンスであってもデータベースサーバーを自分たちで運用する場合はオンプレミスとも言えそうです。
オンプレミスの最大のメリットは設定の自由度になるでしょう。プラグインを追加することもできますし、設定ファイルを細かく指定できます。OS自体のチューニングもできますので、細かい運用ニーズに応えられます。
デメリットはサーバーおよびデータベースサーバーの双方を管理しなければならないことでしょう。セキュリティはもちろん、定期的なパッチを当てたり、最適な設定についても自分たちで学んで指定する必要があります。
サーバーを運用するメンバーが確実にいること、データベース管理者が存在する場合に選択できる方式になるでしょう。
マネージドデータベースサービス(DaaS)を利用する
パブリッククラウド各社が提供するデータベースのマネージドサービスを使って運用する方法です。APIとしてはオンプレミスの場合とほぼ変わりませんので、オンプレミスから移行することも検討できます。なお、あまり特殊なチューニングしている場合は移行できないケースもあります。
マネージドデータベースサービスの最大のメリットは運用負荷が大幅に軽減することでしょう。一人のデータベース管理者しかいない場合でも、大量のデータベースを一括管理できますし、もし不在であっても設定項目を学ぶことで適切な運用が可能です。
また、セキュリティ面での安心感もあります。セキュリティパッチなども適用できますので(手動など)、セキュリティホールによる情報漏洩などのリスクは軽減できます。レプリケーションの設定なども簡単にできます。
商用データベースの場合、クラウドで提供されるものはライセンスを気にせずに利用できます。多くの場合、ライセンスは月額費用に含まれますが、自分たちの保有するものを持ち込めます。この場合、オンプレミスでデータベースサーバーを運用するよりも安価で構築できることが多いようです。
デメリットは設定の自由度が制限されることでしょう。設定画面で提供されているもの以上の設定はできませんので、そこで要件に合っていないと導入ができません。
また、パブリッククラウド毎に提供されるマネージドデータベースは異なります。そのため、選択するデータベースによってはベンダーロックが強くなってしまうという問題があります。
データベース管理者が不在、または経験が浅い場合でも堅牢にデータベースサーバーを運用したい場合に選択したい方法です。
BaaS(Backend as a Service)を利用する
BaaSの多くはデータベース機能を提供しています。事前のスキーマ設計を必要とするもの、逆に不要なものもあります。データベースを立ち上げる必要なく利用できるのが便利です。
メリットはデータベースの立ち上げから運用まで、データベースのケアをせずに使えることでしょう。運用のボトルネックになりやすいデータベースを完全にお任せできる点は大きなメリットです。
デメリットとしては、通信方式がHTTPで行われることが多いため、これまでのデータベースを用いた開発で利用していたSQLが使えないことです。それぞれのBaaSに合わせた開発方式を習得する必要があります。
また、HTTP経由ということもあってトランザクションがサポートされないことが多いのも難点になります(Hexabaseでは一部の処理についてトランザクションをサポートしています)。そのためロールバックを必要としないようなスキーマ設計が求められます。
BaaSはサーバーサイドエンジニアがいないような開発体制の中で、高速に開発を進めたい場合にお勧めです。
まとめ
オンプレミス以外になるとクラウドサービスを選択することになりますが、その中でも幾つかのパターンに分かれます。選定する際の基準としては、プロジェクトの要件や自社の開発体制に依るでしょう。
データベースはシステムの要になりますので、別なデータベースや方式に乗り換えるのも大きなコストがかかります。それだけに初期設計段階で十分に検討し、最適な方法を選択してください。
- カテゴリー
- タグ
- システム運用 (16)
- TypeScript (1)
- WebAssembly (2)
- ウォーターフォール開発 (2)
- 業務システム (28)
- CSS (2)
- GraphQL (1)
- プログラミング (31)
- スタートアップ (11)
- Nexaweb (1)
- BaaS (10)
- データベース (5)
- SPA (2)
- 基本用語 (26)
- Case study (5)
- Keyword (10)
- FaaS (1)
- システム開発 (69)
- スクラム (1)
- フロントエンド (38)
- AI (26)
- アジャイル開発 (18)
- Supabase (1)
- イノベーション (5)
- Database (2)
- 月額制 (1)
- PaaS (3)
- ACF (1)
- BookReview (3)
- サービス開発 (5)
- React (3)
- Firebase (1)
- クラウドサービス (12)
- low-code (2)
- バックエンド (8)
- ナレッジマネジメント (1)
- ChatGPT (1)
- Vue.js (2)
- Tailwind CSS (1)
- DBaas (2)
- プロジェクト管理 (13)
- セミナー (2)
- Web (21)
- 失敗事例 (2)
- Hexabase_health (1)
- 生成AI (7)
- 受託開発 (1)
- Kubernetes (3)
- WebComponents (1)
- 通知 (1)
- API (6)
- Next.js (1)
- フレームワーク (3)
- ローコード開発 (4)
- ノーコード開発 (1)
- JavaScript (2)
- Hexabase (12)
- LLM (3)
- 画像生成 (1)
- DX (34)