第5回東北情報セキュリティ勉強会 – 東北情報セキュリティ勉強会 /
http://tohoku-security.techtalk.jp/workshop/5thworkshop
11月13日は、東北情報セキュリティ勉強会に参加してみました。
今回は昨日まで東京に出張していたので、その足で仙台まで移動して当日会場入りしました。
今回の題材はHadoopなどの分散処理に使用される基本技術、「NoSQL」に関してでした。普段インフラを仕事にしておりますが、話題のクラウドに関しては業務で関わったこともなく、またあまり勉強したこともなかったので、この機会に参加してみました。
最初はささたつさんによる「NoSQLデータベースが登場した背景と特徴」という発表でした。
●NoSQLとは
RDBMSにこだわらず、用途にあったデータストアを使いましょう、という考え方。
→Not Only SQL
●RDBMSの強み
データの一貫性(トランザクション)
更新時のコストが小さい
→JOINが前提でテーブルが正規化されている
SQLによる複雑な条件での検索や集計
実績、ノウハウがある
●RDBMSの弱み
書き込みスケールさせるのが難しい
スキーマ変更時にロックが掛かる(MySQLのみ?)
→データ長によっては長時間ロック
●それぞれのNoSQLの特徴
1.memcached
・揮発性のkey-valueストア
→データはメモリ上に保持
・複雑な問い合わせは行えない
→keyによる完全一致検索のみ
・データの保存、読み出しは非常に高速
・expire(有効期間)を設定できる
2.TOKYO TYRANT
・永続性key-valueストア
・データストレージはTokyo Cabinet
→そのラッパーがTokyo Tyrant
→ネットワーク越しで使えるようになる
・データ型によっては複雑な検索も可能
→B+treeDB、テーブルDB、・・・
3.mongoDB
・ドキュメント指向データベース
→スキーマレス(毎回カラム名もすべて記録)
→BSON(Binary JSON)でデータ保持
・JOINとトランザクション以外をサポート
→GROUP BYなどはかなりトリッキーになる
・更新性能が比較的高いのが特徴
4.cassandra・・・習得が難しい
・列指向データベース
→列単位でデータを保持している
・大規模なデータの扱いが得意
→データが増えても処理速度はそれほど低下しない
→書き込みのスケーラビリティが高い
・単一障害点(SPOF)が無い
5.hadoop
・GoogleのMapReduceのOSS
・分散処理のフレームワーク
・複数台のサーバを使って処理を分散
→サーバを増やすだけで簡単にスケール
・非リアルタイムな処理向き
●スケール
・Sharding・・・スケールすること
・複数のサーバにデータを分散
1.データがメモリに載りやすい
→ディスクIOの低減、パフォーマンスの向上
2.更新がスケールする
3.バッチ処理なども短時間で済むようになる
・データの振り分け方法
1.Consistent Hashing
・keyのハッシュ値をサーバ台数で割、そのあまりで保持するサーバを決めると簡単
→ただ、サーバ数が変わるとキャッシュミスが頻発
→RDBMSの負荷が非常に大きくなる
2.Range Partitioning
・データの範囲毎にサーバを割り当てる
・MongoDBやHBASEなど
・特定のカラムに対して、範囲別に分散
・範囲検索が得意
・負荷が一部のサーバに偏る危険性
・メタ情報は別サーバ(Manager)が管理
●今後はどうなる?
・NoSQLはRDBMSの弱みを補う
・運用ノウハウが少ない
・トレードオフの理解も重要
→書き込みが高速ではあるが、同期しないのでエラー時にはデータが消えてしまう可能性が・・・
・MySQLをNoSQLのように使う事例も・・・
→HandlerSocket Plugin(DeNAさん)
ここで一旦お菓子休憩が入りました。
今回は先に公表されていたようにプリンとなりました。紅茶のプリンで非常に美味しかったです。
お菓子休憩のあとは、勉強会では珍しい?というか自分では2度目のグループディスカッションが行われました。
一応お題のようなものがあったのですが、会話の中からネタを探して話し合うという感じで非常に面白い取り組みであったと思います。
今回、東北情報セキュリティ勉強には初めて参加してみましたが、学生の参加も多く非常に参加した甲斐があった勉強だと感じました。普段は大阪に住んでいるためになかなか参加できないとは思いますが、仙台に来る機会は多いので、日程があるようでしたら今後も参加してみようと思いました。
詳しくは以下のWebでまとめらている方がいらっしゃいますので、そちらの方を参照してみてください。
スタッフの皆様、参加された皆様、本当にお疲れさまでした。