share facebook facebook twitter menu hatena pocket slack

2012.07.12 THU

lsyncdでS3と同期

鈴木 宏康

WRITTEN BY 鈴木 宏康

前回、CentOS6.2にlsyncdをインストールの記事を紹介したので、次はS3との同期を試してみます。
下記のように、/etc/lsyncd.confを設定します。

settings = {
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd.status",
nodaemon = true,
}

s3sync = {
maxProcesses = 1,
onStartup = "s3cmd -c /root/.s3cfg -P -r --delete-removed sync ^source ^target/",
onCreate = "s3cmd -c /root/.s3cfg -P put ^source^pathname ^target^pathname",
onModify = "s3cmd -c /root/.s3cfg -P put ^source^pathname ^target^pathname",
onDelete = "s3cmd -c /root/.s3cfg del ^target^pathname",
onMove = "s3cmd -c /root/.s3cfg mv ^target^o.pathname ^target^d.pathname",
}

sync{
s3sync,
source = "/tmp/src",
target = "s3://www.suz-lab.com/tmp",
}

また、s3cmdのインストールは下記のように行なっておきます。

# yum -y install s3cmd

lsyncd再起動後、対象のディレクトリ(/tmp/src)にファイルを追加・変更・削除を行うと、
同様の操作が対象のS3(s3://www.suz-lab.com/tmp)にも反映されていることがわかります。

尚、対象ファイルの制限やS3側のアクセスコントロールなどは、s3cmdの設定となります。

そして、これをFTP等と連携すれば「Write Proxyパターン」になりそうです。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。