HOME > CONIT Labs.

CONIT Labs.

AmazonS3をバックアップ先として使おうぜ!


サーバに保存しておきたいファイルがあるのに、Diskは有限。
ファイルサーバに保管でもしようか?
保管したファイルサーバ壊れたらどうしよう?
Diskからメディアに保存しておこうか。
メディアの寿命って何年だっけ?

でも、そこまで重要なデータでもないんだよな。。。
あとで使うかもしれないデータなんだよな。。。

なんて状態になってる人はクラウド上のストレージに置いときましょう。
世の中すっかりクラウド時代ですね。

私にとっては、アクセスログファイルが該当するんですね。
いつか使う。。いやすぐに使うんですけれど。。

こんな流れにしようかと。
1. ログを1時間ローテート。
2. bzip2圧縮
3. openssl ファイル暗号化
4. S3の適当な場所にUpload
5. ログファイルさん、また逢う日までさようなら。

s3ツールは、s3cmdを使う。urlはこちら
http://s3tools.org/s3cmd

今回は「s3cmd-1.0.0-rc1.zip」バージョンだった。

zipを解凍すると
s3cmd のpythonスクリプトが入っているので、こいつを使う。

初回はamazonのkey関係を設定するために、
./s3cmd  –configure
で実行する。
accesskey,secretkeyなどを聞かれるので入力すると、~/.s3cfg に初期設定が保存される。
このファイルは見られないように注意しよう。

コマンドはいろいろあるけどバケット名が「hogesasaki」だった場合

ファイルリスト取得
./s3cmd  ls
./s3cmd  ls s3://hogesasaki
 などでファイルリストが見れる。

ファイルアップロード
./s3cmd  put   enc_abc.txt   s3://hogesasaki/enc_abc.txt
enc_abc.txtのアップロード

ファイルダウンロード
./s3cmd  get   s3://hogesasaki/enc_abc.txt  enc_abc.txt 

enc_abc.txtのダウンロード

エラー時はシェル変数の$?を見て、成功か失敗かを判定すれば良く
とても使い勝手が良いですね~

おまけ
ファイルの暗号化
openssl enc -e -aes256 -in abc.txt -out enc_abc.txt -k sasaki
ちなみに復号はこちら
openssl enc -d -aes256 -in enc_abc.txt -out dec_abc.txt -k sasaki

おまけのおまけ
s3cmd に 暗号化指定でアップロードする機能がありました。。

MySQL Clusterがズバッと全部落ちた。


ソーシャルアプリのDBには運用が楽ちんなので、

MySQL clusterを使っています。

マスタDBをホットスタンバイさせて、keepaliveして落ちたら接続先を変えて・・・・・・っというのが面倒なので

そもそも1台落ちたって平気なcluterちゃんで運用しておりました。

SQL nodeが沢山

Manage nodeが2台

Data nodeが2台

で運用していました。

・・・稼働開始から半年以上・・・・・毎日、けなげに稼働していたのですが、、、、

10月の月末、ついに反乱を起こしやがりました。。

ある日の午後の私>>

「少しゴミデータ残ってるな~~」

「消してしまいますか」

「うんうん」

「delete from ほげほげ 」

「よしEnter!!バシっ!」

「・・」

「・・」

「なに? unknown error?」

「消す量多かったかな??汗汗」

「よしlimit だ。 delete from ほげほげ limit 100; Enter!!バシっ」

「ん?あれあれ?」

「select from ほげほげ limit 10; Enter!! バシっ!」

「ん?unknown error ??」

「やばい! (汗だらだら)」

「delete 文でdataノード全部落ちやがった!!バカやろー(涙)」

てな具合で、小一時間復旧作業に明け暮れましたとさ。

エラーログを見ると、

バグリポートしてね!というお茶目なエラーログ。

まったく、とほほな一日でした。

こんなエラーログ↓↓↓

Time: Monday 25 October 2010 – 16:20:17
Status: Unknown
Message: No message slogan found (please report a bug if you get this error code) (Unknown)
Error: 1217
Error data: Unable to store fragment during LCP. NDBFS Error: 1217
Error object: DBLQH (Line: 13051) 0x0000000a
Program: /opt/libexec/ndbmtd
Pid: 30856 thr: 3
Version: mysql-5.1.44 ndb-7.1.3
Trace: /opt/var/lib/mysql-cluster/ndb_3_trace.log.2 /opt/var/lib/mysql-cluster/ndb_3_trace.log.2_t1 /opt/var/lib/mysql-cluster/ndb_3_trace.log.2_t2

結局のところ、

99%で1万円のサーバと

99.999%で100万円のサーバがあったとしても

落ちる落ちないが99%であろうと、99.999%であろうと

100%でない限りは障害対応が必要なんだよね。

なので、

やっぱり、

商用DBだろうが、OpenSourceだろうが、

どっちにしろ

落ちた時の対策って必要には変わりない。

  • 2010年11月08日
  • MySQL

コニット開発室

CONIT Official Tweet

CONIT Facebook FanPage

CONIT BLOG

株式会社コニット

SamuraiSmartphoneServices

Buy and take only medicines from online pharmacy ,]}$ drugs online has affordable prices. Brand name drugs Canadian pharmacy [*}: compare drug prices Canada delivering medicines at your door. Free online consultation at https://canada-pharmacy-store.com <;) order cialis highest value and quality. Is it legal to mail prescription drugs? Yes, Canadian drugs [.($ order viagra . After ordering you will be contacted by our managers and agree on the delivery details.