matetsuだもんでスマートフォン用の表示で見るmatetsuだもんでこの広告は、90日以上更新していないブログに表示しています。redisお久しぶりです。ELBが登場して勢いで書いた6月11日。更新してなさすぎですね。VPC環境で実現するというものです。」を参考にして構築しようと考えていたのですが、VPC(というかAWS)の環境ではbroadcastやmulticastが使用できないので、VRRPが使えず断念。そこで少し途方にくれつつ考えたのが、Sentinelを使う方法。Redisについては特に説明は必要ないと思いますので、Sentinelについて簡単に。master障害時にslaveをmasterへと昇格させる。)を参照していただければと。構成としては、以下のような感じです。すべてCentOS6.3(ちょっとだけカスタムAMI)を使っています。使うようにするくらいです。Redisサーバでは、以下のような設定をします。tableの設定はmaster/slaveの設定をするときにスクリプトを使って一気にやってしまうので、先に設定しておく必要はない。Redisの設定(初期設定)master/slaveの関係を作る前のRedis初期設定は以下のようにしています。[pass]くらいしか変えていません。Sentinelの設定はこちら。関しの設定はせずに、起動するだけになっています。この状態で、まずはサービスを起動します。続いて、redis01をmaster、redis02をslaveとして設定します。基本的には単純にredis-cliからslaveofコマンドを実行するだけなのですが、requireauthを設定しているので、パスワードを入れるのが面倒だったので、以下の様なpythonスクリプトにしています。tableを設定するためのスクリプトも準備しておきます。ACCESS_KEYやSECRET_ACCESS_KEY,routetable_idは自分の環境にあわせてください。このスクリプトでは、自分自身のインスタンスIDにVIPへのアクセスをルーティングするようにしています。このスクリプトと、実行ノードをmasterにするスクリプト(redis-to-master.sh)、指定したmasterノードのslaveにするスクリプト(redis-to-slave.sh)を組み合わせて、master/slave構成を取るようにする。redis-to-master.shとredis-to-slave.shの中で、sentinelが監視するクラスタの情報を登録するためにsentinel.confを変更する処理も入っています。この処理は、以下のテンプレートのmasterノード情報をsedを使って置換しているだけです。以下のように実行して少し待てば設定完了です。redis01フェイルオーバを試すここからが本題です。フェイルオーバはSentinelが自動で行なってくれて、masterが切り替わったことをアプリケーションに伝えてくれるとのことですが、VIPを使ってVIPの向き先を変更することで対応しています。書き換えてVIPを自身のインスタンスIDに向けるようにしています。することで、webサーバ側では特に接続先を変えなくてもそのままの設定で接続できます。endが渡ってきているので、自動フェイルオーバが完了して、もともとslaveだったノードがmasterとして稼働します。通知スクリプトを指定する。これで、フェイルオーバが起きたことを検知することもできる(もちろん監視も忘れずに)。フェイルオーバが起きた時には、以下のようなログが出力される。上のnotification-scriptだと、5通のメールが来ることになる。Typeを見て分岐したりもできるので、もう少し改良の余地はあるかと思います。6379masterが切り替わったあとも、webサーバからはVIPでそのままアクセスできることも確認できた。検証しないといけないこともあるけれど、それなりに簡単にフェイルオーバの仕組みを構築することができました。Sentinelについては、簡単に動かしてみた程度なので、もう少し詳しく調べてみたいなと思っています。年末に勢いで3分の2くらい書いたところで放置してしまっていましたが、このまま眠らせておくのもアレですし、とりあえずアウトプットしておこうとようやく書き上げました。不備などありましたらご指摘ください。gistも(ほぼ)初めて使って見ました。ネタ切れ感半端なさすぎてむりくりネタを作っています。EncryptをCloudFront+S3で利用するこんにちは。12月4日分の投稿を12月5日の夕方に書いています。#1に参加してきたので、そのメモ参加してきました。思い切りそのままメモ転載。#jawsug_bgnrそう、今日は肉の日。〜Outgoing篇〜はてなブログをはじめよう!matetsuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。