- Oracle MySQL Database Serviceの使い方メモ〜その1
- Oracle MySQL Database Serviceインスタンス作成とサービスコンソールの操作
- Oracle MySQL Database Serviceインスタンスへの接続方法 (MySQL Shell, MySQL Client, MySQL Workbench)
はじめに
Oracle Cloud Infrastructure (OCI) でマネージドサービスとして利用可能なOracle MySQL Database Serviceの環境構築から基本操作、OCI上の踏台サーバ上で稼働するクライアントツールからの接続を試します。その後、統合ビジュアルツールであるMySQL Workbenchをクライアント環境にインストールして接続できることを確認しました。
検証環境
- MySQLバージョン : 8.0.22-u2-cloud (Oracle MySQL Database Service)
- Oracle-Linux-8.2-2020.11.10-0 (OCI Compute VM) : Bastion (踏台) サーバとして利用
- MySQL Shell 8.0.22 : Bastionサーバ上で利用
- MySQL Ver 8.0.21 for Linux on x86_64 (Source distribution) : Bastionサーバ上のMySQL Clientとして利用
- macOS 10.15.7 Catalina : クライアント環境
- MySQL Workbench 8.0 Version 8.0.22 : クライアント上にインストール
Oracle MySQL Database Serviceのインスタンスの構築
OCI上のネットワークの構成
Oracle MySQL Database Serviceインスタンスはプライベート・エンドポイントしか持たないため、プライベート・サブネット上に構築する必要があります。また、OCI外部からのプライベート・エンドポイントへの接続には閉域網接続 (FastConnect - Private Peering) または、インターネットVPN (IPSec) が必要となるため、インターネット経由で接続ができるようにパブリック・サブネット上にBastionサーバを構築します。VCNを新規作成する場合は、インターネット接続性を持つVCN作成ウィザードの利用が便利です。既存のVCNを利用する場合は、Bastionサーバが稼働するパブリック・サブネットとOracle MySQL Database Serviceインスタンスが稼働するプライベート・サブネットをそれぞれ1つずつ作成してください。下記は新規VCNを作る場合の作業について記します。
インターネット接続性を持つVCN作成ウィザード
OCIダッシュボードにログインし、OCIダッシュボードメニューから、コア・インフラストラクチャ>ネットワーキング>概要にアクセスし、画面中央の 「インターネット接続性を持つVCN作成」の「VCNウィザードの起動」を選択してください。
下記にウィザード内の入力例を記します。
- 基本情報
- VCN名 : 任意のVCN名 MySQLTest
- コンパートメント : 任意のコンパートメント名 /dev
- VCNとサブネットの構成
- VCN CIDRブロック 10.0.0.0/16
- パブリック・サブネットCIDRブロック 10.0.30.0/24
- プライベート・サブネットCIDRブロック 10.0.31/0/24
- DNS解決:(任意) 選択
ウィザードの全項目を入力し、VCNの関連するリソースの作成が終われば、下記の図のような構成のネットワークが作成されます。
セキュリティ・ルールの変更
パブリック・サブネットに配置するBastionサーバからプライベート・サブネットのOracle MySQL Database Serviceインスタンスはプライベート・エンドポイントにアクセスできるようにプライベート・サブネットのセキュリティ・ルールに3306および33060ポートの通信を許可するよう設定を追記します。(2020年11月時点ではセキュリティ・グループには対応していません)
OCIダッシュボードメニューから、コア・インフラストラクチャ>ネットワーキング>仮想クラウド・ネットワークにアクセスし、作成したVCN (本記事内ではMySQLTest) を選択、画面左下のリソースメニューよりセキュリティ・リストを選択、セキュリティ・リストの一覧よりプライベート・サブネット-VCN名のセキュリティ・リストを選択、画面中央のイングレス・ルールの追加ボタンをクリックし、下記の設定を追記してください。
ステートレス | ソース・タイプ | ソースCIDR | IPプロトコル | ソース・ポート範囲 | 宛先ポート範囲 |
---|---|---|---|---|---|
いいえ | CIDR | 10.30.0.0/16 | TCP | All | 3306 |
いいえ | CIDR | 10.30.0.0/16 | TCP | All | 33060 |
OCI IAMのポリシーの追加
マニュアルを参考にOracle MySQL Database Serviceを利用するために必要なポリシーを設定します。
Allow group <グループ名> to manage mysql-family in compartment <コンパートメント名>
Allow service mysql to use all-resources in compartment <コンパートメント名>
筆者の環境では開発環境用に /dev コンパートメントと開発用のグループであるDevelopersが作成済で、DevelopersグループにはOracle MySQL Database Serviceを利用するIAMユーザーが追加されています。この様な環境で上記ポリシーは下記の様に書くことができます。
Allow group Developers to manage mysql-family in compartment dev
Allow service mysql to use all-resources in compartment dev
ポリシーの記載方法については、こちらの活用資料が参考になります。
Oracle Cloud Infrastructure 活用資料集 IDおよびアクセス管理 (IAM) 概要
Oracle MySQL Database Serviceインスタンスの作成
OCIダッシュボードメニューから、データベース>MySQLにアクセスします。
MySQL Databaseシステムの作成ボタンを押したいところですが、その前に画面左のリスト範囲メニューに表示されたコンパートメントのセレクタメニューより先程ポリシーを設定したコンパートメントに切り替えることを忘れないでください。それでは、MySQL Databaseシステムの作成ボタンを押してインスタンスの作成ウィザードを開始します。
ウィザード内の入力例を下記に示します。
-
DBシステムの基本情報の指定
- コンパートメントの選択 : 任意のコンパートメント名 /dev
- DBシステムの名前 : 任意名前 mysqltest
- 説明 : コメント記入
- 可用性ドメインの選択 :デフォルト Fubk:AP-TOKYO-1-AD-1
- フォルト・ドメインの選択 :デフォルト FAULT-DOMAIN-1
- シェイプの選択:デフォルト VM.Standard.E2.1
- データ・ストレージ・サイズ(GB) : 最小50GB
- メンテナンス・ウィンドウの開始時間 : Sunday 18:00 (UTCで入力)
-
管理者資格証明の作成
- ユーザー名 MuSQL管理ユーザー名
- パスワード MySQL管理者パスワード
管理者パスワードは8文字から32文字までの長さで、大文字、小文字、数字および特殊文字をそれぞれ1つ以上含める必要があります
-
ネットワーク情報の指定
- (コンパート名)の仮想クラウド・ネットワーク : VCNを作成したコンパート名を指定後、事前作成したVCN名入力
- (コンパート名)のサブネット : サブネットを作成したコンパートを指定後、事前作成したプライベート・サブネット名を入力
- ホスト名: 任意のホスト名 mysqldb
- MYSQLポート : 3306
- MYSQL Xプロトコル・ポート: 33060
-
DBシステム・バックアップの基本情報の指定:今回は利用しない
- 自動バックアップの有効化 : 指定なし
- バックアップ保有期間 (日数) : 指定なし
- バックアップ・ウィンドウの開始時間 デフォルト・バックアップ・ウィンドウ / バックアップ選択ウィンドウ : 指定なし
- バックアップ・ウィンドウの開始時間指定 : 指定なし
Bastionサーバ用のCompute VMインスタンスの作成
OCIダッシュボードメニューから、コア・インフラストラクチャ>コンピュート>インスタンスにアクセスします。インスタンスの作成ボタンを押してComputeインスタンスの作成ウィザードを開始します。
ウィザード内の入力例を下記に示します。
-
名前 : 任意名前 Bastion
-
コンパートメントの選択 : 任意のコンパートメント名 /dev
-
配置とハードウェアの構成
- 可用性ドメインの選択 :デフォルト Fubk:AP-TOKYO-1-AD-1
- フォルト・ドメインの選択 :デフォルト FAULT-DOMAIN-1
- イメージ:Oracle Linux 8
- シェイプの選択:デフォルト VM.Standard.E2.1
-
ネットワーキングの構成
- 仮想クラウド・ネットワーク: MySQLTest
- サブネット: パブリック・サブネット-MySQLTest
- ネットワーク・セキュリティ・グループを使用してトラフィックを制御: いいえ
- パブリックIPv4アドレスの割当て: はい
-
SSHキーの追加:公開キー・ファイルの選択
-
ブート・ボリュームの構成 :デフォルト設定
作成した検証環境構成
これまで作成したシステム構成のアーキテクチャは下記のようになっているはずです。
これでOracle MySQL Database Serviceを利用する準備が完了です。
Oracle MySQL Database Serviceコンソールの操作
Oracle MySQL Database Serviceコンソール画面からできることを説明します。まずは、画面中央のアクションメニューから見ていきます。
編集
表示名、説明、メンテナンスウィンドウの開始時間の変更ができます。
システム変数の編集はここからはできません。アトミテック社の記事にシステム変数の変更方法の手順が紹介されています。
起動
停止中のインスタンスを起動できます。
停止
起動中のインスタンスを停止できます。
再起動
起動中のインスタンスを再起動できます。
その他のアクション
- バックアップ構成の編集 : 自動バックアップ構成の設定編集が可能です
- アナリティックス・クラスタの追加 : 後述
- タグの追加 : リソースの識別を行うタグを追加できます
- 削除 : インスタンスの削除を行います
メトリック
Oracle MySQL Database ServiceインスタンスのMonitoringメトリックをグラフで確認できます。確認できるメトリックの種類はマニュアル に記載されています。
エンドポイント
ホスト名、プライベートIPアドレス、MYSQLポート、MYSQL Xプロトコル・ポートを確認することができます。
アナリティクス・クラスタ
アナリティクス・クラスタの追加、アナリティクス・クラスタの情報確認ができます。マニュアルを確認すると、アナリティクス・クラスタを利用することで、分析クエリをオフロードし、MySQL Analytic Engineを利用した高速処理が可能になります。MySQL Analytic Engineは、分析クエリの高速実行を目的として設計された、分散型、スケーラブル、共有型、ナッシング、インメモリ、カラム型のクエリ処理エンジンとのこと。非常に魅力的で是非試したかった機能ですが、マニュアルに下記記載を見つけて断念。(2020年11月に確認, 最小構成で2node必要とのこと・・・)
Note: Currently, only BM.Standard.E2.64 is supported.
バックアップ
自動バックアップ構成の編集、手動バックアップの作成の取得をおこなうことができます。バックアップの仕様はこちらを確認。
Oracle MySQL Database Serviceのインスタンスへの接続
Bastionサーバを経由で、MySQL Shell、MySQL Client、MySQL Workbenchを利用した接続方法について確認します。
MySQL Shell
BastionサーバにSSHクライアントからアクセスします。macOSの場合はターミナルから下記コマンドを実行して接続します。
ssh -i [秘密鍵のパス] opc@[BastionサーバのパブリックIPアドレス]
次に下記コマンドでBastionサーバ上にMySQL Shellをインストールします。
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql-shell
Oracle MySQL Database Serviceインスタンスを作成した際に設定した管理者ユーザー名と、サービス・コンソール画面から確認できるエンドポイントのプライベートIPアドレスを指定してMySQL Shellを起動します。起動時に入力が求められるパスワードはOracle MySQL Database Serviceインスタンス作成ウィザード内で設定したパスワードです。
$ mysqlsh [管理者ユーザー名]@[プライベートIPアドレス]
Please provide the password for '[管理者ユーザー名]@[プライベートIPアドレス]': **************
MySQL Shell 8.0.22
Copyright (c) 2016, 2020, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.
Type '\help' or '\?' for help; '\quit' to exit.
Creating a session to 'username@10.0.31.3'
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 13 (X protocol)
Server version: 8.0.22-u2-cloud MySQL Enterprise - Cloud
No default schema selected; type \use <schema> to set one.
MySQL [プライベートIPアドレス]:33060+ ssl JS >
MySQL Client
BastionサーバにSSHクライアントからアクセスし、下記コマンドでBastionサーバ上にMySQLをインストールします。
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql
Oracle MySQL Database Serviceインスタンスを作成した際に設定した管理者ユーザー名と、サービス・コンソール画面から確認できるエンドポイントのプライベートIPアドレスを指定してMySQLクライアントを起動します。起動時に入力が求められるパスワードはOracle MySQL Database Serviceインスタンス作成ウィザード内で設定したパスワードです。
$ mysql --host [プライベートIPアドレス] -u [管理者ユーザー名] -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.22-u2-cloud MySQL Enterprise - Cloud
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
MySQL Workbench
(公式サイト)[https://www.mysql.com/jp/products/workbench/]
の画面中央の「ダウンロードはこちら」からダウンロードページに移動、ダウンロード(要ORACLEアカウント)後、インストールを行ってください。OS環境に応じてインストールウィザードを完了後、MySQL Workbenchを起動すると下記のような画面が表示されます。
画面中央のMySQL Connectionsの横の**+**ボタンから接続情報の作成を行います。設定方法は下記を参考にしてください。
設定項目の入力後、Test Connectionボタンを選択すると下記のようなメッセージが表示されれば成功です。
OKボタンを選択すればMySQL Workbenchへの接続が完了です。
起動後の画面に接続情報が書かれたタイルが追加されるので、次回以降接続設定なしでタイルを選択するだけでOracle MySQL Database Serviceインスタンスに接続することができます。
なお、MySQL WorkbenchではSQLを実行するだけでなく、稼働状況の確認やデータのエクスポート・インポートも可能です。最後にMySQL Workbenchのスクリーンショットを掲載します。
関連情報
公式サイト
Oracle Cloud Infrastructure Documentation MySQL Database
[スマートスタイル社 技術ブログ] MySQL Database Service のインスタンスを作成してみる
[アトミテック社 ブログ] Oracle Cloud(OCI)ついにPaaSのMySQL(MySQL Database Service)が登場!
[Qiita] [Oracle Cloud] MySQL Database Service の Getting Started をやってみた
[Qiita] [Oracle Cloud] MySQL Database Service でモニタリング監視をしてみた
MySQL Database Serviceを触るまでのお話