EC2 に S3 のバケットをマウントして、rsync でバックアップをとるのを試してみているのでメモ。
ec2 に s3 をマウントする
Amazon S3 編。S3 バケット を マウント する方法 | EC2 S3 マウント ファイルシステム | ナレコムAWSレシピ
と、
Amazon S3編~S3バケットをファイルシステムとしてマウントしてみよう!~ EC2 S3 s3fs マウント | ナレコムAWSレシピ を参考にしました。
少し困ったのは、アクセスキーとシークレットキーのところ、 IAM という認証の仕組みを使う点で、上記のリンクの説明と違っていたことでした。 IAM については、 IAM とは? – AWS Identity and Access Management に説明も動画もありますが、 AWS アカウント内の限られた権限を持つユーザーを作成して、認証を行うことができるようにするためのサービスです。
今回は、 ec2 サーバ内に S3 関連の操作のみができる IAM ユーザーの認証情報を保存しています。
マウント自体は、 s3fs を利用すると簡単でした。上記のリンクにやり方が書いてあります。インストールするバージョンは、 Downloads – s3fs – FUSE-based file system backed by Amazon S3 – Google Project Hosting で最新のバージョンが確認できました。
rsync してみるとすごく遅かった
rsync でバックアップをしてみたところ、とても遅かったです。vi でファイルを作成して書き込み、保存するのにもレスポンスに1秒ずつか、もうちょっと時間がかかる感じでした。
そこで、ssh での接続が切れたり、ログアウトしたりしたあとも処理を続けてくれるように ログアウトした後もプログラムの処理を続ける?(コマンド実行時にnohup) を参考にしました。
nohup rsync -av /var/www/vhosts/i-nskw/ /mnt/s3/backup/ &
最初はファイルが多いのですが、今後は差分だけなので、今後は毎晩、
- マウントする
- 必要なデータベースのダンプファイルを作成してどこかに保存
- 必要なディレクトリのrsync
- マウント解除する
というのをやってくれるのを作ろうと思います。
コメント