IDCFクラウド RDBを試してみた
(2018.7.26追記)
この記事で使用したIDCFクラウド RDBは、2016年8月に廃止された旧サービスのものですので、ご注意ください。
その後、IDCFクラウドのRDBは、2018年6月に新たな形で(再)リリースされています。
・IDCF Cloud RDB
https://www.idcf.jp/cloud/rdb/
(2018.7.26追記ここまで)
2015年7月、ずっと待っていたIDCFクラウドのRDB機能がやっとリリースされました。
MySQL互換で、驚きのマルチマスターです!
・IDCFクラウド RDB
http://www.idcf.jp/cloud/rdb/
今回はまずは、RDBのDBサーバーを起動して、クライアントからのアクセスを試してみました。
以下は、2015年7月末時点の情報です。
(2015年9月8日、仕様についていくつか間違いがあったので修正しました。)
以下、IDCFクラウドのクラウドコンソールにログインして操作します。
準備1:ゾーンの有効化とネットワークの作成
ゾーンの有効化
IDCFクラウドでは、現在、tesla, pascal, henryの3つのゾーンがあります。
このうち、RDBはpascal, henryゾーンのみの提供となっています。
すでに、pascalまたはhenryゾーンを有効化して「ネットワーク」が存在すればそれをそのまま利用します。
どちらも無効であれば、どちらかのゾーンを有効化します。
ゾーンの有効化は、「コンピューティング」の「ゾーン管理」メニューで行います。
↑この画像はpascalゾーンを有効にしたものですが、以下の説明ではhenryゾーンを使用します。
ネットワークの確認
ゾーンを有効化すると、自動的に「ネットワーク」が作成されます。
IDCFクラウドの「ネットワーク」は、以下の機能をもった仮想ルータです。
- インターネット接続
- グローバルIPアドレス1個(NAT使用可)
- ファイアウォール
- ポートフォワード
- プライベートネットワーク(他のユーザー、ネットワークとは独立している)
- VPN(プライベートコネクト)
1ゾーンで1つめのネットワークは無料ですが、同一ゾーンで2つめ以降のネットワークは有料(20円/時間、上限10,000円/月)ですので注意しましょう。
「コンピューティング」の「ネットワーク」メニューで、作成されたネットワークの情報を確認します。
- ネットワーク名: henry-network1
- CIDR: 10.5.0.0/22
- ゲートウェイ: 10.5.0.1
グローバルIPアドレスは、「IPアドレス」メニューで確認できます。
今回は、このネットワーク内に、RDB DBサーバーとクライアント用のサーバーを作成し、DBアクセスができることを確認します。
準備2:仮想マシンの作成
RDBにアクセスするクライアント用のサーバー(仮想マシン)を用意します。
仮想マシンの作成
仮想マシンの作成手順は、IDCFクラウドの「めちゃ楽ガイド(PDF)」を参照してください。
http://www.idcf.jp/cloud/pdf/IDCFCloud_installation_guide_nonreg.pdf
ここでは、仮想マシン作成時に以下のように指定します。
上記で作成したネットワーク上に作成するのがポイントです。
- ゾーン: henry
- イメージ: CentOS 6.6 64-bit
- ネットワーク名: henry-network1
- マシン名: rdbtestvm
- プライベートIPアドレス: 10.5.0.11
ファイアウォール、ポートフォワード設定
「めちゃ楽ガイド(PDF)」を参考に、仮想マシンにSSHログインするための、以下のネットワーク設定を行います。
- ファイアウォールで、TCP/22へのアクセスを許可。
- ポートフォワードで、TCP/22へのアクセスを仮想マシンのTCP/22に転送。
仮想マシンにSSHログイン
上記で確認したグローバルIPアドレスを指定して、SSHログインします。
MySQLクライアントのインストール
RDBへのDBアクセスを確認するため、仮想マシンにMySQLクライアントをインストールします。
# yum install mysql ... インストール: mysql.x86_64 0:5.1.73-5.el6_6 依存性を更新しました: mysql-libs.x86_64 0:5.1.73-5.el6_6
RDB DBサーバーの作成
ネットワークとクライアントの準備ができたので、いよいよ、DBサーバーを作成します。
クラウドコンソールで「RDB」メニューに移動します。
RDB DBサーバーの作成は、AWS RDSを使ったことがあれば、理解しやすいと思います。
パラメーターグループの作成
MySQLのmy.cnfで設定するパラメータは、「パラメーターグループ」として編集可能です。
デフォルトで用意されているものを使っても構いませんが、「アクセスグループ」メニューで、新しいエントリーrdbtest-pgを作成してみます。
DBエンジンが、「Percona XtraDB Cluster 5.5.39」であることがわかります。
パラメーターグループを作成後、「パラメーターの編集/確認」タブでパラメータを編集できますが、ここではとりあえずデフォルトままとします。
各パラメータが動的に(再起動せずに)変更できるかどうか、表示されるのはうれしいですね。
(AWS RDSでは以前は表示されていたのですが、最近は表示されなくなりました。)
アクセスグループの作成
DBサーバーへのアクセス制限は、「アクセスグループ」として編集可能です。
「アクセスグループ」メニューで、新しいエントリーrdbtest-agを作成してみます。
AWSのセキュリティグループと似ていますが、セキュリティグループのように、アクセス元としてセキュリティグループを指定することはできません。
アクセス元としては、先ほど作成した仮想マシンのプライベートIPアドレス10.5.0.11/32を指定します。
なお、RDBは今のところ、パブリックアクセスを無効にする機能はなく、DBサーバーは必ずグローバルIPアドレスをもちます。
また、アクセスグループのデフォルトは、全公開(0.0.0.0/0に公開)で、そのままだとインターネットから不正アクセスも可能な状態となってしまいます。
アクセスグループを作成して、しっかりアクセス制限を行いましょう。
※仮想マシンと同様に、デフォルトは「アクセス拒否」となっていたほうがよいような。。
また、DBサーバーを作成したのち、アクセスグループを編集したときは、「適用」しないと編集内容がDBサーバーに反映されないので注意しましょう。
DBサーバーの作成
「DBサーバー」メニューでDBサーバーを作成します。
まず、「基本情報」を指定します。
ゾーンは「henry」
ネットワークとして、上記で作成した「henry-network1」
アクセスグループは、上記で作成した「rdbtest-ag」
をそれぞれ指定します。
ノード数は今回は1とします。
クラスター構成とする場合は、3ノード以上必要なので、2ノードは選択できません。
次に、「DB設定」を指定します。
パラメーターグループは、上記で作成した「rdbtest-pg」を指定します。
ボリュームの最大サイズは、500GBです。
自動バックアップと自動マイナーアップグレードの設定は、AWS RDSの「バックアップウィンドウ」「メンテナンスウィンドウ」と同じですね。
日本時間で設定できるのはうれしいです。
バックアップの保管期間は最大3日です。
確認のうえ、「申込む」ボタンをクリックすると、DBサーバーの作成が始まります。
作成処理の進捗状況は、「イベント」タブで確認できます。
2015-07-30 17:47:40 JST INFO Create instance job started ... 2015-07-30 18:00:50 JST INFO All Tasks for current job completed successfully
DBサーバーの一覧で、ステータスが「In Progress」から、「Provisioned」となれば、サーバーの作成は完了です。
何度か作成してみましたが、現時点では、13分程度かかります。
DBサーバーのネットワーク情報は「アクセス情報」タブで確認できます。
ここで、ホスト名のリンクをクリックすると、DBサーバーのアクセス先情報(AWS RDSにおける「エンドポイント」に相当)が表示されます。
同一ネットワーク内のクライアントからは、ここで表示されるプライベートDNSを指定してアクセスします。
インターネット越しでアクセスする場合は、パブリックDNSを指定してアクセスします。
※同一ゾーンかつ同一ネットワーク内のアクセスは無料ですが、異なるネットワーク間のアクセスや、インターネット越しのアクセスは、ネットワーク転送量課金(Inbound/Outboundの月間合計で3,240GBまで無料、それ以上は有料)のカウント対象となります。
クライアントからのアクセス確認
クライアントとして用意した仮想マシンから、MySQLアクセスを確認します。
mysqlコマンドで、先ほど確認したDBサーバーのプライベートDNSと、DBサーバー作成時に指定したDBユーザー、パスワードを指定します。
# mysql -h <プライベートDNS> -u <DBユーザー> -p ex. # mysql -h rdbtest_xxxx_private.rdb.jp-east.idcfcloud.com \ -u rdbtestuser -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 31 Server version: 5.5.39-36.0-25.11-log Percona XtraDB Cluster binary (GPL) 5.5.39-25.11, Revision 828, wsrep_25.11.r4023 Copyright (c) 2000, 2013, 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.
statusコマンドで、MySQLのステータス情報を表示してみます。
「Percona XtraDB Cluster」であることがわかります。
バージョンの「5.5.39」は、「MySQL 5.5.39」をベースにしたことを意味するのでしょう。
mysql> status; -------------- mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1 Connection id: 31 Current database: Current user: rdbtestuser@rdbtestvm.xxxxxdcfcloud.internal SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.5.39-36.0-25.11-log Percona XtraDB Cluster binary (GPL) 5.5.39-25.11, Revision 828, wsrep_25.11.r4023 Protocol version: 10 Connection: rdbtest_xxxx_private.rdb.jp-east.idcfcloud.com via TCP/IP Server characterset: utf8 Db characterset: utf8 Client characterset: latin1 Conn. characterset: latin1 TCP port: 3306 Uptime: 13 min 49 sec Threads: 4 Questions: 404 Slow queries: 10 Opens: 57 Flush tables: 6 Open tables: 24 Queries per second avg: 0.487 --------------
IDCFクラウド RDBのDBサーバーに接続できました!
その他RDBの機能
DBサーバー基本設定
基本的な設定をテンプレートとして保存できます。
リソースグラフ
DBサーバーのリソース使用状況を確認できます。
※グラフを選択して、時間範囲を指定できるようなのですが、今のところうまく選択表示されません。
ログ
以下のMySQLログを確認できます。
- エラーログ mysqld.log
- スロークエリログ slow-query.log
- デフォルトでは無効。slow_query_log = OFF
- 一般クエリログ general-query.log
- デフォルトでは無効。general_log = OFF
イベント通知設定
DBサーバーに関するイベント発生時やリソース使用状況が閾値を超えた場合、指定したメールアドレスにアラートを通知します。
※今のところ、インスタンス単位の指定、RDB申込時に登録したメールアドレス以外のアドレスへの通知などはできないようです。
まとめ
IDCFクラウド RDBのDBサーバーを作成し、クライアントからのアクセスを試してみました。
設定項目はAWS RDSと似ており、マネージドDBサーバーが簡単に作成できることがわかりました。
これから、マルチマスター機能のテストや、ベンチマークテストの実施などいろいろ試してみます。
IDCFクラウドは、キャンペーンで、新規登録で3,000円分のクーポン、RDBの申し込みで2015年8月末まで使える5,000円分のクーポンがもらえます。
・IDCFクラウド
http://www.idcf.jp/cloud/
マルチマスターのRDBが使えるクラウドサービスは他にない(?)と思いますので、興味のある方は試してみるとよいと思います。
(関連記事)
・新サービスIDCFクラウド~従来の「IDCフロンティアセルフクラウド」との違い
https://inaba-serverdesign.jp/blog/20141031/idcfcloud.html
・IDCFクラウド RDBマルチマスターを試してみた
https://inaba-serverdesign.jp/blog/20150819/idcfcloud_rdb_multimaster.html
・IDCFクラウドRDBとAWS RDSの仕様比較
https://inaba-serverdesign.jp/blog/20150819/idcf_rdb_aws_rds_spec.html
・IDCFクラウドRDBとAWS RDS, Auroraのベンチマーク
https://inaba-serverdesign.jp/blog/20150824/idcf_rdb_aws_aurora_benchmark.html
・IDCFクラウドRDBサービスの廃止について思うこと。
https://inaba-serverdesign.jp/blog/20160531/idcf_rdb_abolished.html