クラウドデータベースの知識学習 - 概要

1. クラウド コンピューティングはクラウド データベースの台頭の基礎です

        クラウド コンピューティングは、分散コンピューティング、並列コンピューティング、ユーティリティ コンピューティング、ネットワーク ストレージ、仮想化、負荷分散などのコンピュータとネットワーク テクノロジの開発と統合の成果です。クラウド コンピューティングは、動的にアップグレードおよび仮想化できる一連のリソースで構成されており、ユーザーはクラウド コンピューティング テクノロジを習得する必要がなく、ネットワーク経由でこれらのリソースにアクセスできます。

        クラウドコンピューティングには主に、IaaS(Infra Structure as a Service)、PaaS(Platform as a Service)、SaaS(Software as a Service)の 3 種類があります。SaaSを例に挙げると、ユーザーはソフトウェアを購入してローカルコンピュータにインストールする必要がなくなり、ネットワーク経由でさまざまなソフトウェアを利用できるようになり、ユーザーのソフトウェアの使い方が大きく変わりました。SaaS ベンダーはアプリケーション ソフトウェアを自社のサーバーに一律に展開し、ユーザーはオンラインでオンデマンドで購入、使用、支払いを行うことができます。Salesforce は 1999 年に設立され、SaaS クラウド サービスを提供し、「End Software」というスローガンを提唱した SaaS ベンダーのパイオニアです。同社に続いて、他の SaaS ベンダーも台頭してきました。

        表 6-1 に示すように、従来のソフトウェアの使用と比較して、クラウド コンピューティングには明らかな利点があります。

2. クラウドデータベースの概念

        クラウド データベースは、クラウド コンピューティング環境に展開および仮想化されたデータベースです。クラウド データベースは、クラウド コンピューティングを背景に開発されたインフラ共有の新しい方法であり、データベースのストレージ容量を大幅に強化し、人員、​​ハードウェア、ソフトウェアの構成の重複を排除し、ソフトウェアとハ​​ードウェアのアップグレードを容易にします。実装が簡単で、多くのバックエンド機能も仮想化されます。クラウド データベースには、高い拡張性、高可用性、マルチテナンシー、およびリソースの効果的な分散という特徴があります。

        クラウドデータベースでは、図 6-1 に示すように、すべてのデータベース機能がクラウド上で提供され、クライアントはネットワークを介してリモートからクラウドデータベースが提供するサービスを利用できます。クライアントはクラウド データベースの基礎となる詳細を知る必要はありません。基礎となるハードウェアはすべて仮想化されており、クライアントに対して透過的です。単一のサーバー上で実行されているデータベースを使用しているのと同じです。非常に便利で簡単です。理論的には、ほぼ無制限のストレージと処理能力を得ることができます。

        なお、データベースはアプリケーション基盤(ミドルウェア)の一部であるため、クラウドデータベースもPaaSの範疇に含まれると考える人もいれば、データベース自体もアプリケーションソフトウェアの一種であるためクラウドデータベースもPaaSに含まれると考える人もいます。 SaaS に含まれます。この問題に関して、この記事ではクラウド データベースを SaaS として分類していますが、クラウド データベースを PaaS と SaaS のどちらに分類するかが最も重要ではないとも考えています。実際、クラウド コンピューティングの IaaS、PaaS、SaaS の 3 つのレベル間の境界は、あまり明確ではないことがあります。クラウド データベースの最も重要な点は、ユーザーがネットワークを通じてクラウド データベースの機能をサービスとして取得できることです。

3. クラウドデータベースの特徴

3.1.動的にスケーラブル

        理論上、クラウド データベースは無限に拡張可能であり、増大するデータ ストレージのニーズに対応できます。クラウド データベースは、状況の変化に直面しても優れた復元力を発揮します。たとえば、製品の小売を行う電子商取引会社の場合、製品の需要に季節的または突然の変化が発生したり、Animoto のようなオンライン コミュニティ サイトの場合、急激なユーザー増加段階が発生したりすることがあります。需要の増加に対応するためのデータベース ストレージ リソースの追加には数分しかかかりません。需要が過ぎると、これらのリソースはすぐに解放されます。

