序章

安全で信頼性の高いデータストレージは、ほとんどすべての最新のアプリケーションにとって必須です。 ただし、自己管理型のオンプレミスデータベースに必要なインフラストラクチャは、多くのチームにとって非常に高額になる可能性があります。 同様に、本番データベースを効果的に維持するために必要なスキルと経験を持っている従業員は、手に入れるのが難しい場合があります。

クラウドコンピューティングサービスの普及により、データベースのプロビジョニングに関連する参入障壁は低くなりましたが、多くの開発者は、ニーズに合わせてデータベースを管理および調整するために必要な時間や専門知識をまだ欠いています。 このため、多くの企業は、マネージドデータベースサービスを利用して、成長に合わせてデータベースを構築および拡張できるようにしています。

この概念的な記事では、管理対象データベースとは何か、およびそれらが多くの組織にとってどのように役立つかについて説明します。 また、マネージドデータベースソリューションの上に次のアプリケーションを構築する前に行う必要のあるいくつかの実際的な考慮事項についても説明します。

一言で言えば管理されたデータベース

マネージドデータベースは、エンドユーザーがデータベースへのアクセスに対してクラウドサービスプロバイダーに支払うクラウドコンピューティングサービスです。 通常のデータベースとは異なり、ユーザーは自分で管理対象データベースを設定または保守する必要はありません。 むしろ、データベースのインフラストラクチャを監視するのはプロバイダーの責任です。 これにより、ユーザーはデータベースの構成や最新の状態に時間を費やす代わりに、アプリケーションの構築に集中できます。

管理対象データベースのプロビジョニングプロセスはプロバイダーによって異なりますが、一般的には他のクラウドベースのサービスと同様です。 アカウントを登録してダッシュボードにログインした後、ユーザーは利用可能なデータベースオプション(データベースエンジンやクラスターサイズなど)を確認し、それらに適したセットアップを選択します。 管理対象データベースをプロビジョニングした後、GUIまたはクライアントを介してデータベースに接続し、データのロードとデータベースのアプリケーションとの統合を開始できます。

マネージドデータソリューションは、データベースのプロビジョニングと保守のプロセスを簡素化します。 ターミナルからコマンドを実行してインストールおよびセットアップする代わりに、ブラウザーで数回クリックするだけで、本番環境に対応したデータベースをデプロイできます。 クラウドプロバイダーは、データベース管理を簡素化および自動化することにより、初心者のデータベースユーザーでさえも、データ駆動型のアプリケーションやWebサイトを簡単に構築できるようにします。 これは、さまざまなデータベース管理タスクを単純化、自動化、および抽象化するという数十年にわたる傾向の結果であり、それ自体がデータベース管理者が長い間感じていた問題点への対応でした。

オンプレミスおよび自己管理型データベースの問題点

クラウドコンピューティングモデルが登場する前は、データセンターを必要とする組織は、データセンターの設置に必要なすべての時間、スペース、およびリソースを提供する必要がありました。 データベースが稼働すると、ハードウェアを維持し、ソフトウェアを最新の状態に保ち、データベースを管理するチームを雇い、データベースの使用方法について従業員をトレーニングする必要がありました。

2000年代にクラウドコンピューティングサービスの人気が高まるにつれ、サーバーインフラストラクチャのプロビジョニングがより簡単で手頃な価格になりました。これは、クラウドコンピューティングサービスに必要なハードウェアとスペースを、それを使用するユーザーが所有または管理する必要がなくなったためです。 同様に、完全にクラウド内にデータベースをセットアップすることは、はるかに難しくなりました。 ビジネスまたは開発者は、サーバーを要求し、選択したデータベース管理システムをインストールして構成し、データの保存を開始するだけです。

クラウドコンピューティングは、従来のデータベースをセットアップするプロセスを容易にしましたが、そのすべての問題に対処したわけではありません。 たとえば、クラウドでは、データベースがデータの収集を開始する前に、データベースのインフラストラクチャフットプリントの理想的なサイズを特定することが依然として難しい場合があります。 クラウドの利用者は消費するリソースに基づいて課金されるため、これは重要です。また、プロビジョニングするサーバーが必要以上に大きい場合、必要以上の料金を支払うリスクがあります。 さらに、従来のオンプレミスデータベースと同様に、クラウドでデータベースを管理することはコストのかかる作業になる可能性があります。 ニーズによっては、経験豊富なデータベース管理者を雇うか、データベースを効果的に管理するために既存のスタッフのトレーニングにかなりの時間とお金を費やす必要がある場合があります。

