EveryDB3は、Microsoft Azure上に構築したリレーショナルデータベースにも接続できます。
Azureのマネージドデータベースサービス(Azure SQL Database、Azure Database for MySQL、
Azure Database for PostgreSQL)は、それぞれSQL Server / MySQL / PostgreSQL と互換のプロトコルで通信するため、
EveryDB3側では専用のドライバを追加することなく、通常の「SQLserver」「MySQL」「PostgreSQL」と
同じ方法で接続できます。
本章では、これらのAzureサービスへの接続手順を解説します。
| 項番 | Azureサービス | EveryDB3で選択するDBの種類 | 既定ポート | 可否 | 備考 |
|---|---|---|---|---|---|
| 1 | Azure SQL Database | SQLserver | 1433 | ◎ | SQL Server認証を使用 |
| 2 | Azure SQL Managed Instance | SQLserver | 1433 | ◎ | SQL Server認証を使用 |
| 3 | Azure Database for MySQL (フレキシブルサーバー) |
MySQL | 3306 | ◎ | 既定でSSL必須 |
| 4 | Azure Database for PostgreSQL (フレキシブルサーバー) |
PostgreSQL | 5432 | ◎ | 既定でSSL必須 |
※Azure Database for MariaDB は提供終了が進められているため、本章では扱いません。MariaDB互換を利用する場合は Azure Database for MySQL をご利用ください。
EveryDB3はWindows上で動作するデスクトップアプリケーションです。Azure上のRDBへ接続するには、 EveryDB3を動かすパソコンからサーバーへ到達できる経路を用意する必要があります。代表的な構成は次の3つです。
| 方式 | 概要 | 長所 | 注意点 |
|---|---|---|---|
| A. Azure VM上でEveryDB3を実行 (推奨) |
同一仮想ネットワーク(VNet)内のWindows版Azure VM上でEveryDB3を動かし、 プライベートエンドポイントでDBに接続する。 | 低遅延・高速・安全。更新処理が最も安定する。 | Azure VMの費用・運用が必要。JV-Link/JRA-VAN利用条件を確認のこと。 |
| B. プライベートエンドポイント + VPN | DBをプライベートエンドポイント化し、手元のネットワークからVPN/ExpressRoute経由で接続する。 | DBをインターネットに公開せずに済む。 | VPN等の構築が必要。 |
| C. パブリックアクセス + ファイアウォール規則 | DBのパブリックアクセスを有効にし、ファイアウォール規則で手元PCのグローバルIPのみを許可する。 | 手軽に試せる。 | インターネットに公開されるため、必ずIP制限とSSL利用を行うこと。本番運用は非推奨。 |
速度・安定性・安全性の観点から、本番運用では「A. 同一VNet内のAzure VMで実行」する構成を強く推奨します。 インターネット越し(方式C)の場合、ネットワーク遅延により更新処理が遅くなる場合があります。
EveryDB3で接続する前に、Azureポータル等で以下を準備してください。
myserver.database.windows.net(ポート1433)myserver.mysql.database.azure.com(ポート3306)myserver.postgres.database.azure.com(ポート5432)Azure上のRDBでも、基本的な操作は通常のDBMSと同じく「接続設定」→「データベース作成」→「テーブル作成」の順で行います。 異なるのは、接続設定の「サーバ名」にAzureのサーバー名(FQDN)を入力する点と、 MySQL/PostgreSQLは既定でSSLが必須である点です(4-5-5参照)。
myserver.database.windows.net)を入力します。
サーバー名,ポート番号 の形式で指定します。
TrustServerCertificate=Trueを付与するため、通常はそのまま暗号化接続できます。
myserver.mysql.database.azure.com)を入力します。
myserver.postgres.database.azure.com)を入力します。
※Azure SQL Databaseは「データベース単位」で課金・作成されるサービスのため、サーバー上に あらかじめ空のデータベースを作成しておき、EveryDB3の接続設定でそのデータベースを指定する運用が確実です。 マネージドサービスの権限設定により、アプリケーションからのデータベース作成が許可されていない場合も、 あらかじめAzure側でデータベースを作成してください。
Azureのマネージドデータベースは、セキュリティのためSSL/TLSによる暗号化通信を前提としています。
特にAzure Database for MySQL / PostgreSQL は既定でSSL接続が必須のため、
接続設定画面の「SSLで接続する」チェックボックスをオンにしてください。
これにより、EveryDB3が接続文字列へ自動的にSSL指定(MySQLはSslMode=Required;、PostgreSQLはSSL Mode=Require;)を付与します。
SslMode=None;、PostgreSQLはSSL Mode=Disable;)となります。TrustServerCertificate=True;を付与するため、通常は追加設定なしで暗号化接続できます。※どうしても接続できない場合の切り分けとして、Azure Database for MySQL/PostgreSQL側の「SSL接続を必須にする」設定を 一時的に無効化して確認する方法もありますが、セキュリティ上、確認後は必ず有効へ戻してください。 サーバCA証明書はAzureポータル/公式ドキュメントから入手できます。
サーバー名,1433形式で指定しているかを確認します。