[OCI] MySQL Database Service(MDS) を初めて使ってみる


はじめに

実はこれまで MySQL Databese を使ったことがありません。昔々 Oracle Database を使ってアプリ開発をしたことがあるので、データベースを少し触ってテストデータを作成したり、JDBCドライバーを設定したり、SQLでデータ呼び出したりした経験はありますが、データベースは全くもって詳しくないです。

この度OCIで提供されたMySQL Database Service(以後 MDS) はPaaSでのサービス提供なので構築も簡単そうです。MDSの勉強も兼ねて環境構築して使ってみたいと思います。

構築環境および前提

  • MDSはOCIのプライベート・サブネットに構築します。
  • MDSへはパブリック・サブネットの踏み台サーバーから接続を試みます。踏み台サーバーは既に構成済みのものを使用します。
  • 仮想クラウド・ネットワーク(VCN)も既存設定済みのものを使用します。

1. MDSの作成

OCIにサインイン後、左上のナビゲーションメニューから[データベース]-[MySQL]を選択し、MySQL DBシステムの作成 をクリックします。


作成に必要な情報を入力していきます。

[コンパートメントに作成] 任意のコンパートメントを指定します。
[名前] 任意の名前を指定します。例)mysql01
[スタンドアロン] を選択。今回は単体のMDSを作成します。

続けて、

管理者資格証明の作成
[ユーザー名] root とします。
[パスワード] 任意のパスワードを指定します。

ネットワーキングの構成
[仮想クラウド・ネットワーク] 既存の仮想クラウド・ネットワークを選択。例)osaka-vcn
[サブネット] プライベート・サブネットを選択します。


配置の構成
[フォルト・ドメインの選択] 任意のフォルト・ドメインを選択します。

ハードウェアの構成
[シェイプの選択] 希望するシェイプに変更します。単にテスト用途なのでデフォルトの最小構成のままとします。
[データ・ストレージ・サイズ(GB)] こちらもデフォルト値のままとします。


バックアップ・プランの構成
[自動バックアップの有効化] 有効化のまま。他の設定もデフォルトのままとします。
作成 ボタンをクリックして、MDSを作成します。

しばらくすると、MDSが作成されました。

ページ左下のリソースにて、エンドポイントをクリックして、作成されたMDSのエンドポイントを確認しておきます。これらの値は後段のセキュリティリストの設定やMDSへの接続に使用します。

2. セキュリティリストの設定

MDSに接続するためには仮想クラウド・ネットワークのセキュリティ・リストのイングレス・ルールでMDSと通信するための TCP/IP 3306ポートの通信を許可しておく必要があります。

ナビゲーションメニューから[ネットワーキング]-[仮想クラウド・ネットワーク]を選択し、作成済みの仮想クラウド・ネットワーク(例)osaka-vcn)をクリックします。

ページ左下のリソースにて、セキュリティ・リストをクリックして、プライベート・サブネットのセキュリティ・リストをクリックします。続けてイングエス・ルールの追加をクリックします。

イングレス・ルールを追加します。

仮想クラウド・ネットワーク(osaka-vcn)からポート3306(MDS) への接続を許可します。
[ソースCIDR] 192.168.0.0/16 と入力します。
[宛先ポート範囲] 3306 MDSのポートを指定します。

イングレス・ルールが追加されました。

3. MySQLクライアントのインストール

既に作成している踏み台サーバーからMDSへの接続を試みるため、踏み台サーバーにMySQLクライアントをインストールします。踏み台サーバーの設定については、以下が参考になるかもしれません。

[OCI] 踏み台サーバーからSSHでプライベート・サブネットのインスタンスへの接続と、NATゲートウェイを試してみる
https://qiita.com/cocotaro0202/items/7b115b108bb9f03b90a6

踏み台サーバーの起動とパブリックIPアドレスを確認し、Windows PowerShell 及び Tera Term などのターミナルから踏み台サーバーに接続します。

ssh -i ~/.ssh/id_rsa [email protected]

踏み台サーバーで次のコマンド操作を実行して、MySQLクライアントをインストールします。

sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql

詳細は、巻末の参考URL「その9 - クラウドでMySQL Databaseを使う」4.MySQLクライアントのインストールもご覧ください。

4. MDSへの接続確認

踏み台サーバーでMySQLクライアントのインストールが完了したので、踏み台サーバーからMDSへの接続を試みます。MDSを作成した時のユーザー名、エンドポイントのホスト名を指定します。

  • ユーザー名:root
  • ホスト名:例)TestMDS.sub03060550521.osakavcn.oraclevcn.com
mysql -u root -p -h TestMDS.sub03060550521.osakavcn.oraclevcn.com 

MDS作成時に指定したパスワードを入力し、その後 mysql プロンプトが表示され、無事MDSへの接続に成功することができました。

MDSへの接続は以上で完了ですが、データも入れてSQLを実行したいので、巻末の参考URLの書籍に添付されたいたサンプルデータを投入してみます。

mysql -u root -p -h TestMDS.sub03060550521.osakavcn.oraclevcn.com < term3.sql

データベース一覧を参照すると、サンプルデータベース(term03db)が投入されたことが確認できました。

さらにサンプルデータベースを選択し、テーブル一覧を表示します。
※ stations テーブルはJRの駅名情報を格納しているテーブルです。

あとは適当に SELECT 文を発行してサンプルデータを参照できたので、MDSの動作確認としては以上で終了とします。

MySQL初心者にも簡単にMDSを構成し使用することができました。最近MDSでは高可用性機能がリリースされたので、継続してこれらも試せたらと思います。

参考URL

その9 - クラウドでMySQL Databaseを使う
書籍:15時間でわかるMySQL集中講座