オープンソース データベース用の Azure サービスについて説明する

完了

Azure データ サービスは、Azure SQL サービスに加えて、MySQL、MariaDB、PostgreSQL など、他の一般的なリレーショナル データベース システムで使用できます。 これらのサービスを使用する主な理由は、オンプレミス アプリでそれらを使用している組織が、アプリケーションに大規模な変更を加えることなく迅速に Azure に移行できるようにするためです。

MySQL、MariaDB、PostgreSQL とは

MySQL、MariaDB、PostgreSQL は、異なる専門領域向けに調整されたリレーショナル データベース管理システムです。

MySQL は、簡単に使用できるオープンソースのデータベース管理システムとして誕生しました。 これは、Linux、Apache、MySQL、PHP (LAMP) のスタック アプリの主要なオープン ソースのリレーショナル データベースです。 Community、Standard、Enterprise という複数のエディションが提供されています。 Community エディションは無料で利用でき、Linux 上で実行される Web アプリケーション用のデータベース管理システムとして、長年にわたって広く使用されています。 Windows 向けのバージョンも用意されています。 Standard エディションでは、より高いパフォーマンスが提供され、別のテクノロジを使用してデータが格納されます。 Enterprise エディションでは、包括的なツールと機能のセットが提供され、セキュリティ、可用性、スケーラビリティが強化されています。 Standard および Enterprise エディションのソフトウェアは無料ではありませんが、営利組織ではこれらのバージョンが最もよく使用されています。

MariaDB は新しいデータベース管理システムで、MySQL の初期の開発者たちによって作成されました。 それ以来、パフォーマンスを向上するためにデータベース エンジンが書き直され、最適化されています。 MariaDB は、Oracle Database (人気のある別の商用データベース管理システム) との互換性があります。 MariaDB の注目すべき機能の 1 つは、テンポラル データの組み込みサポートです。 1 つのテーブルにデータの複数のバージョンを保持できるため、アプリケーションは過去のある時点に出現していたデータをクエリできます。

PostgreSQL は、ハイブリッドのリレーショナル オブジェクト データベースです。 リレーショナル テーブルにデータを格納できますが、PostgreSQL データベースではカスタム データ型を独自の非リレーショナル プロパティと共に格納することもできます。 データベース管理システムは拡張可能で、クエリによって実行できるコード モジュールをデータベースに追加できます。 もう 1 つの重要な特徴は、線、円、多角形などの幾何データを格納および操作できることです。

PostgreSQL には、pgsql と呼ばれる独自のクエリ言語があります。 この言語は標準のリレーショナル クエリ言語である SQL の一種であり、データベース内で実行されるストアド プロシージャを記述できる機能を備えています。

Azure Database for MySQL

Azure Database for MySQL logoAzure Database for MySQL は、MySQL Community Edition に基づく、Azure クラウド内の MySQL の PaaS 実装です。

Azure Database for MySQL サービスには、追加コストなしの高可用性と必要に応じたスケーラビリティが含まれています。 支払いは使用した分だけで済みます。 自動バックアップとポイントインタイム リストアが提供されます。

サーバーでは、ファイアウォール規則を適用するための接続セキュリティが提供され、必要に応じて SSL 接続が要求されます。 多数のサーバー パラメーターを使用して、ロック モード、最大接続数、タイムアウトなどのサーバー設定を構成できます。

Azure Database for MySQL は、ハードウェア、ネットワーク コンポーネント、仮想サーバー、ソフトウェア修正プログラム、その他の基になるコンポーネントを管理する必要なく大規模なデータベースにスケールアップできるグローバル データベース システムを提供します。

一部の操作は、Azure Database for MySQL では使用できません。 これは主に、セキュリティと管理に関係する機能です。 データベース サーバー自体のこれらの側面は、Azure によって管理されます。

Azure Database for MySQL のベネフィット

Azure Database for MySQL を使用すると、次の機能を利用できるようになります。

  • 組み込みの高可用性。
  • 予測可能なパフォーマンス。
  • 需要に迅速に応える簡単なスケーリング。
  • 保存中データと転送中データのセキュリティ保護。
  • 最大 35 日間の自動バックアップとポイントインタイム リストア。
  • エンタープライズ レベルのセキュリティおよび法律への準拠。

このシステムでは従量課金制の料金が使用されるため、支払いは使用した分だけで済みます。

Azure Database for MySQL サーバーでは、アラートを追加し、メトリックとログを表示できる監視機能が提供されます。

Azure Database for MariaDB

Azure Database for MariaDB logoAzure Database for MariaDB は、Azure で実行できるように調整された MariaDB データベースの実装です。 これは MariaDB Community Edition に基づいています。

データベースは Azure によって完全に管理および制御されます。 サービスをプロビジョニングしてデータを転送した後は、システムで追加の管理はほとんど必要ありません。

Azure Database for MariaDB の利点

Azure Database for MariaDB では、次のことを実現できます。

  • 追加コストなしの組み込みの高可用性。
  • 包括的な従量課金制の料金を使用した、予測可能なパフォーマンス。
  • 必要に応じて、数秒以内でスケーリング。
  • 保存中および転送中の機密データのセキュリティ保護。
  • 自動バックアップと最大 35 日間のポイントインタイム リストア。
  • エンタープライズグレードのセキュリティとコンプライアンス。

Azure Database for PostgreSQL

Azure Database for PostgreSQL logoPostgreSQL の方がよい場合は、Azure Database for PostgreSQL を使用して Azure クラウドで PostgreSQL の PaaS 実装を実行することもできます。 このサービスでは、MySQL サービスと同じ可用性、パフォーマンス、スケーリング、セキュリティ、および管理上のベネフィットが提供されます。

オンプレミスの PostgreSQL データベースの一部の機能は、Azure Database for PostgreSQL では使用できません。 これらの機能は主に、特殊なタスクを実行するためにユーザーがデータベースに追加できる拡張機能に関係します。たとえば、提供されている pgsql 以外のさまざまなプログラミング言語において、ストアド プロシージャの記述、オペレーティング システムとの直接的な操作などです。 最も頻繁に使用される拡張機能のコア セットがサポートされており、利用可能な拡張機能のリストの見直しが継続的に行われています。

Azure Database for PostgreSQL フレキシブル サーバー

PostgreSQL のフレキシブル サーバーのデプロイ オプションは、完全に管理されたデータベース サービスです。 高度な制御とサーバー構成のカスタマイズが提供され、コストの最適化制御が提供されます。

Azure Database for PostgreSQL の利点

Azure Database for PostgreSQL は、高可用性のサービスです。 エラー検出とフェールオーバーのメカニズムが組み込まれています。

PostgreSQL のユーザーであれば、PostgreSQL データベースの管理と監視に使用できる pgAdmin ツールをよく理解しているでしょう。 このツールを引き続き使用して、Azure Database for PostgreSQL に接続できます。 ただし、サーバーの管理と保守は Microsoft によって行われるため、サーバーに重点を置いた一部の機能 (サーバーのバックアップや復元など) は使用できません。

Azure Database for PostgreSQL は、サーバー上でデータベースに対して実行されたクエリに関する情報を記録し、それを azure_sys という名前のデータベースに保存します。 query_store.qs_view ビューをクエリしてこの情報を表示し、ユーザーが実行しているクエリの監視に使用します。 この情報は、アプリケーションで実行されるクエリを微調整する必要がある場合に非常に役立ちます。