2014/12/19
子供の写真をバックアップ
今回は 「子供」×「ネット」 Advent Calendar 2014 の 19日目の記事として書きました。
難しい話題が続いた様ですので、ここらでちょっと気分転換に軽いお話を…
子供が産まれたら皆さん写真を一杯撮影しますよね?
『え?そうでもない?』…そ、そうですか(笑
私は写真を一杯いっぱい撮影しちゃいました。
我が子のために為にコンパクトデジタルカメラを買い換え、
それでは物足りずにデジタル一眼レフカメラを購入し、
明るいレンズ…望遠レンズ…とすっかり泥沼にはまり込んでいます。
特にお勧めは F値が 1.4 の単焦点レンズで……っと、今回はそういう話ではなくて
撮影したデータを保存するというお話です。
一般的に言ってデジタルカメラで撮影した画像は
お手持ちのパソコンのハードディスクに転送して保存していると思います。
その中でお気に入りの何枚かは印刷して保存しているでしょうが、
かつての銀塩カメラと違って全てを印刷する事は少ないのではないでしょうか?
そうなると我が子の写真データはパソコンの中だけに保存されているという事は割とよくある事だと思います。
でも、ちょっと待って下さい。(通販番組風)
そのパソコン本当に大丈夫でしょうか?
ある日パソコンが起動しなくなってしまうのは割と良くある事です。
コンピュータに詳しければパソコンが起動しなくてもお子様の写真を取り出す事はできますが、
普通はそんな事なかなか出来ないと思います。
それに実はパソコンのハードディスクというのは意外と信頼性が低く、
ちょっとした衝撃や場合によっては近所の落雷などでデータが消える危険性があります。
消えてしまって悲しい思いをするまえにちょっとした手間でバックアップを是非!
そんな大切な写真のバックアップにはこちらの商品をぜひ……じゃなくて
今回は我が家でのデータ保全をご紹介致します。
我が家 (というか私) は自宅では MacBook PRO をメインに愛用しています。
写真などのデータも基本はこの中ですのでこのマシンの中身がマスターデータとなります。
OS X と言えば標準で搭載されるバックアップツールの TimeMachine が有名です。
普段持ち歩き用に MacBook Air を使っていますので、
重要なデータ (というか殆どの個人データ) はメインの MacBook PRO と同期しています。
ですので全ての基本は MacBook PRO のデータ (画像データの場合は Picture フォルダ) のバックアップになります。
ご多分に漏れず我が家にも TimeCapsule があるので (但し内蔵 HDD は何度か交換済み)、
OS の機能を利用して TimeCapsule にバックアップしています。
MacBook PRO が起動している間は自動でバックアップをしてくれるので便利です。
問題点は若干信頼性が低い所でしょうか。
ですので TimeMachine だけではなく他のバックアップ手段と併用しています。
同期は OS X に標準のユーティリティ rsync コマンドを利用しています。
rsync は unix で古くから利用されている同期のためのユーティリティで、
ターミナル画面上から利用します。
ターミナルからの利用なので少々ハードルが高く感じますが、
基本は『どこのデータ』を『どこに』同期するか指定して実行するだけです。
例えば以下の様に実行すると Picture フォルダをホスト macbookair の Picture フォルダに同期します。
通信は ssh を利用していますが ssh-keygen で生成した鍵認証を利用していますので、
接続時にパスフレーズを聞かれる事なく接続できるので便利ですし自動処理に向いています。
$ for i in Documents Pictures Movies Musics
> do
> rsync -avz -e ssh ${i} macbookair.example.com:.
> done
自宅の LAN 内で MacBook PRO と MacBook Air が同時に起動されている状態では、
上記の処理を自動で定期的に実行する事で MacBook Air のデータを最新の状態に更新し
同時にデータのバックアップ (単なる二重化) としても役立てています。
正確には NAS ではなくサーバのストレージです。
自宅には FreeBSD で構築したサーバが設置してあるのですが、
そのサーバに大容量の HDD を増設してバックアップ用の NAS としています。
前述した rsync を利用してこちらも自動で定期的にストレージにデータを転送しています。
$ for i in Documents Pictures Movies Musics > do > rsync -avz -e ssh ${i} storage.example.com:/var/backup/ > done
他の用途で利用している VPS (さくらの一番安いタイプですが十分です)のストレージに、
前述した自宅サーバに増設した HDD のデータを定期的に同期しています。
自宅サーバは FreeBSD ですので unix の強力なツールが利用できるので、
この同期処理も勿論 rsync を利用しています。
$ rsync -avz -e ssh /var/backup vps.example.com:/var/backup
このさくらの VPS は親戚向けに娘の写真を公開する Web サーバとしても利用しています。
公開には WS-Slideshow という flash のアルバムを利用していますが、
自作のシェルスクリプト を利用して
WS-Slideshow の設定ファイル (xml) やサムネイルファイルを作成しています (宣伝乙)。バックアップしたデータはスクリプトで html などを自動生成して公開しています。
余談ですが、この VPS は 娘の名前の漢字ドメインで運用しています。
娘には unix によるサーバ管理の基礎知識をしっかりと教えて、 娘が成人する時にドメインの権限を委譲するのが今から楽しみです。 (「そんなの要らないよ」と言われるのが今から怖い…)
年に1回娘の誕生日の翌日に前年の1年分の写真や動画データを DVD に保存しています。
正と副の2枚を焼いて保存していますが、
実は光媒体はデータの保存期間が割と短いので気休め程度です。
データ保存の本命 Amazon S3 です。
ご存じの方も多いと思いますが、通信販売で有名な Amazon は Amazon Web Service (通称 AWS) という
いわゆるクラウドコンピューティングのサービスも提供しています。
この AWS の中で S3 というクラウトストレージ (インターネット上のハードディスクの様なモノです)は
お手軽、安心、そこそこ安価なのでこれをバックアップに利用しない手はありません。
AWS の画面は日本語化を進めているそうなのですが、一部(殆ど)英語ですので
若干ハードルが高いのですが、実は簡単な英語ですし機能も単純ですのでそれほど難しくないと思います。
AWS S3 ではデータを「バケット」と呼ばれるコンテナに格納します。
バケットはパソコンのフォルダーの様なものと考えて下さい。
ですので写真を入れるためのバケットを好きな名前で作成します。
ちなみにこのバケットの名前は全世界でユニークにする必要がある様なので、
「pictures」など単純な名前は多分利用できないと思います。
バケットが出来たら早速写真を転送してみます。
ブラウザを経由した Amazon S3 の管理画面からでもアップロードは可能ですが、
Amazon S3 用に色々なツールが公開されているのでそれらを利用するのが良いでしょう。
私はサーバに s3cmd というツールを導入して定期的に同期処理を実行しています。
$ s3cmd sync -rr /var/backup s3://my-picture-backet/Picture
ちなみに我が家では娘が産まれてから 8 年分の写真データを全てバックアップしていますが、
容量は 100GB (枚数で言うと 200,000枚) 程度で費用は大体毎月 $ 4.00 (500円) 程度です。
AWS の他の機能 (Cloud Front) を利用すればアップロードした写真を公開したり、 色々とできる事は沢山あるのですが長くなってしまうので今回は残念ながら割愛します。
追記
rsync は OS X 標準ではありませんでした。Mac Ports を利用して後から導入したコマンドです。