3.2. 高可用性

        単一障害点はありません。ノードに障害が発生した場合、残りのノードが未完了のトランザクションを引き継ぎます。さらに、クラウド データベースでは、通常、データは冗長かつ地理的に分散して保存されます。Google、Amazon、IBM などの大規模なクラウド コンピューティング プロバイダーは、世界中にデータ センターを分散しており、地理的に異なる間隔でデータを複製することで高レベルのフォールト トレランスを提供できます。たとえば、Amazon SimpleDB はさまざまなリージョンにデータをレプリケートするため、あるリージョンでクラウド施設に障害が発生した場合でも、データは引き続き使用できます。

3.3.使用コストの削減

        通常、マルチテナンシーの形式で、同時に複数のユーザーにサービスが提供されます。この形式の共有リソースによりユーザーのコストを節約でき、ユーザーはクラウド コンピューティング環境を使用するために「従量課金制」アプローチを採用します。あらゆる種類のソフトウェアおよびハードウェア リソースにより、リソースが不必要に浪費されることはありません。さらに、クラウド データベースの基盤となるストレージには通常、多数の安価な商用サーバーが使用されるため、ユーザーの出費も大幅に削減されます。Tencent Cloud Database が公開した公式情報によると、同様のデータベース パフォーマンスを達成する場合、独自の MySQL に投資して構築した場合の単価は 1 日あたり 1 ユニットあたり 50.6 元で、デュアルマシンの災害復旧を実現するには 2 ユニットが必要です。は 101.2 元/日、平均ストレージコストは 1 GB/日あたり 0.25 元、1 元で取得できる平均 QPS (Query Per Second) は 24 回/秒、Tencent Cloud データベース製品を使用した場合、企業は初期構築コストを一切投資する必要がなく、コストは 1 日あたりわずか 72 元、平均ストレージコストは 1 GB あたり 0.18 元、1 日あたり 1 元で得られる平均 QPS は 83 回/秒です。自社構築と比較して、1 元のクラウド データベースで得られる平均 QPS はオリジナルの 346% に増加し、非常に高いコストパフォーマンスを実現します。

3.4. 使いやすさ

        クラウド データベースのユーザーは、元のデータベースを実行しているマシンを制御することができず、元のデータベースがどこにあるかを知る必要もありません。ユーザーは、ローカル データベースを使用する場合と同様に、有効な接続文字列 (URL) を入力するだけでクラウド データベースの使用を開始できます。MySQL をベースとした多くのクラウド データベース製品 (Tencent Cloud Database、Alibaba Cloud RDS など) は MySQL プロトコルと完全に互換性があり、ユーザーは MySQL プロトコルに基づくクライアントまたは API を介してインスタンスにアクセスできます。ユーザーは、コードを変更することなく、元の MySQL アプリケーションをクラウド ストレージ プラットフォームにシームレスに移行できます。

3.5. ハイパフォーマンス

        大規模分散ストレージサービスクラスタを採用し、大量データアクセス、複数計算機室の自動冗長バックアップ、読み書き自動分離をサポートします。

3.6.メンテナンスフリー

        ユーザーは、バックエンドマシンやデータベースの安定性、ネットワークの問題、コンピュータルームの災害、単一データベースの負荷などのさまざまなリスクに注意を払う必要がなく、クラウドデータベースサービスプロバイダーが24時間365日の専門サービスを提供します。拡張と移行は透過的です。また、全方位、全天候型の 3 次元監視を提供できるため、ユーザーは深夜にデータベース障害に対処する必要がありません。

