AWS S3 Bucketを instanceにマウント
2013年6月18日
aws php library
http://aws.amazon.com/jp/developers/getting-started/php/
サーバで発生する大量のログをS3上で保管するための作業ログ
–>> s3をCDNとして活用するためのログ
- S3 上で Bucket 生成
- S3上で生成されたBucketに下記権限を追加
{
“Version”:”2012-10-17″,
“Statement”:[{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
“Resource”:["arn:aws:s3:::{bucket name}/*"
]
}
]
} - s3マウントに必要なライブラリインストール
yum install gcc libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel openssl-devel mailcap make
- アクセスーキーの登録(AWSトップページの上部にあるメニューから[Your Account]-[Security Credentials]で「Access Credentials」のセクションにある[Access Keys]で「Access Key ID」と「Secret Access Key」の英数字列
vim /etc/passwd-s3fs accesskeyid:secretaccesskey
- 権限設定
chmod 600 /etc/passwd-s3fs
- s3fsのインストール
wget http://s3fs.googlecode.com/files/s3fs-1.61.tar.gz tar xvzf s3fs-1.61.tar.gz cd s3fs-1.61/ ./configure --prefix=/usr make sudo make install
- Requested ‘fuse >= 2.8.4′ but version of fuse is 2.8.3 エラー時
yum remove fuse fuse* [download latest fuse from here - >http://sourceforge.net/projects/fuse/postdownload?source=dlp] tar -zxf fuse-2.8.6.tar.gz cd fuse-2.8.6 ./configure --prefix=/usr make make install export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/ ldconfig modprobe fuse pkg-config --modversion fuse (should return new version) <li>s3マウント 1 mkdir /mnt/s3 #マウント用のdirectory 生成 s3fs [自分のbucket名] /mnt/s3 #マウント -o allow_other
マウントは上記で終了
以下ログバックアップのためのロジック
- batch時点の日付directory生成 #prev_batch_date < user_log_data_period =
ユーザごとに保存されるdirectoryを検索 $userId =xxx #作業対象ユーザ function findUserDirectory($userId,$directoryStr=""){ if($userId/$mod == 0){ //現在のdirectory階層に保存 }else{ } }
Have your say
You must be logged in to post a comment.