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)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。