これらの問題の多くは、小規模な組織や独立した開発者にとっては複雑です。 大企業は通常、データベースに関する深い知識を持つ従業員を雇う余裕がありますが、小規模なチームは通常、利用できるリソースが少なく、既存の組織の知識しか残していません。 これにより、レプリケーション、移行、バックアップなどのタスクは、試行錯誤だけでなく、多くのオンザジョブ学習を必要とする可能性があるため、さらに困難で時間がかかります。

マネージドデータベースは、これらの問題点を解決するのに役立ち、企業や開発者に多くのメリットをもたらします。 これらの利点のいくつかと、それらが開発チームにどのように影響するかを見ていきましょう。

管理対象データベースの利点

マネージドデータベースサービスは、データベースのプロビジョニングと管理に関連する多くの問題を軽減するのに役立ちます。 1つには、開発者はマネージドデータベースサービス上にアプリケーションを構築して、データベースサーバーのプロビジョニングプロセスを大幅に高速化します。 自己管理型ソリューションでは、サーバー(オンプレミスまたはクラウド)を取得し、クライアントまたは端末からサーバーに接続し、サーバーを構成および保護してから、データベース管理ソフトウェアをインストールしてセットアップする必要があります。データの保存を開始します。 管理対象データベースでは、データベースサーバーの初期サイズを決定し、プロバイダー固有の追加オプションを構成するだけで、新しいデータベースをアプリやWebサイトと統合する準備が整います。 これは通常、プロバイダーのユーザーインターフェイスを介してわずか数分で実行できます。

管理対象データベースのもう1つの魅力は、自動化です。 自己管理型データベースは、組織の従業員がスケーリングから更新の実行、移行の実行、バックアップの作成まで、すべての管理タスクを手動で実行する必要があるため、組織のリソースを大量に消費する可能性があります。 ただし、管理対象データベースでは、これらのタスクやその他のタスクは自動的またはオンデマンドで実行されるため、人的エラーのリスクが大幅に軽減されます。

これは、マネージドデータベースサービスがデータベーススケーリングのプロセスを合理化するのに役立つという事実に関連しています。 自己管理型データベースのスケーリングは、非常に時間とリソースを消費する可能性があります。 スケーリング戦略としてシャーディング、レプリケーション、負荷分散などを選択するかどうかにかかわらず、インフラストラクチャを自分で管理する場合は、プロセスでデータが失われないようにし、アプリケーションが引き続き適切に機能するようにする責任があります。 ただし、アプリケーションをマネージドデータベースサービスと統合する場合は、データベースクラスターをオンデマンドで拡張できます。 最適なサーバーサイズやCPU使用率を事前に把握する必要はなく、より多くのリソースをオンザフライですばやくプロビジョニングできます。 これにより、不要なリソースの使用を回避できます。つまり、不要なリソースにお金を払う必要もありません。

マネージドソリューションには、高可用性が組み込まれている傾向があります。 クラウドコンピューティングのコンテキストでは、サービスが安定していて長期間障害なく実行される可能性が高い場合、サービスは高可用性であると言われます。 ほとんどの評判の良いクラウドプロバイダーの製品には、サービスレベルアグリーメント(SLA)が付属しています。これは、サービスの可用性と信頼性を保証するプロバイダーとその顧客間のコミットメントです。 通常のSLAは、顧客が予想するダウンタイムの量を指定し、多くの場合、これらのサービスレベルが満たされない場合の顧客の補償も定義します。 これにより、データベースがクラッシュしないことを顧客に保証できます。クラッシュした場合でも、少なくともプロバイダーからの何らかの補償を期待できます。

一般に、管理対象データベースは、データベースのプロビジョニングと保守に関連するタスクを簡素化します。 プロバイダーによっては、データベースをプロビジョニングしてアプリケーションを構築およびスケーリングするときにデータベースと対話するために、データベースの操作にある程度の経験が必要になる可能性があります。 ただし、最終的には、管理対象データベースの管理に必要なデータベース固有のエクスペリエンスは、自己管理型ソリューションの場合よりもはるかに少なくなります。

