4-3. AWSサービス上のRDB(クラウドデータベース)への接続

EveryDB3は、ローカルやLAN内にインストールされたDBMSだけでなく、Amazon Web Services(AWS)上に構築した リレーショナルデータベース(RDB)にも接続できます。各サービスはMySQL/MariaDB/PostgreSQLと互換性のある プロトコルで通信するため、EveryDB3側では専用のドライバを追加することなく、通常の 「MySQL」「MariaDB」「PostgreSQL」と同じ方法で接続できます。

本章では、以下のAWSサービスへの接続手順を解説します。

4-3-1. 対象とするAWSサービス

項番 AWSサービス EveryDB3で選択するDBの種類 既定ポート 備考
1 RDS for MySQL MySQL 3306  
2 RDS for MariaDB MariaDB 3306  
3 RDS for PostgreSQL PostgreSQL 5432  
4 Aurora MySQL MySQL 3306 MySQL互換
5 Aurora PostgreSQL PostgreSQL 5432 PostgreSQL互換
6 Aurora Serverless v2
(MySQL / PostgreSQL)
MySQL / PostgreSQL 3306 / 5432 通常のエンドポイントを持つため
専用クラスタと同じ手順で接続可能

Aurora Serverless v1 は本章の対象外です。 Aurora Serverless v1はData API前提の利用形態や自動停止からの起動遅延があるため、本手順では扱いません。

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

EveryDB3はWindows上で動作するデスクトップアプリケーションです。AWS上のRDBはVPC(仮想ネットワーク)内に配置されるため、 EveryDB3を動かすパソコンからDBエンドポイントへ到達できる経路を用意する必要があります。代表的な構成は次の3つです。

方式 概要 長所 注意点
A. EC2上でEveryDB3を実行
(推奨)
同一VPC内のWindows EC2インスタンス上でEveryDB3を動かし、内部からRDB接続する。 低遅延・高速・安全。更新処理が最も安定する。 EC2の費用・運用が必要。JV-Link/JRA-VAN利用条件を確認のこと。
B. VPN / Direct Connect 経由 手元のPCからVPN等で社内/自宅ネットワークとVPCを接続して内部アクセスする。 DBをパブリック公開せずに済む。 VPNの構築が必要。
C. パブリックアクセス RDB/Auroraを「パブリックアクセス可」にし、手元PCのグローバルIPからのみ許可する。 手軽に試せる。 インターネットに公開されるため、必ずセキュリティグループでIP制限・SSL利用を行うこと。本番運用は非推奨。

速度・安定性・安全性の観点から、本番運用では「A. 同一VPC内のEC2でEveryDB3を実行」する構成を強く推奨します。 インターネット越し(方式C)の場合、ネットワーク遅延により更新処理が遅くなる場合があります。

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

EveryDB3で接続する前に、AWSマネジメントコンソール等で以下を準備してください。

  1. 接続対象のRDSインスタンス または Auroraクラスタを作成する。
  2. 作成後、対象DBのエンドポイント(ホスト名)とポート番号を控える。
  3. DBに割り当てたセキュリティグループのインバウンドルールで、EveryDB3を動かす端末からの接続を許可する。
  4. 方式C(パブリックアクセス)の場合は、DBの設定で「パブリックアクセス」を「あり」にし、パブリックサブネット配置とインターネットゲートウェイの経路を確認する。

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

AWS上のRDBでも、基本的な操作は通常のDBMSと同じく「接続設定」→「データベース作成」→「テーブル作成」の順で行います。 異なるのは、接続設定の「サーバ名」にlocalhostではなくAWSのエンドポイントを入力する点だけです。

1. 接続設定(MySQL / MariaDB / Aurora MySQL / Aurora Serverless v2(MySQL))

  1. 「データベースの種類」グループで、「MySQL」(MariaDBの場合は「MariaDB」)を選択します。
    ※Aurora MySQL・Aurora Serverless v2(MySQL)も、いずれも「MySQL」を選択します。
  2. 接続設定の「サーバ名」に、対象DBのエンドポイント (例:mydb.xxxxxxxx.ap-northeast-1.rds.amazonaws.com)を入力します。
  3. 接続設定の「ポート番号」に、3306(既定値)を入力します。
  4. 接続設定の「ユーザ名」に、RDS/Aurora作成時に設定したマスターユーザー名(又は接続用に作成したユーザ)を入力します。
  5. 上記ユーザ名に対応するパスワードを入力します。
  6. 「接続確認(K)」ボタンをクリックして、「接続に成功しました」とメッセージが表示されることを確認してください。

2. 接続設定(PostgreSQL / Aurora PostgreSQL / Aurora Serverless v2(PostgreSQL))

  1. 「データベースの種類」グループで、「PostgreSQL」を選択します。
    ※Aurora PostgreSQL・Aurora Serverless v2(PostgreSQL)も、いずれも「PostgreSQL」を選択します。
  2. 接続設定の「サーバ名」に、対象DBのエンドポイント (例:mydb.xxxxxxxx.ap-northeast-1.rds.amazonaws.com)を入力します。
  3. 接続設定の「ポート番号」に、5432(既定値)を入力します。
  4. 接続設定の「ユーザ名」に、作成時に設定したマスターユーザー名(既定でpostgres)を入力します。
  5. 上記ユーザ名に対応するパスワードを入力します。
  6. DB文字コードはデフォルトの「Shift-JIS」のままとしてください。
  7. 「接続確認(K)」ボタンをクリックして、「接続に成功しました」とメッセージが表示されることを確認してください。

3. データベースの作成

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

※マネージドサービスの権限設定によっては、アプリケーションからのデータベース作成が許可されていない場合があります。 その場合は、あらかじめAWS側(または管理ツール)でデータベースを作成し、EveryDB3の接続設定で そのデータベースを指定してください。

4. テーブルの作成

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

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

インターネット経由(方式C)でAWS上のRDBに接続する場合は、通信内容の盗聴を防ぐためにSSL/TLSによる 暗号化通信を利用することを強く推奨します。EveryDB3が内部で使用するプロバイダ(MySQL/MariaDBは MySqlConnector、PostgreSQLはNpgsql)は、既定でサーバがSSLに対応していれば暗号化通信を試みます。 通常のRDS/Aurora(SSL任意)であれば、標準の接続設定のままで接続できます。

一方、DB側でSSL接続を必須化している場合(PostgreSQLのrds.force_ssl=1、 MySQLのrequire_secure_transport=ON 等)は、明示的にSSL接続を指定する必要があります。 その場合は、接続設定画面の「SSLで接続する」チェックボックスをオンにしてください。 これにより、EveryDB3が接続文字列へ自動的にSSL指定(MySQL/MariaDBはSslMode=Required;、PostgreSQLはSSL Mode=Require;)を付与します。

※「SSLで接続する」チェックボックスは、MySQL・MariaDB・PostgreSQL を選択した場合のみ有効になります。 チェックを外した場合は非SSL接続(MySQL/MariaDBはSslMode=None;、PostgreSQLはSSL Mode=Disable;)となります。
RDS/Auroraの認証局(CA)証明書(rds-ca バンドル)はAWSの公式ドキュメントから入手できます。証明書検証まで厳密に行いたい場合の指定方法は、各プロバイダおよびAWSのドキュメントを参照してください。

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

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