管理対象データベースについて

前書き

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

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

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

簡単に言えば管理されたデータベース

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

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

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

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

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

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

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

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

管理されたデータベースは、これらの問題を解決するのに役立ち、企業や開発者にとって多くの利点があります。 これらの利点のいくつかと、それらが開発チームに与える影響について見ていきましょう。

管理されたデータベースの利点

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

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

これは、管理されたデータベースサービスがデータベースのスケーリングプロセスの合理化に役立つという事実に関連しています。 自己管理データベースのスケーリングは、非常に時間とリソースを消費します。 スケーリング戦略としてシャーディング、レプリケーション、ロードバランシングなどを選択する場合でも、インフラストラクチャを自分で管理する場合は、プロセスでデータが失われないようにし、アプリケーションが引き続き適切に動作するようにする必要があります。 ただし、アプリケーションをマネージドデータベースサービスと統合する場合は、データベースクラスターをオンデマンドでスケーリングできます。 事前に最適なサーバーサイズまたはCPU使用率を算出する必要はなく、より多くのリソースをオンザフライですばやくプロビジョニングできます。 これにより、不必要なリソースの使用を避けることができます。つまり、必要のないものに対しても料金を支払う必要がなくなります。

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

一般に、管理されたデータベースは、データベースのプロビジョニングとメンテナンスに関連するタスクを簡素化します。 プロバイダーにもよりますが、データベースをプロビジョニングし、アプリケーションを構築およびスケーリングする際にデータベースとやり取りするには、データベースを操作するある程度の経験が必要になります。 ただし、最終的には、管理されたデータベースの管理に必要なデータベース固有のエクスペリエンスは、自己管理ソリューションの場合よりもはるかに少なくなります。

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

実用的な考慮事項

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

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

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

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

たとえば、銀行に雇われて、クライアントが財務記録にアクセスして支払いを行えるアプリケーションを構築することを想像してください。 銀行は、アプリにdata at rest encryptionと適切なスコープのユーザー権限が必要であり、PCI DSSなどの特定の規制基準に準拠している必要があると規定する場合があります。 すべてのマネージドデータベースプロバイダーが同じ規制基準を順守したり、同じセキュリティ慣行を維持したりするわけではなく、顧客の1人だけに新しい標準や慣行を採用することはほとんどありません。 このため、このようなアプリケーションに依存しているマネージドデータベースプロバイダーが、クライアントのニーズだけでなくセキュリティのニーズにも対応できるようにすることが重要です。

結論

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

DigitalOceanマネージドデータベースについて詳しく知りたい場合は、マネージドデータベースproduct documentationを確認することをお勧めします。