もちろん、マネージドデータベースはすべての問題を解決できるわけではなく、一部の人にとっては理想的とは言えない選択であることが判明する場合があります。 次に、管理対象データベースをプロビジョニングする前に考慮すべき潜在的な欠点のいくつかについて説明します。

実用的な考慮事項

マネージドデータベースサービスは、データベースの展開と保守のストレスを軽減できますが、データベースにコミットする前に留意すべき点がいくつかあります。 管理対象データベースの主な魅力は、データベース管理の面倒な側面のほとんどを抽象化することです。 この目的のために、マネージドデータベースプロバイダーは、最も一般的なユースケースを満たす基本的なデータベースを提供することを目的としています。 したがって、彼らのデータベース製品は、より専門的なデータベースソフトウェアに含まれる大量のカスタマイズオプションや独自の機能を備えていません。 このため、データベースを調整する自由があまりなく、クラウドプロバイダーが提供するものに制限されます。

管理されたデータベースは、ほとんどの場合、自己管理されたデータベースよりも高価です。 これは、データベースの管理をサポートするためにクラウドプロバイダーに料金を支払っているため、理にかなっていますが、リソースが限られているチームにとっては懸念の原因となる可能性があります。 さらに、管理対象データベースの料金は通常、データベースが使用するストレージとRAMの量、データベースが処理する読み取りの数、およびユーザーが作成するデータベースのバックアップの数に基づいています。 同様に、大量のデータまたはトラフィックを処理するマネージドデータベースサービスを使用するアプリケーションは、セルフマネージドクラウドデータベースを使用する場合よりもコストがかかります。

また、管理対象データベースへの切り替えが内部ワークフローに与える影響と、それらの変更に適応できるかどうかについても検討する必要があります。 プロバイダーはそれぞれ異なり、SLAによっては、一部の管理タスクのみを担当する場合があります。これは、フルサービスソリューションを探している開発者にとっては問題があります。 一方、一部のプロバイダーは、SLAを非常に制限したり、顧客を問題のプロバイダーに完全に依存させたりする可能性があります。これは、ベンダーロックインとして知られる状況です。

最後に、そしておそらく最も重要なこととして、使用を検討しているマネージドデータベースサービスがセキュリティニーズを満たすかどうかを慎重に検討する必要があります。 オンプレミスデータベースを含むすべてのデータベースは、SQLインジェクション攻撃やデータ漏洩などの特定のセキュリティ脅威にさらされがちです。 ただし、セキュリティのダイナミクスは、クラウドでホストされているデータベースとは大きく異なります。 管理対象データベースのユーザーは、データの物理的な場所やデータにアクセスできるユーザーを制御したり、特定のセキュリティ標準への準拠を保証したりすることはできません。 これは、クライアントのセキュリティニーズが高まっている場合に特に問題になる可能性があります。

説明のために、クライアントが財務記録にアクセスして支払いを行うことができるアプリケーションを構築するために銀行に雇われていると想像してください。 銀行は、アプリに保存データ暗号化と適切なスコープのユーザー権限が必要であり、 PCIDSSなどの特定の規制基準に準拠している必要があると規定する場合があります。 すべてのマネージドデータベースプロバイダーが同じ規制基準に準拠したり、同じセキュリティ慣行を維持したりするわけではなく、1人の顧客だけに新しい基準や慣行を採用する可能性は低いです。 このため、このようなアプリケーションに依存するマネージドデータベースプロバイダーが、クライアントのニーズだけでなくセキュリティのニーズも満たすことができるようにすることが重要です。

結論

マネージドデータベースには、さまざまなビジネスや開発者にアピールする多くの機能がありますが、マネージドデータベースは、すべての問題を解決したり、すべてのニーズに適合したりするわけではありません。 管理対象データベースの機能セットと構成オプションの制限、コストの増加、柔軟性の低下が、潜在的な利点を上回っていることに気付く人もいるかもしれません。 ただし、使いやすさ、スケーラビリティ、自動バックアップとアップグレード、高可用性などの魅力的なメリットにより、さまざまな業界でマネージドデータベースソリューションの採用が増えています。

DigitalOceanマネージドデータベースの詳細に興味がある場合は、マネージドデータベース製品ドキュメントを確認することをお勧めします。