あったらしくるえるはてなくしょん

id:kskmeuk あったらしく

AWS で EC2 で MySQL の SPIDER を使って、データノードをRDS にしてシャーディングしたいときは、データノード側のSUPER 権限がなくてもspider_internal_sql_log_off と spider_remote_sql_log_off をそろえると良いらしい。

自分用の備忘です。

あと、中規模くらいのサイト作成 on AWS のときに、こんな構成取りたい方いるかもしれないので、せっかくなので。各リンク先の方々と、作者の方に感謝を。

思想としては、
CDP:Sharding Writeパターン - AWS-CloudDesignPattern
これなんです。

あと、MySQL SPIDER については、説明は、有名な奥野さんの
漢(オトコ)のコンピュータ道: spider
こちらに詳しいですね。元々はKentoku Shiba こと斯波健徳さんによるもので、なんか名字がかっこいいんですが、これはプロダクトもとてもクールだと思います。DeNA で有名な handlersocket と SPIDER って、MySQL 関連のすごい成果だと思います。本当にすごいですよね。

あと、奥野さん関連では、MySQL をちょっくら使ってみようっていう方は、MySQL の実用レシピ満載のクックブックみたいな鍵本、

エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド

エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド

は、良い本だと思います。うちにもあります。アツい本です。すべての意味で。

RDS を SPIDER のデータノードにしようとすると Access denied. You need the SUPER privilege って言われる問題

AWS ってEC2 がダメなわけではないですが、出来ればそれぞれ魔改造されたというか、より適切なチューンナップされてるサービスがあれば、そっち使った方が良いですよね。珍しいことしようとするとめんどくさいですが、そこそこ気が利いていて、あと、S3<->Glacier みたいな乙な機能が出てくるのもはやいですし。

それで、まあ普通に、SPIDER こみの MySQL は EC2 インスタンスをセットアップして、それで、あとはマルチAZとかあるRDSをデータノードに出来たらいいなとは、冒頭のクラウドデザインパターンみたいなケースで、まあ、そう思うじゃないですか。

なんですけど、普通にやろうとしたら、データノードにしようとしてる側に Super 権限がないからだめだよって、SPIDER でシャーディングしてるテーブルを見ようとする段で蹴られてしまうんですよね...

それで、本当はソースとかたどるのが本当は筋なんですけど、とりあえず動作させられるかどうかが知りたくていろいろ調べて、実例ないかと思ってたら、http://www.unixuser.org/~ysjj/diary/?201102b&to=201102150#201102150 こちらに行き当たりまして、

ほお、明示的にspider_remote_log_offをspider_internal_log_offの値に 合わせて設定しろとな。
- http://www.unixuser.org/~ysjj/diary/?201102b&to=201102150#201102150

とのことで、現行版だと、それぞれ、spider_internal_sql_log_off と spider_remote_sql_log_off だと思うのですが、こちらの設定をそろえると、確かに、SUPER が必要だから蹴られたよという内容のアクセス拒否がでなくなって、RDS をデータノードに出来ましたというお話なのでした。

同じことを試みる方の一助になればと思い、書いておきますね。

では、良いインフラと良いプラグインで、良い人生を。

Amazon Web Services クラウドデザインパターン 設計ガイド

Amazon Web Services クラウドデザインパターン 設計ガイド

この本って、冒頭のリンク先の CDP まんまなのかな...