DBaaSの仕組み、利点、課題、ユースケースや考慮事項を簡潔に網羅したDBaaSまるわかりガイド
すべての業界のありとあらゆるシステムは、結局データベースが基本です。金融機関も医療機関も小売業界でも、およそシステムと名がつくものは結局、データをどのように処理して保存し、保存したデータをどのように取り出して表示するかをユーザー向けにいろいろと工夫したものを指します。極端な話、ユーザーがデータベースを直接使いこなせてデータを処理できるのなら、システムはデータベースそのものでもかまいません。
データベースとは、そのくらい、すべての企業にとって重要なものであり、企業はデータベースの設定、保全、管理に相当なコストと時間とリソースをかけています。
このコストと時間とリソースを軽減するために考え出されたのが、Database as a Service(DBaaS)です。
目次
DBaaSとは?
Database as a Service(DBaaS)とは、ユーザーが独自のハードウェアを構築、設定、管理することなく、クラウド上でデータベースを使用できるようにする、マネージド クラウド サービスです。DBaaSでは、デプロイメントとコンフィギュレーション、その後の管理、保全、スケーリングなどの諸々の作業をユーザーが行う必要はなく、すべてサービスプロバイダが対応します。
DBaaSの使用例
DBaaSには、以下のような使用方法が考えられます。
1. アプリケーション開発/テスト ― DBaaSを利用することで、開発者はデータベースを迅速にプロビジョニングでき、デプロイメントと設定の手間と時間を節約できます。この用途では、たとえば、MongoDB Atlas、Google Cloud SQL、 PlanetScaleなどの利用が適しています。
2. 在庫管理 ― 簡単にスケーリングできるDBaaSの柔軟性は、ボリュームの変化が激しい在庫管理システムに有効です。この用途では、たとえば、Amazon RDS、Azure SQL、CockroachDB Cloudなどの利用が適しています。
3. 物流管理 ― 配送パッケージや車輛の配車状況をリアルタイムで追跡するシステムの利便性は、データベースのレスポンスに大きく左右されます。DBaaSでは、大量データの入出力を低レイテンシで行えるので、レスポンスの迅速さが求められるシステムに適しています。たとえば、Amazon DynamoDB、Redis Enterprise Cloudなどを活用すると効果的です。
4. IoT ― 柔軟なスケーリングによる大量データへの対応は、IoTにも理想的です。IoTの管理システムでは、数百万のデバイスからデータストリームを収集し続け、トラッキングすることが求められます。このような用途では、InfluxDB Cloud、Timescale、Firestoreなどを利用できます。
DBaaSの仕組み
DBaaSのデータベースは、プロバイダが管理するクラウド インフラストラクチャ上で実行されます。ユーザーはウェブUIかAPIでデータベースにアクセスできます。アップデート、バックアップ、モニタリング、パフォーマンスの最適化などの管理・保守作業はプロバイダが行います。
DBaaSのカテゴリー
DBaaSのサービスプロバイダは、主に次の2種類に分けられます。
パブリッククラウド プロバイダ
AWS(Amazon RDS、DynamoDB、Aurora)、Google Cloud(Cloud SQL、Firestore)、Microsoft Azure(SQL Datastore、Cosmos DB)などのクラウドベンダーが、そのエコシステム内で直接DBaaSを提供しています。このようなパブリッククラウド サービスをすでに使用しているユーザーにとっては、DBaaSも同サービス内のものを使用するのが便利で理にかなっています。
プロプライエタリ クラウドベンダー
一方、MongoDB Atlas、Snowflake、PlanetScale、Neon、Fireboltなどは、独自のクラウド プラットフォームを提供しています。ユーザーは、データベースの使用量とその基盤となるクラウドサービスの料金を払うことになります。つまり、データベースとインフラストラクチャはベンダーによって提供されますが、実際のサーバーとストレージはパブリッククラウドによってホストされています。
では、この2種類のDBaaS、それぞれのメリットとデメリットを比べてみましょう。
パブリッククラウド プロバイダ | プロプライエタリ クラウドベンダー | |
利点 | 既存のクラウドアカウントによる統一されたデプロイメントと支払い | 単一ベンダーを通じて一貫したデプロイメントと支払い |
クラウドプロバイダの選択肢が豊富 | クラウドプロバイダの選択肢が豊富 | |
採用したパブリッククラウドで提供される他のサービスも統合環境で利用可能 | アナリティクス用または特定ユースケース向けに最適化されていることが多い | |
欠点 | ベンダーロックイン(特定ベンダーに縛られる) | ベンダーロックイン |
単一クラウド環境に依存 | サーバーの費用はベンダーとプロバイダ間の取り決め次第(ユーザには多少高くつく可能性も) | |
ワークロードをハイブリッド/マルチクラウド環境で移行できない(できても簡単ではない) | アプリケーションがクラウド限定の可能性 |
DBaaSを利用するメリット
パブリッククラウド プロバイダを使用するにせよ、プロプライエタリ クラウドベンダーを使用するにせよ、オンプレミスのサーバーでデータベースをホストせずにDBaaSを利用することには、さまざまな利点が期待できます。一般的な利点については冒頭でふれたので、ここでは、より具体的なメリットをいくつか紹介します。
● 総所有コスト(TCO)の削減 ― DBaaSを使用することで、オンプレミスで必要となるはずのハードウェアとソフトウェアへの初期投資が節約でき、大幅なコスト削減となります。DBaaSの費用はサブスクリプション ベースなので、運営コストとして計上でき、データベース管理に専任チームを置かなくて済むので、人件費も節約されます。
● 柔軟なスケーリング ― DBaaSでは、インフラストラクチャをその時その時のビジネスニーズに合わせて簡単にスケールアップ/スケールダウンできます。データベースの許容量が現行のビジネスニーズに常に合致した状態に保ち、最高レベルのコスト効率を維持できる可能性があります。
● 高可用性(HA)― DBaaSを提供するクラウドプロバイダのサービスには通常、高可用性が含まれているので、データベースはいつでも利用でき、緊急時でもダウンタイムが最小限に抑えられます。
● セキュリティの強化 ― DBaaSのプロバイダは概してセキュリティに力を入れており、保存データも移行中のデータも確実に保護する仕組みが整っています。また、プロバイダは業界の規制にも敏感なので、DBaaSを使用することで自社のコンプライアンス要件も満たしやすくなります。
● データベース管理の簡素化 ― DBaaSでは、クラウドプロバイダがアップデート、バックアップ、セキュリティパッチなどのメンテナンス作業を行うので、社内のITチームはよりビジネスニーズに即した重要な業務に集中できます。これは、データベース管理のオーバーヘッドを削減できるだけでなく、常に最新バージョンで運用できるなど、セキュリティ上も大きな利点となります。
● 迅速なプロビジョニング ― DBaaSでは、プロビジョニングとコンフィギュレーションが迅速化されるので、アプリケーションの開発者はすぐに開発プロセスに取り掛かることができます。つまり、アプリケーションのスピーディーな実用化によってビジネスニーズへのリアルタイムな対応が可能になります。
DBaaSの課題
このように、DBaaSの活用は企業に数々の効果をもたらしますが、良いことづくめというわけではありません。DBaaSを導入する前に潜在的な問題をあらかじめ検証できるよう、以下にDBaaSの課題または想定される問題点を挙げておきます。
● 透明性の欠如 ― オンプレミスでデータベースを導入するのと比べ、初期投資が圧倒的に低く抑えられますが、料金体系の透明性は完全ではありません。他のクラウドサービス同様に隠れたコストがあり、特にそれがワークロード関連で発生する場合が多く、思わぬ費用の増加につながる可能性もあります。
● 管理範囲の制限 ― マネージドサービスにおいては、自社ITスタッフがすべての機能に自由にアクセスできるわけではありません。基盤となるサーバー機能の一部はプロバイダによって抽象化されており、ユーザーはプロバイダのインフラストラクチャ管理に依存することになります。
● ネットワークへの依存 ― DBaaSの利点である大量データの処理能力や低レイテンシは、ネットワーク パフォーマンスに依存します。ユーザーのインターネットアクセスに不具合が生じたり、停電発生時などには、DBaaSのせっかくの利点も発揮できなくなります。
● セキュリティ上の懸念 ― 一般的にパブリッククラウド プロバイダのセキュリティはとても強固ですが、プラットフォームやインフラストラクチャのセキュリティを自分で直接管理せずにセキュリティをベンダーに依存することの不安は否定できません。
DBaaSに何を求めるのか
DBaaSプロバイダを選択するとき、DBaaSに何を求めるのかをあらかじめ明確にすることが重要です。費用の詳細を明確にするのはその一例ですが、費用以外にも以下の点を事前に検討する必要があります。
DBaaSデプロイメントの選択肢と制約
DBaaSプロバイダのサービスには、ストレージを単一のクラウド内に限定しているものもあります。これは、クラウド間の移行を制限し、コスト効率の高いクラウドオプションの選択を難しくします。また、オンプレミスのアナリティクスやKubernetes環境へのデプロイメントをサポートしていないDBaaSもあります。ベンダーを選択する際には、制限事項をよく確認し、要件に合ったものを慎重に選択する必要があります。
ライセンスの柔軟性
データベース ソリューションのライセンスが、マルチクラウドやオンプレミスの移行をサポートしているかどうかは重要です。開発、テスト、バックアップ、本番環境など、異なる環境でどのような費用が発生するのか、隠れた費用はないかなども事前に確認しておく必要があります。
キャンセルの容易さ
サービスプロバイダの選択が最適解となるのが理想的ですが、途中で変更しなければならない可能性もゼロではありません。ベンダーロックインのリスクを軽減するためにも、たとえば、APIやデータベース エンジン、自動化ツールなどがベンダー独自の知的所有権に属するのか、業界の標準ツールなのかは確認しておく必要があります。他のサービスに移行する際に、プログラミング修正が必要になったり、キャンセル料が発生したりしないか、データの移行は容易か、などの確認も重要です。
最適化の可能性
DBaaSのよっては、運用されるコンピューティング パッケージが制限され、データベース ワークロードに別個に対処しているサービスもあります。ノードベースのスケーリング(一般ノードを需要の増加に合わせて追加していく形態)に依存しているデータベース ソリューションは、将来的にコストとパフォーマンスの最適化を制限する可能性があります。データベースに特化されたノードのサポート、時間のかかるクエリのファインチューニングなどのサポートを確認することは、コスト効率の観点からも、とても重要になります。
アナリティクスの深度
基本的なアナリティクスに加え、時系列に沿った分析や地域別の分析をサポートしているDBaaSが便利です。ビジネスニーズによっては、予測モデルにもとづくアナリティクスをサポートしていることも必要になってくるかもしれません。組織の将来的なニーズの拡大に備え、幅広いユースケースに対応可能なアナリティクス サポートを視野に入れておく必要があります。
最適なDBaaSソリューションの選択方法
データベース管理を強化しながら、拡張性、信頼性、高パフォーマンスを確保するには、適正なDBaaSソリューションを選択することが不可欠です。最適な選択を決定するには、データベースのタイプ、スケーラビリティ、セキュリティ、パフォーマンス、ベンダーサポートなどの主な決定要因を慎重に評価していく必要があります。
以下、DBaaSを選択するうえで考慮すべき点を順に見ていきます。
1. 要件を定義する ― まず、処理するデータ量を見積もり、パフォーマンス要件、データベース要件を把握する必要があります。このような基本的な要因によっても、対応可能なDBaaSはある程度絞られます。
2. サービス内容を評価する ― 使用できるデータベースのタイプ(リレーショナル データベース、NoSQLなど)を特定し、スケーリング、バックアップの手順や利用できるセキュリティ機能を確認します。データベースは、技術要件を満たすものを選択しなければなりません。
3. パフォーマンスと高可用性 ― DBaaSプロバイダがインフラストラクチャの安定性、高可用性をどのくらい保証するのかを確認します。パフォーマンスの履歴を調べて、なるべくダウンタイム歴の少ないサービスを選ぶのが得策です。
4. セキュリティとコンプライアンス ― データの暗号化、アクセス制御など、重要なセキュリティ機能を提供するかどうかを確認します。業界で必要とされる一般的な規制への対応もあらかじめ確認しておく必要があります。
5. サポートとSLA ― サポートサービス内容、サービスレベルアグリーメント(SLA)を把握し、問題発生時の対応やタイムフレームがビジネスニーズに合っているかどうかを確認します。
6. 顧客フィードバック ― DBaaSプロバイダに対する顧客の口コミ評価やフィードバックも参考になります。
ユースケースごとの最適DBaaSソリューション
ユースケース | 推奨DBaaS |
一般的な用途でのSQL利用 | Amazon RDS、Google Cloud SQL |
大規模なPostgreSQL | Neon、Timescale、CockroachDB Cloud |
MySQLでのブランチ多用/開発特化 | PlanetScale |
ドキュメントベースのNoSQL | MongoDB Atlas、Firestore |
リアルタイム アナリティクス | SingleStore、ClickHouse Cloud |
時系列データ処理 | InfluxDB Cloud、Timescale |
IoT、ストリーム処理 | Redis Enterprise Cloud、DynamoDB |
モバイルアプリ/ウェブアプリ(BaaS) | Firebase(NoSQL)、Supabase (PostgreSQL) |
DBaaSとPaaSの違い
DBaaSとPaaSは、どちらもクラウドコンピューティングを簡素化するためのプラットフォームですが、サービスの目的が異なります。PaaS(Platform as a Service)はインフラストラクチャ プラットフォームそのものを提供し、ユーザーはそこでデータベースだけでなく、さまざまなアプリケーションを実行できます。PaaSでは、ユーザーがすぐに使えるデータベースは提供されないので、データベースのデプロイメント、コンフィギュレーション、メンテナンスはユーザーの責任で行います。その代わり、PaaSのほうがDBaaSより安価で、用途に柔軟性があります。
DBaaSとDBMSの違い
DBaaSは基本的にクラウドサービスですが、DBMS(データベース管理システム)はローカルサーバーやシステムにインストールして使用するソフトウェアです。したがって、DBaaSと異なり、DBMSのデータベース管理、メンテナンス、スケーリング、さらには、それを実行させるインフラストラクチャも、すべて社内ITチームの責任となります。そのぶん、データベースのカスタマイズやインフラストラクチャの選択などが柔軟にでき、よりニーズに沿った自由な管理が可能になります。
まとめ
DBaaSは、データベースのデプロイメント、コンフィギュレーション、メンテナンスをすべてサービスプロバイダに任せ、高可用性に優れたクラウドでデータベースを迅速かつ柔軟に実用化できるサービスです。オンプレミスでデータベースを管理する複雑さを回避し、物理的/人的リソースを節約したい、中小規模のITチームには特に適したサービスと言えます。
しかし、DBaaSソリューションも多種多様であり、導入時には、パフォーマンス、セキュリティ、サポート内容を吟味し、ビジネスニーズに最適なサービスを慎重に選択する必要があります。特に、費用面の詳細は事前によく確認し、また将来のビジネスの成長をサポートするスケーラビリティとコスト効率も重視すべきです。
DBaaSは、賢い選択さえすれば、企業がオーバーヘッドを最小限に抑えながら、最新のデータベース機能を柔軟に活用できる最適ソリューション モデルです。
関連したトピックス
- NoSQLクラウドデータベース: メリットと特徴
- データベースのバックアップはどのように業務を遂行しているかに依存する
- Gluesyncのレプリケーションソース(CDC付)およびレプリケーションターゲットとしてのDynamoDBのサポート
- 進化するクエリと PostgreSQLの台頭:そのデータベー スパフォーマンス重要性
- データベースはクラウド ファースト
- データベース・バックアップのタイプ、ヒント、利用例
- Azure Database for PostgreSQLを使い始めるにあたって
- ユーザ・データベースの最適化とOracle支出の削減
- ドキュメント・データベースは何か?
- Webセミナー録画 『GCP Cloud SQLへのデータ移行・連携はSyniti DRにお任せ!』2020/03/26 開催