長い間勘違いしていたのですが
ライターや芸能人がくる時はお店側が力をいれるため
客はプラスになると思っていました
このブログを見て、
それがアホだったと思い知らされました
lsyncdをいれてみた
lsyncdというリアルタイムでの同期の
ソフトがあると聞いて
とあるプロジェクトにいれてみた
マスタ → スレブの構成です
双方にすると削除の時にリスクがあるみたいなので
やめました
1・インストール
標準だとリポジトリがないので追加する
rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install lsyncd --enablerepo=epel yum install rsync
2・設定ファイル作成
フォルダをつくって、ファイルを作成する
mkdir /etc/lsyncd vim /etc/lsyncd/lsyncd.conf
以下設定内容
settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd-status.log", -- 最新の処理結果が書かれる pidfile = "/var/log/lsyncd/lsyncd.pid", maxProcesses = 2, -- 同時にsyncを走らせる数 nodaemon = false, -- falseだとdaemonになる。デフォルトはtrue insist = 1, -- 起動時に接続に失敗しても再接続を試み続ける } sync { default.rsync, source = "/var/www/Project_st/datas/", -- 監視対象のディレクトリ。rsyncのSRCに相当 target = "192.169.1.2:/var/www/Project_st/datas/", -- 同期先のホスト名+ディレクトリ。rsyncのDESTに相当 exclude={"/logs/","cache"}, -- 監視対象外のディレクトリ(ソースからみたディレクトリを記載する。相対パスになる) rsync = { archive = true, links = true, update = true, verbose = false, rsh = "/usr/bin/ssh -p 22 -i /var/opt/192.169.1.2.sshkey.txt", -- 接続時に使うsshコマンド。ポートや鍵のファイルはここで指定できる _extra = { "--bwlimit=10000" } } } sync { default.rsync, source = "/var/www/Project_st/public/pf/", -- 監視対象のディレクトリ。rsyncのSRCに相当 target = "192.169.1.2:/var/www/Project_st/public/pf/", -- 同期先のホスト名+ディレクトリ。rsyncのDESTに相当 rsync = { archive = true, links = true, update = true, verbose = false, rsh = "/usr/bin/ssh -p 22 -i /var/opt/192.169.1.2.sshkey.txt", -- 接続時に使うsshコマンド。ポートや鍵のファイルはここで指定できる _extra = { "--bwlimit=10000" } } } sync { default.rsync, source = "/var/www/Project/datas/", -- 監視対象のディレクトリ。rsyncのSRCに相当 target = "192.169.1.2:/var/www/Project/datas/", -- 同期先のホスト名+ディレクトリ。rsyncのDESTに相当 exclude={"/logs/","cache"}, -- 監視対象外のディレクトリ(ソースからみたディレクトリを記載する。相対パスになる) rsync = { archive = true, links = true, update = true, verbose = false, rsh = "/usr/bin/ssh -p 22 -i /var/opt/192.169.1.2.sshkey.txt", -- 接続時に使うsshコマンド。ポートや鍵のファイルはここで指定できる _extra = { "--bwlimit=10000" } } } sync { default.rsync, source = "/var/www/Project/public/pf/", -- 監視対象のディレクトリ。rsyncのSRCに相当 target = "192.169.1.2:/var/www/Project/public/pf/", -- 同期先のホスト名+ディレクトリ。rsyncのDESTに相当 rsync = { archive = true, links = true, update = true, verbose = false, rsh = "/usr/bin/ssh -p 22 -i /var/opt/192.169.1.2.sshkey.txt", -- 接続時に使うsshコマンド。ポートや鍵のファイルはここで指定できる _extra = { "--bwlimit=10000" } } } -- exclude="/subdir**", ワイルドカードによる指定も可能 -- exclude="/*/", サブディレクトリすべて -- exclude={"*.log", "/*/"}, ファイル名にも指定可能 --除外指定を行なうと logs(ファイル) , /logs/ (ディレクトリ)が除外対象となる。 --つまり /test/logs/ はマッチするので除外対象となるが /logss/ は除外対象にはならない。 -- 同期したいフォルダが複数ある場合はsyncを作っていく
3・起動停止
#デーモンの起動
lsyncd -log scarce /etc/lsyncd/lsyncd.conf
#デーモンを停止する場合
kill -KILL $(cat /var/log/lsyncd/lsyncd.pid)
簡単にできた!!
実際に動かしてみると1秒から2秒ほど
若干タイムラグがあります
4・参考URL
インストールなどで参考にした
http://qiita.com/ftakao2007/items/41c5c0653892d1454c39
双方向同期について参考にしてやめた・・・
https://blog.cloudpack.jp/2015/03/03/use-running-as-delete-parameter-to-sync-bi-directionally-with-using-lsyncd/
sshdが立っていればrsyncdは必要がないっていう所でもっとも参考にした
http://ikm.hatenablog.jp/entry/2013/05/27/140336
excludesの部分に注意!!
excludeが正しいみたい
複数の設定で参考にした
http://www.shift-the-oracle.com/linux/utility/lsyncd-local.html
5・再起動の設定(2016/09/26追記)
上記の設定だと再起動時に同期されません
再起動は以下のファイルを修正する
vi /etc/rc.local
最後の行に下記を追加する
lsyncd -log scarce /etc/lsyncd/lsyncd.conf
ロードバランスサービスなのに・・・
現在、アプリのAPIサーバーを構築しています
VPSサービスのロードバランスを使用して
分散処理を組みました
VPSでもロードバランスできる時代になっただ~
と感激していたのですが
ポートが1つしか選べませんした
\(^o^)/オワタ
HTTPS+HTTPという項目があるのですが
こちらを選択すると証明書をロードバランス側に
いれないといけないようでした
つまりHTTPとHTTPSを共有してかつ
複数のドメインの場合は
このサービスは対応していないようです
テストと本番を同じドメインでやるには
プログラムのミスやセキュリティ的にやりたくないです
あう・・・マニュアルとか公開されていないし
やってみるまでわからないよ
3240円に文句は言っても仕方がないです
HTTPはロードバランスしないという方向で逃げました
今後はnginxのロードバランスで対応したいです
SQLインジェクション対応しないの?
ここ最近はゲームや
仕事に忙しくてブログの更新をさぼっていました
m(_ _)m
外注さんといっしょに仕事するようになって
一番ビックリしたのは
SQLインジェクション対応していない事
マジで・・・
フレームワークの関数が用意されているのにそれをつかわずに
独自でSQLを書いている・・・・
気がついたのは外注さんが作ったソースをもとに
似たような機能を作ろうとしたらビックリ
いやいやいや・・・・
フレームワークに従うべきだろう・・・
あとから入ったプロジェクトだけにいまさら戻れないけど
インフラエンジニアとしてSQLインジェクションをいれていないのは許せない!!
全プログラムをコードレビューしないといけないとか
マジ悲しい・・・
インフラエンジニアとして今後学びたい事
経緯
突然、上司が「インフラエンジニアとしてどんな事を学びたい?」と聞かれたので考えてみました
それにしてもいつからインフラエンジニアになったんだろう・・・
採用はHTMLのコーダーだっただけど・・・
注意事項
インフラエンジニアをガチでやっている人から見ると
参考にならない記事です。