TL;DR
- インスタンスのリタイア対策のためのインスタンス入れ替え(EIP張り替えによる)等により、プライベートIPが変わる可能性があるので、設定ファイルにおけるホスト名指定は工夫が必要
- VPCにおける、サブネットのプライベートIP帯域でのIP制限
- パブリックDNS名でのホスト指定
- lsyncdを使う時はtimeoutを設定しましょう
- lsyncdで上限ファイル数を超えた時の対処策
- ログローテーションの設定を必ず行う
- その他、下記の対策もあると安心
- ログ監視
- フォールバックの仕組み
同期元
lsyncdインストール
yum --enablerepo epel install lsyncd
起動オプション設定
# /etc/sysconfig/lsyncd LSYNCD_OPTIONS="-pidfile /var/run/lsyncd.pid /etc/lsyncd.conf"
認証用パスワード
# /etc/rsync.passwd random_hoge_password
いずれ、「特定ファイルだけ除外してくれ」といった要望が発生するだろうから excludeFrom
を最初から設定しておくとよい。
# /etc/lsyncd.conf settings { logfile = "/var/log/lsyncd/lsyncd.log", pidfile = "/var/run/lsyncd.pid", statusFile = "/var/log/lsyncd/lsyncd.stat", nodaemon = false, maxProcesses = 3, insist = 1, statusInterval = 1 } sync { default.rsync, source = "/var/www/vhosts/hoge_host/", target = "ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com::www", delay = 5, excludeFrom = "/etc/rsync_exclude/www.lst", delete = true, rsync = { archive = true, password_file = "/etc/rsync.passwd", compress = false } }
# /etc/sysctl.conf + fs.inotify.max_user_watches = 105640
# /etc/lsyncd.conf sync { . . . rsync = { . . . compress = false, _extra = { "--timeout=600", "--contimeout=60" } } }
起動
chkconfig lsyncd on service lsyncd start
同期先
もろもろインストール
yum -y install rsync xinetd
有効化
# /etc/xinetd.d/rsync service rsync { disable = no . . .
認証用パスワード (同期元と合わせる)
# /etc/rsync.secrets root:random_hoge_password
設定
root
で動かさないとパーミッション周りで爆発すると思われる。
# /etc/rsyncd.conf uid = root gid = root pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log transfer logging = true hosts deny = * hosts allow = 172.16.0.0/20 secrets file = /etc/rsync.secrets read only = false dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.gif *.png [www] path=/var/www/vhosts/hoge_host/ comment=www
起動
chkconfig xinetd on service xinetd start
その他
- その他、ログローテーションの設定を必ず行う
- 詰まったらログを確認
- 下記の対策もあると安心
- ログ監視
- フォールバックの仕組み
面倒くさいときは、cloudadvisor.jp へどうぞ