4-5. Microsoft Azure上のRDB(クラウドデータベース)への接続

EveryDB3は、Microsoft Azure上に構築したリレーショナルデータベースにも接続できます。 Azureのマネージドデータベースサービス(Azure SQL Database、Azure Database for MySQL、 Azure Database for PostgreSQL)は、それぞれSQL Server / MySQL / PostgreSQL と互換のプロトコルで通信するため、 EveryDB3側では専用のドライバを追加することなく、通常の「SQLserver」「MySQL」「PostgreSQL」と 同じ方法で接続できます。

本章では、これらのAzureサービスへの接続手順を解説します。

4-5-1. 対象とする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 をご利用ください。

4-5-2. 接続方式(ネットワーク構成)の選択

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)の場合、ネットワーク遅延により更新処理が遅くなる場合があります。

4-5-3. 事前準備(Azure側の作業)

EveryDB3で接続する前に、Azureポータル等で以下を準備してください。

  1. 接続対象のデータベースサーバーを作成する。
  2. サーバーの完全修飾名(FQDN)とポートを控える。
  3. 方式C(パブリックアクセス)の場合は、サーバーのファイアウォール規則に、 EveryDB3を動かす端末のグローバルIPアドレスを許可登録する。
  4. 方式A/B(プライベート)の場合は、プライベートエンドポイントを構成し、VNet/DNSの解決ができるようにする。

4-5-4. EveryDB3での接続設定(共通の流れ)

Azure上のRDBでも、基本的な操作は通常のDBMSと同じく「接続設定」→「データベース作成」→「テーブル作成」の順で行います。 異なるのは、接続設定の「サーバ名」にAzureのサーバー名(FQDN)を入力する点と、 MySQL/PostgreSQLは既定でSSLが必須である点です(4-5-5参照)。

1. 接続設定(Azure SQL Database / Managed Instance)

  1. 「データベースの種類」グループで、「SQLserver」を選択します。
  2. 接続設定の「サーバ名」に、Azureのサーバー名(例:myserver.database.windows.netを入力します。
    ※既定の1433以外を使う場合は、サーバー名,ポート番号 の形式で指定します。
  3. 認証方式は「SQL Server認証」を選び、作成時の管理者ユーザー名・パスワードを入力します。
    ※Azure SQL DatabaseではWindows統合認証は利用できません。
  4. 「接続確認(K)」ボタンをクリックして、「接続に成功しました」とメッセージが表示されることを確認してください。
    ※EveryDB3はSQL Server接続時に既定でTrustServerCertificate=Trueを付与するため、通常はそのまま暗号化接続できます。

2. 接続設定(Azure Database for MySQL)

  1. 「データベースの種類」グループで、「MySQL」を選択します。
  2. 接続設定の「サーバ名」に、Azureのサーバー名(例:myserver.mysql.database.azure.comを入力します。
  3. 接続設定の「ポート番号」に、3306(既定値)を入力します。
  4. 接続設定の「ユーザ名」に、接続するユーザ名を入力します。
  5. 上記ユーザ名に対応するパスワードを入力します。
  6. Azure Database for MySQLは既定でSSL接続が必須です。接続設定画面の「SSLで接続する」チェックボックスをオンにしてください(4-5-5参照)。
  7. 「接続確認(K)」ボタンをクリックして、「接続に成功しました」とメッセージが表示されることを確認してください。

3. 接続設定(Azure Database for PostgreSQL)

  1. 「データベースの種類」グループで、「PostgreSQL」を選択します。
  2. 接続設定の「サーバ名」に、Azureのサーバー名(例:myserver.postgres.database.azure.comを入力します。
  3. 接続設定の「ポート番号」に、5432(既定値)を入力します。
  4. 接続設定の「ユーザ名」に、接続するユーザ名を入力します。
  5. 上記ユーザ名に対応するパスワードを入力します。
  6. DB文字コードはデフォルトの「Shift-JIS」のままとしてください。
  7. Azure Database for PostgreSQLは既定でSSL接続が必須です。接続設定画面の「SSLで接続する」チェックボックスをオンにしてください(4-5-5参照)。
  8. 「接続確認(K)」ボタンをクリックして、「接続に成功しました」とメッセージが表示されることを確認してください。

4. データベースの作成

  1. 「データベースの作成」ボタンをクリックします。
  2. 「データベースの作成を行いますか?」という確認メッセージに「はい」を答えます。
  3. 「データベース「EveryDB3」の作成に成功しました」というメッセージを確認します。

※Azure SQL Databaseは「データベース単位」で課金・作成されるサービスのため、サーバー上に あらかじめ空のデータベースを作成しておき、EveryDB3の接続設定でそのデータベースを指定する運用が確実です。 マネージドサービスの権限設定により、アプリケーションからのデータベース作成が許可されていない場合も、 あらかじめAzure側でデータベースを作成してください。

5. テーブルの作成

  1. 「テーブル作成」ボタンをクリックします。
  2. 「テーブルの作成を行いますか」の確認メッセージに「はい」を答えます。
  3. 「テーブルの作成に成功しました」の確認メッセージを確認します。

4-5-5. SSL/TLS(暗号化通信)に関する注意

Azureのマネージドデータベースは、セキュリティのためSSL/TLSによる暗号化通信を前提としています。 特にAzure Database for MySQL / PostgreSQL は既定でSSL接続が必須のため、 接続設定画面の「SSLで接続する」チェックボックスをオンにしてください。 これにより、EveryDB3が接続文字列へ自動的にSSL指定(MySQLはSslMode=Required;、PostgreSQLはSSL Mode=Require;)を付与します。

※どうしても接続できない場合の切り分けとして、Azure Database for MySQL/PostgreSQL側の「SSL接続を必須にする」設定を 一時的に無効化して確認する方法もありますが、セキュリティ上、確認後は必ず有効へ戻してください。 サーバCA証明書はAzureポータル/公式ドキュメントから入手できます。

4-5-6. 性能・運用上の注意

4-5-7. 接続できない場合の確認ポイント