3.7.安全性

        データの分離を提供し、異なるアプリケーションのデータは互いに影響を与えることなく異なるデータベースに存在します。セキュリティ チェックを提供し、悪意のある攻撃を適時に検出して拒否できます。データの損失が発生しないようにデータのマルチポイント バックアップを提供します。

        Tencent Cloud Database を例に挙げると、開発者は Tencent Cloud のクラウド サーバー インスタンス リソースをすぐに申請でき、IP/PORT 経由で MySQL インスタンスに直接アクセスできます。MySQL インスタンスをインストールする必要はありません。オリジナルの SQL アプリケーションを Tencent に移行できます。ワンクリックでクラウド プラットフォーム: これにより人件費が大幅に節約されると同時に、クラウド データベースは MySQL プロトコルと完全に互換性があり、クライアントまたは MySQL プロトコルに基づく API を介してインスタンスに簡単にアクセスできます。さらに、大規模な分散ストレージ サービス クラスターを使用して大規模なデータ アクセス、24 時間 365 日対応のプロフェッショナル ストレージ サービスをサポートし、最大 99.99% のサービス可用性を備えた MySQL クラスター サービスを提供でき、データ信頼性は 99.999% を超えています。Tencent Cloud データベースと自社構築データベースの比較を表 6-2 に示します。

4. クラウド データベースは、パーソナライズされたデータ ストレージのニーズに最適な選択肢です

        ビッグデータの時代では、あらゆる企業がほぼ毎日大量のデータを生成し続けています。企業の種類が異なれば、ストレージのニーズも異なります。クラウド データベースは、さまざまな企業のパーソナライズされたストレージのニーズに十分に対応できます。

        まず第一に、クラウド データベースは大企業の大規模なデータ ストレージのニーズを満たすことができます。現在のデータ爆発のビッグデータ時代において、クラウド データベースには幅広い応用の可能性があります。IDC の調査レポートによると、企業の構造化データに対するストレージ需要は毎年約 20% 増加し、非構造化データに対するストレージ需要は毎年約 60% 増加すると予測されています。従来のリレーショナル データベースは水平方向に拡張することが難しく、このような大量のデータを保存できません。したがって、拡張性の高いクラウド データベースは、企業が大量のデータを保存および管理するのに適した選択肢となっています。

        第 2 に、クラウド データベースは中小企業の低コストのデータ ストレージのニーズを満たすことができます。中小企業は IT インフラストラクチャへの投資が比較的限られており、サードパーティからデータベース サービスを便利に、迅速に、安価に入手することに非常に熱心です。クラウド データベースは、同時に複数のユーザーにサービスを提供するマルチテナント アプローチを採用しているため、1 ユーザーの使用コストが削減されます。さらに、ユーザーは通常、クラウド データベース サービスを使用するときにオンデマンドで支払いを行うため、リソースを無駄にしたり追加費用が発生したりすることはありません。したがって、クラウドデータベースの利用コストは非常に低く、中小企業にとっては企業の情報化の敷居が大幅に下がり、企業はより低コストで高品質のプロレベルのデータベースサービスを得ることができ、効果的に業務改善を図ることができます。企業の情報化のレベル。

        さらに、クラウド データベースは、企業の動的に変化するデータ ストレージのニーズを満たすことができます。企業がさまざまなタイミングで保存する必要があるデータの量は常に変化しており、増加する場合もあれば減少する場合もあります。小規模なアプリケーションの場合、システム負荷の変化はシステムのアイドル状態の冗長リソースによって処理できますが、大規模なアプリケーションの場合、従来のリレーショナル データベースではアプリケーションのニーズを満たすことができないだけでなく、スケーラビリティが低いだけでなく、企業に高いストレージコストと管理オーバーヘッドをもたらします。クラウド データベースの優れたスケーラビリティにより、企業は需要が増加した場合には直ちにデータベース機能を向上させ、需要が減少した場合には過剰なデータベース機能を即座に解放することができるため、企業の動的なデータ ストレージのニーズをより適切に満たすことができます。

        もちろん、これはクラウド データベースがさまざまなタイプの個人化されたストレージ ニーズに対応できるという意味ではありませんが、企業はデータをクラウド データベースに保存する必要があることを意味します。自社構築データベースを選択するかクラウド データベースを選択するかは、企業自体の特定のニーズによって異なります。一部の大企業では、通常、自社構築のデータベースを使用していますが、その企業は比較的潤沢な財務リソースを持ち、データベースの保守を担当する社内 IT チームを抱えていますが、その一方で、データは現代の企業の中核資産であり、データ セキュリティを考慮すると、企業は内部データをパブリック クラウド データベースに保存することに消極的であり、クラウド データベース プロバイダーは常にデータ セキュリティを重視しますが、それでも企業の懸念を払拭することはできません。資金力やIT予算が限られている一部の中小企業にとって、データベースの構築や維持に多額の費用をかけることは不可能であり、企業データはそれほど機密性の高いものではないため、投資ゼロのデータベースサービスであるクラウドデータベースが注目されています。初期段階ではメンテナンスが不要で、後の段階ではメンテナンスが必要ないため、非常に優れており、ニーズに応えます。

