Redisをのせているサーバのリソースが逼迫したときに取る戦略の1つとして、水平分割という方法がある。
この水平分割は、データの偏りや、再分割をうまくやろうとすると困難が伴い、泥臭く運用をやる必要がある。
しかし、最初から、クライアントコード上で水平分割の数を決め打ちして扱うと楽になるのではないか?と考えた。
たとえば、サービス開始時には、Redisに将来分割するであろう超大量のユーザIDをキーにしたデータを格納するとして、クライアントは、キーを32分割して扱うようにし、それをすべて1つのRedisに入れてしまえば良い。
メリット:分割しやすくなる。
Redisサーバ数を1から2へ分割するときは、まず、Redis AからRedis Bへレプリケーションを構築して、クライアント上で32分割しておいたキーを、16づつ振り分ける設定をして、レプリケーションを停止する。そうするだけで、サーバリソースをスケールアウトできる。余計になったキーは、あとでバッチで消せばよい。
ノードの負荷の偏りが予想されるときは、Redis Aに20、Redis Bに12を割り当てる、などといったこともできる。
デメリット:最初に決めたRedis分割数までスケールアウトさせたら、その先は泥臭くがんばる必要がある。そうならないように、最初に分割数を多めの数、たとえば、128などに決めておけばよいはず。
分割するとき、1人のユーザIDのデータ更新頻度がレプリケーションのレイテンシを超えるとデータの整合性に不安ができる。アプリケーションによるが、数msで1人の人間がガンガンデータを更新してくることがあるかどうか?この点をクリアできるか、検討する必要がある。
2017年9月13日水曜日
2017年8月28日月曜日
Gitの脆弱性 ( CVE-2017-1000117 ) CentOS yum update
CentOSのyumで最新版のGitをインストールして、Gitの脆弱性 ( CVE-2017-1000117 ) を解決します。
IUSリポジトリを利用して、Gitの最新バージョンをインストールする方法と、公式パッケージのセキュリティアップデート版をインストールする方法の、2通りがあります。
以下、Gitの脆弱性の概要です。
IUSリポジトリを利用する場合
https://ius.io/GettingStarted/
Gitの最新バージョンを提供しています。
IUSリポジトリを設定
CentOS 6
CentOS公式アップデートを利用する場合
https://lists.centos.org/pipermail/centos-announce/2017-August/022519.html
2017/8/17に、CentOS公式がCentOS 6向けのアップデートパッケージを発表しています。Gitのバージョンは1.7.1のセキュリティアップデートになります。
サーバにインストールされているGitバージョンを確認。古いバージョンだった。
IUSリポジトリを利用して、Gitの最新バージョンをインストールする方法と、公式パッケージのセキュリティアップデート版をインストールする方法の、2通りがあります。
以下、Gitの脆弱性の概要です。
gitクライアント上での任意のコマンド実行の可能性 重要度 - Importanthttps://oss.sios.com/security/git-security-vulnerabiltiy-20170813
Gitでの"ssh"URLハンドリングにshellコマンドインジェクションの欠陥が見つかりました。
これを利用して、悪意のあるレポジトリや悪意のあるコミットを行われたをレポジトリに対して"clone"アクションをGitクライアントで実行した際に、Gitクライアントを実行したユーザの権限でshellコマンドを実行される可能性が有ります。
IUSリポジトリを利用する場合
https://ius.io/GettingStarted/
Gitの最新バージョンを提供しています。
IUSリポジトリを設定
CentOS 6
# rpm -Uvh https://centos6.iuscommunity.org/ius-release.rpmCentOS 7
# rpm -Uvh https://centos7.iuscommunity.org/ius-release.rpm既存のGitを削除して、IUSリポジトリからGitをインストール。
# yum remove git # yum --enablerepo=ius install git2u # git --version git version 2.14.1
CentOS公式アップデートを利用する場合
https://lists.centos.org/pipermail/centos-announce/2017-August/022519.html
2017/8/17に、CentOS公式がCentOS 6向けのアップデートパッケージを発表しています。Gitのバージョンは1.7.1のセキュリティアップデートになります。
サーバにインストールされているGitバージョンを確認。古いバージョンだった。
# yum list installed | grep git.x86_64 git.x86_64 1.7.1-4.el6_7.1 @baseアップデートをかける。
# yum update gitバージョンが更新されていることを確認。
# yum list installed | grep git.x86_64 git.x86_64 1.7.1-9.el6_9 @updates
2017年8月7日月曜日
builderscon tokyo 2017 スタッフしてきたのでインスタで振り返る
アイコンはGitHubのアイコンを使っていただきました。リアル顔とアイコン画像とIDが一致するアイディア。いいですね。
前夜祭のチーム分けで、入り口案内係になる。4人いたので、1階と2階で割り振ったの図。 @kamadango さんのノート。一瞬でわかりやすく書く能力。
ノベルティ詰めの作業がなかったので、準備に余裕があった。
さくらインターネットの鷲北さんの話がうまかった。当時、ブロックストレージ障害は自分も被ったので当事者感があった。あれはマジでつらい出来事でしたね。。データベースサーバが吹っ飛んで消えてなくなった記憶がある。バックアップとっておいてよかった。
モヤモヤPOINT。学生と言わない。
のんびりスタッフやるかー。と思ってきたら、リーダーだった。完全に油断していました。大きなトラブルはなかったと思われます。頑張った。同部屋スタッフの能力の高さのおかげです。@pastak さんMC力、高し。
なんかこの兄弟、ライブで見たことあるぞと思って調べたら 上鈴木兄弟 だった。思ったよりトラックがかっこ良くて、ついつい音量上げてしまった。うるさかったらすいません。
妻に、あんちぽラップかましたら怒られた。 #builderscon
— TY (@takeshiyako) 2017年8月5日
けっこう濃厚です。
登録:
投稿 (Atom)