今までAWSを、Eclipseから叩いたり、コンソールから叩いたりしてきたのですが、
今回はRDSをイジってみようと思います。
■ RDSでMySQLインスタンスをマルチアベイラビリティゾーンで立てる
デフォルトはこの画面なのですが、
今回はせっかくなので新しいUIでやってみようと思います。
MySQLで。
Multi-AZ DeploymentをYesにします。(コレだけってのが半端ないですよね…)
そのままデフォルトで突っ走って、、(ほんとはセキュリティグループとかどのサブネットとかですが。。)
バックアップもなしで。。
Zoneがap-northeast-1aでSecondary Zoneがap-northeast-1cになりました。
■ EC2インスタンスからデータベースにアクセス
先日支払いに怯えてインスタンスを全てterminateしてしまったので、、
普通にEC2インスタンス立てたのですが、MySQLクライアントとか面倒臭いかなと思って
網元なWordPressのAMI使って立てました。
この楽チンさはたまらないですね〜
■ テーブルを作ってデータの出し入れをしてみる
SSHでEC2インスタンスに接続して、MySQLコマンドでRDSに接続して、
データベースを作ります。
mysql> create database hoge; Query OK, 1 row affected (0.00 sec) mysql> use hoge Database changed
フザけたテーブル作ってすみません。。w
mysql> create table hage_tbl( -> hage_id INT NOT NULL AUTO_INCREMENT, -> hage_when VARCHAR(10) NOT NULL, -> hage_why VARCHAR(10) NOT NULL, -> hage_how VARCHAR(10) NOT NULL, -> PRIMARY KEY ( hage_id ) -> ); Query OK, 0 rows affected (0.09 sec)
インサート文を流してからクエリ投げてみます。良さげ。
[root@ip-10-134-128-186 ~]# cat hage.sql insert into hage_tbl (hage_when, hage_why, hage_how) values ('20000102', 'natural', 'heavy'); [root@ip-10-134-128-186 ~]# mysql -hmydbinstance.cslehsosusgw.ap-northeast-1.rds.amazonaws.com -uawsuser -pxxxx -Dhoge < hage.sql [root@ip-10-134-128-186 ~]# mysql -hmydbinstance.cslehsosusgw.ap-northeast-1.rds.amazonaws.com -uawsuser -pxxxx -Dhoge 〜略〜 Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> select * from hage_tbl; +---------+-----------+----------+----------+ | hage_id | hage_when | hage_why | hage_how | +---------+-----------+----------+----------+ | 1 | 20000102 | natural | heavy | +---------+-----------+----------+----------+ 1 row in set (0.00 sec)
って事で、カウント文なSQLも作って、
[root@ip-10-134-128-186 ~]# cat hage_select.sql select count(*) from hage_tbl; [root@ip-10-134-128-186 ~]# mysql -hmydbinstance.cslehsosusgw.ap-northeast-1.rds.amazonaws.com -uawsuser -pxxxx -Dhoge < hage_select.sql count(*) 1
無限ループでdateコマンド&INSERT&SELECTして5秒スリープなんてシェル書いて、
#!/bin/sh while : do date mysql -hmydbinstance.cslehsosusgw.ap-northeast-1.rds.amazonaws.com -uawsuser -pxxxx -Dhoge < hage.sql mysql -hmydbinstance.cslehsosusgw.ap-northeast-1.rds.amazonaws.com -uawsuser -pxxxx -Dhoge < hage_select.sql sleep 5 done
流し続けながらフェールオーバーしてみます。
Zone: ap-northeast-1c で Secondary: Zone ap-northeast-1a なRDSを、、
#この前に一度フェールオーバーさせたので最初はaとc反対でしたが、ご容赦くださいw
Rebootしてやって、、
もちろん Reboot with Failover で。
Rebootingの間にスクリプトがピタっと止まりまして、、
availableになったので、スクリプトが再び動き出すかと思いきや。。。
結局15分くらい待ったのですが、ウンともスンとも言わないのでCtrl+Cしたら、、、
Wed May 8 20:43:51 JST 2013 count(*) 140 Wed May 8 20:43:56 JST 2013 ^CCtrl-C -- sending "KILL QUERY 210" to server ... Ctrl-C -- query aborted. ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query count(*) 140 Wed May 8 21:01:00 JST 2013 count(*) 141 Wed May 8 21:01:05 JST 2013 count(*) 142
ん…。コリはどういう事なのでしょうか…w
再開はしましたが、なんとも気味の悪い。。。
ググってみると、同じような思いをされてる方がいらっしゃるようですね。。
Amazon RDSのフェールオーバーを試してみたが – OpenGroove
—
何やら不完全燃焼気味ですが、Javaなアプリでコネクションプールとかの場合どうなんだ?とか、
引き続きイジってみたいなと思います。。
RDSだからMySQLのログとか見れなさそうだけど、とはいえ、、的な感じもありそうだし、
その辺ももうちと見てみたいなと思います。
ちなみに、最近ちょこちょこAWSイジってて、毎回落とすのも面倒くさいなぁと思って
ほったらかしてたら、先月はチョイチョイ請求されてた今日この頃ですw
日経BP社
売り上げランキング: 12,170
日経BP社
売り上げランキング: 3,373
コメント