5. クラウドデータベースと他のデータベースの関係

        リレーショナル データベースはリレーショナル データ モデルを使用し、NoSQL データベースは非リレーショナル データ モデルを使用します。どちらも異なるデータベース テクノロジです。データモデルの観点から見ると、クラウドデータベースは新しいデータベーステクノロジーではなく、データベース機能をサービスの形で提供するだけです。クラウド データベースには独自のデータ モデルがありません。クラウド データベースで使用されるデータ モデルは、リレーショナル データベースで使用されるリレーショナル モデル (Microsoft の SQL Azure クラウド データベースや Alibaba Cloud RDS などはすべてリレーショナル モデルを使用します) である場合もあれば、 NoSQL データベースで使用される非リレーショナル モデル (たとえば、Amazon Dynamo クラウド データベースは「キー/値」ストレージを使用します)。同じ会社が、異なるデータ モデルを使用して複数のクラウド データベース サービスを提供する場合もあります。たとえば、Baidu Cloud Database は、分散リレーショナル データベース サービス (リレーショナル データベース MySQL に基づく) と分散非リレーショナル データベース サービス (リレーショナル データベース MySQL に基づく) の 3 つのデータベース サービスを提供します。リレーショナル データベース MySQL)、ドキュメント データベース MongoDB) に基づく、キー/値の非リレーショナル データベース サービス (キー/値データベース Redis に基づく)。実際、多くの企業がクラウド データベースを開発する場合、バックエンド データベースはさまざまな既存のリレーショナル データベースや NoSQL データベース製品を直接使用します。たとえば、Tencent クラウド データベースはバックエンド データベースとして MySQL を使用し、Microsoft の SQL Azure クラウド データベースはバックエンド データベースとして SQL Server を使用します。市場の全体的なアプリケーション状況から判断すると、NoSQL アプリケーションは開発者に対する要求が高く、MySQL は成熟したミドルウェア、運用保守ツールを備え、良性のエコシステムなどを形成しているため、現段階からクラウド データベースが必要となります。バックエンド データベースは主に MySQL とそれを補足する NoSQL です。

        クラウドデータベースなどのITサービスモデルが登場する以前は、企業がデータベースを利用するにはリレーショナルデータベースやNoSQLデータベースを自社で構築する必要があり、「自社構築データベース」と呼ばれていました。クラウドデータベースとこれら「自社構築データベース」の最も本質的な違いは、クラウドデータベースはクラウド上に展開されるデータベースであること、SaaS型のサービスモデルを採用していること、ネットワークリースによりデータベースサービスを利用できること、場所を問わず利用できることです。ネットワークであるため、前払いは必要ありません。投資と保守後のコストも比較的低いです。クラウド データベースはユーザーに対して完全に透過的であり、ユーザーは自分のデータがどこに保存されているかわかりません。クラウド データベースは通常、マルチテナント モデルを採用しています。つまり、複数のテナントが 1 つのインスタンスを共有し、テナントのデータが分離および共有されるため、データ ストレージの問題が解決され、ユーザーのデータベース使用コストが削減されます。しかし、自社構築のリレーショナルデータベースやNoSQLデータベースは、それ自体がSaaS型のサービスモデルを採用していないため、ユーザー自身がITインフラの構築やデータベースの構成を行う必要があり、コストが比較的高価で、計算機室のメンテナンスやデータベースのメンテナンスも必要となります。自分自身で障害を処理します。

おすすめ

転載: blog.csdn.net/java_faep/article/details/132754618