「分散KVS(Key-Value Store)」と「可視化」
データベースにも得意・不得意がある。
KVS(Key-Valueストア)は、RDB(リレーショナルデータベース)と比較して分散化のコストが安く、負荷分散に強く、可用性が高いそうだ。RDBが得意なものはRDBを使う、KVSが得意なものはKVSを使う。そうして、RDBとKVSの両方を使い、そして2つを適材適所で使い分けることにより、補完しあうことで、高速レスポンスを実現できるということになるらしい。
KVSにも弱点はあるが、高速である主なポイントとしてはインメモリ(オンメモリ)であることが挙げられる。
メモリのアクセス速度はHDDの10万~100万倍。そのためRDBの値をKVSに保持して使う。保持する方法は「RDBのレコードをそのままセット」「RDBのレコードを結合または加工してセット」等がある。要するに、データをメモリ内に読み込み、それを使いまわすことで、高速なデータアクセスを実現することが可能らしい。
他にも特徴はあるが今日はここまで調べたという事で。いったんKVSの特徴についての調査は終わりにする。
以下はKVSの活用事例まとめ。
Googleはどのようにして巨大なデータからの検索結果を返しているのか?
分散Key-Valueストアの本命「Bigtable」。
分散Key-Valueストアの本命「Bigtable」 - @IT
株式会社ミクシィでは、
RDBMSはMySQL、自社開発のKVS「Tokyo Tyrant」を使用している。
自社開発のKVS「Tokyo Tyrant」は高負荷なログイン処理の実装に使用しているそうだ。
分散Key-Valueストアの本命「Bigtable」(1):もう1つの、DBのかたち、分散Key-Valueストアとは (1/3) - @IT
株式会社フリークアウトでは、
RDBMSはMySQL、KVSはHadoop hBase、Tokyo/Kyoto Product(Tokyo Cabinet、Kyoto Cabinet)、memcached などを使用している。しかも、クラウド全盛の中「自作サーバー」でRTBのシステムを構築・運用しているようだ(ただし海外事業ではAWS(アマゾン ウェブ サービス)も利用している様子)。
「20ms台への挑戦、Webエンジニアがアドテクノロジに惹かれた理由とは」フリークアウト 大窪 聡 氏 | ギークアカデミー |IT・Web業界の転職ならDODAエンジニア IT
(以下は引用)
本質的な仕組みは、人間を対象にしたWebサービスのシステムと同じです。ただ、RTBのシステムは非常に時間にシビアな点が違います。Webサービスでシステムが人間を相手にレスポンスを返す場合、1.5~2秒の猶予はあります。ところがRTBでは必ず100ms以内に収めないといけません。私たちのシステムでは平均して20ms程度のレスポンスを実現しています。これだけ短いとMySQLのようなDBMS(データベース管理システム)に接続する時間も取れませんから、KVSの使いこなしが重要になってきます。
www.slideshare.net
ログの可視化関連は多くの企業が
Fluentd、Norikra、Elasticserch、Kibanaを使ってると見受けられた。
以下①~④は概要説明。
①ログ収集「Fluentd」:
ログの収集、中継ツール、ElasticsearchやNorikraへデータを転送する。
②ログ解析「Norikra」:
SQLストリーミングを解析する。
③ログ検索「Elasticsearch」:
大人気の全文検索エンジン。
④ログ可視化「Kibana」:
Elasticsearchへ格納されたデータを可視化する。
01. CoreOS を使用して Docker を動作させる 『CoreOS インストール』
(1) CoreOSのISOファイルをダウンロード
「Booting CoreOS from an ISO 」
URL) https://coreos.com/os/docs/latest/booting-with-iso.html
[Download Stable ISO]ボタンを押下し、coreos_production_iso_image.iso をダウンロードします。
物理サーバーのDVDドライブにCoreOSのISOイメージを焼いたDVDメディアをセットして
DVDブートします。その後、core ユーザーのコマンド入力画面が表示されます。
(2)暗号化されたパスワードを生成
cloud-config.ymlに(CoreOS) core ユーザー用のパスワードを記述するために生成します。
(例)Mac端末の場合
1.ターミナルで以下を実施します。[ ] でパスワードを入力します。
# openssl passwd -1 > /Users/(UserName)/Desktop/passwd Password: [ ] Verifying - Password: [ ]
2.passwdをテキストで開くと 1. で入力したパスワードが暗号化された文字が出力されています。この文字列は後述(4)で使用します。
$1$ClPD0vzI$xKfPvDi3Ey7JvEgqicymo1
(3)SSH認証のための公開鍵と秘密鍵を生成
cloud-config.ymlに公開鍵を記述するために生成します。
・参考
URL)http://d.hatena.ne.jp/crosshope/20110509/ssh_keygen
(4)cloud-config.ymlを作成
(例)cloud-config.ymlの記述内容
#cloud-config hostname: coreosDev coreos: update: reboot-strategy: best-effort units: - name: etcd.service command: start - name: fleet.service command: start - name: docker.service drop-ins: - name: "50-insecure-registry.conf" content: | [Service] Environment='DOCKER_OPTS=--insecure-registry="host:port"' command: start - name: timezone.service command: start content: | [Unit] Description=timezone [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/ln -sf ../usr/share/zoneinfo/Japan /etc/localtime - name: 00-eno1.network runtime: no content: | [Match] Name=eno1 [Network] DHCP=yes [DHCP] UseDNS=true users: - name: core passwd: *****(※(2)ユーザー用の暗号化されたパスワード)***** groups: - sudo - docker ssh-authorized-keys: - ssh-rsa ******(※(3)SSH認証のための公開鍵)*****
(5)core ユーザーのパスワードを追加
$ sudo su - # whoami root # passwd core
(6)cloud-config.yml を CoreOS上へコピー
(例)Mac端末(IP 192.168.1.26)、CoreOS端末(IP 192.168.1.22)の場合
sshでCoreOS端末に接続します。その際、(5)で追加したcoreユーザーのパスワードを入力します。
その後、scp で ファイルをCoreOS上にコピーします。
$ ssh core@192.168.1.22 $ whoami core $ scp (Mac端末ユーザー名)@192.168.1.26:/Users/(Mac端末ユーザー名)/Desktop/cloud-config.yml ./cloud-config.yml $ ls cloud-config.yml
(7)/dev/sda にCoreOSをインストール
$ whoami core $ sudo coreos-install -d /dev/sda -C stable -c ./cloud-config.yml
(8)CoreOS の再起動
$ whoami core $ sudo systemctl reboot
-- バージョン情報 --
CoreOS(1068.6.0)
$ cat /etc/os-release NAME=CoreOS ID=coreos VERSION=1068.6.0 VERSION_ID=1068.6.0 BUILD_ID=2016-07-12-1826 PRETTY_NAME="CoreOS 1068.6.0 (MoreOS)" ANSI_COLOR="1;32" HOME_URL="https://coreos.com/" BUG_REPORT_URL="https://github.com/coreos/bugs/issues"
Docker(1.10.3)
$ docker version Client: Version: 1.10.3 API version: 1.22 Go version: go1.5.4 Git commit: 3cd164c Built: OS/Arch: linux/amd64 Server: Version: 1.10.3 API version: 1.22 Go version: go1.5.4 Git commit: 3cd164c Built: OS/Arch: linux/amd64
平成28年5月16日 大型自動二輪車免許 取得
爆速、開始。
バイク屋で見て、惚れたのは以下のバイク。
①HONDA CB1300 SUPER BOL D'OR
②ハーレーダビッドソン XL1200X フォーティーエイト