はじめに
先日、iPhoneや一眼レフで撮り溜めた写真データを保存しているHDDが一時的に読み込めなくなるトラブルがあった。
結果的には認識が戻ったが、元から写真のバックアップをないがしろにしていた自覚があり、これをきっかけに写真データのバックアップ構成を見直すこととした。
この記事では、自分のようにiPhoneと一眼レフを併用した膨大な写真データがあり、かつそれらのコストを最小に抑えてバックアップしたい方向けに、自分が取った構成変更を中心にまとめる。
現状の構成
見直し前の写真データの保存先は、次のようになっていた。
- 実体の保存先:HDD1台に、一眼レフの写真とiPhoneの写真、両方の実体をまとめて保存
-
バックアップ先:Amazon Photos
Amazon Photosは、もともとプライム会員特典として写真のバックアップに使っていた。写真は容量無制限で保存できるが、動画は対象外のため、動画分だけ追加ストレージプラン(月150円・50GB)を別途契約していた。
厳密には直近の写真データはiPhoneのストレージや一眼レフのSDカードに入っており、それらを定期的にPCに接続してデータをHDDに移している。
一眼レフのSDカード内はHDDに移したらフォーマットし、iPhoneのストレージ内は誰かに写真を見せることもあるので基本的に消さないが、容量がギリギリになったところで削除している。
これらの運用は、構成変更後も変えていない。
- データ容量:約300GB(一眼レフのRAW+JPEGに加えて、iPhoneで撮った写真・動画も含む)
現状の課題
この構成には、大きく2つの課題があった。
1. HDD1台に実体が集約されていた
Amazon Photoでは写真データ自体は当然バックアップされているが、ダウンロード時は一度に選択できる上限は約5,000枚とされていて、それ以上ある場合は選択画面で「〇千個のアイテムを選択する」という表示になり、5000枚単位でブラウザ操作でDLする必要があるらしい。
その他にも、フォルダ情報が完全になくなることにより一眼レフとiPhoneの写真の区別が難しいことや、アップロード時のファイルをそのままダウンロードできるわけでもない(メタデータ欠損の可能性)もあった。
以上から、HDDが壊れたときの主たる復旧経路としては不向きと判断した。
2. 動画の追加ストレージがまもなく容量オーバーしそうだった
契約していた50GBのプラン(150円/月)が埋まりつつあった。上位プランに切り替えると100GBプラン(250円/月)となる。100GBを超えると1TBプラン(1300円/月)となる。
100GBプランとなっても気にしすぎるほど高くはないが、それを超えると価格がジャンプアップする。
最近産まれた子供の動画を撮ることが増えているため、少なくとも100GBを超えるまでには手を打つ必要があった。
見直し後の構成
見直し後の構成を決めるに当たっては、Claudeと相談しつつ以下の方針とした。
① 一眼・iPhone写真の実体は、S3 Glacier Deep Archiveにバックアップする
普段ほとんど見返さない写真データのバックアップ先として、コストを抑えるためDeep Archiveを採用した。
具体的なバケット構成やフォルダ設計、rcloneでの転送方法などは、内容が長くなるので別記事に切り出す予定。
② Amazon Photosは継続、動画の追加ストレージは解約
プライム会員特典として使えるAmazon Photos自体は、そのまま継続する。(iPhoneから削除した写真などを急に他者に見せたい事態になった場合は、Amazonフォトから見せる。やや動作は重いが。)
一方で、容量が近く上限に達しそうだった動画用の追加ストレージ(月150円/50GB)は解約した。動画のバックアップ先は今後Deep Archive側に寄せる。
動画は現状50GB程度なので、極力iPhoneにも保存して他者に見せられるようにもする。
③ HDDは「壊れるまで使う」方針
Claudeからは所有しているHDDの動作が怪しいこともあり、HDD1台を追加購入して2台運用として5年周期で交換していく案を推奨された。一方、最近のHDD価格の高騰も踏まえると、予備を1台常に遊ばせておくコストが割に合わないと判断した。
最終的には、今のHDDを壊れるまで使い続け、壊れたタイミングで新しいHDDを買ってDeep Archiveからデータを復旧する、という節約寄りの運用とした。
ただし、後述するようにDeep Archiveからデータを取り出すためには追加コストがかかる点には注意が必要。
見直し後のコスト
この方針で気になるのは、やはりDeep Archiveの実際のコストです。300GBを保存する前提で、AWS東京リージョンではなくus-east-1(バージニア北部)を使う場合の料金を試算してみます。
保管コスト(毎月かかる分)
Deep Archiveの保管料金は、1GBあたり月$0.00099です。
- 300GB × $0.00099 = 月$0.297 → 1ドル160円換算で月あたり約47円
- 年間にすると $3.56 → 約570円/年
一眼の写真が増えて仮に500GBになったとしても、月$0.495(約80円)程度なので、保管コストそのものはほぼ気にする必要がないレベルです。
アップロードリクエストコスト(初回にデータをアップロードするときにかかる分)
Deep Archiveへのアップロードやライフサイクル移行にかかる費用は、1,000リクエストあたり$0.05。
ファイル数がざっくり2万点だとすると、
20,000 ÷ 1,000 × $0.05 = $1.00(1ドル160円換算で約160円)
最初に全データを入れるときに一度だけこの金額がかかる。
今後差分アップロードするときも当然追加がかかるが、おそらく10円以内の誤差といえる金額。
取り出し(リストア)コスト(HDDが壊れたときにかかる分)
Deep Archiveはデータを取り出す際にリストア料金がかかり、リストアの速さによって金額が変わる。
- 標準リストア(12時間で取り出し):1GBあたり$0.02 → 300GB全量だと $6.00(約960円)
- 大容量リストア(48時間で取り出し):1GBあたり$0.0025 → 300GB全量だと $0.75(約120円)
写真データの復旧自体は数日待てるはずなので、基本的には大容量リストア一択だが、そこは状況に併せて選択。
備忘録:最小ストレージ期間
Deep Archiveには、保存してから180日未満で削除・移動すると、180日分の保管料金がまとめて請求されるという最低保存期間のルールがある。
今回のように「一度入れたらほぼ動かさない」使い方であれば影響はないが、頻繁に入れ替えるような使い方には向かないので、あくまで長期保管専用と割り切って使うのがよい。
コストの変化
| 項目 | 見直し前(Amazon Photos 動画容量追加分) | 見直し後(Deep Archive) |
|---|---|---|
| 初期コスト | 0円(追加プラン契約のみ、初期費用なし) | 約160円(初回アップロード時のPUTリクエスト費用。一眼+iPhone合わせて約2万ファイル想定) |
| 月額コスト | 150円/月(動画50GB分のみ、写真は無制限無料) | 約47円/月(300GB全量の保管費用) |
| 取り出しコスト | 0円(ダウンロードはいつでも無料だがデータ復旧自体はブラウザ経由で手間がかかる) | 大容量リストア:約120円/標準リストア:約960円(300GB全量を一括で取り出す場合) |
コスト差分自体は大きくないが、HDD故障時の復旧のしやすさなど運用性の向上は大きい。
今後、動画容量が50GB、100GBを超えてくるとさらにコストメリットは大きくなる。
所感
自分の子供の成長記録や家族・友人と過ごした写真や動画が消失するというのはコストに換算できないほどに怖いことである。
とはいえコストを過剰にかける余裕もないので、今回の対応でHDDに加えてAWS Deep ArchiveとAmazon Photosで可用性を高められたことは大きい。
ひとまずはこの構成を継続し、Amazonが各サービスを過剰に値上げすることがないことを祈ることにする。
この記事から割愛したこと
以下の内容は記事から割愛した。必要に応じて後日備忘録として記事を上げる予定。
- iPhoneで撮った写真のファイル変換。自分はiPhoneで撮った写真に付属するメタデータ(撮影日時・位置情報など)をそのまま残し、Live Photoなどもそのまま純正写真アプリで読ませたかったため、変換を施した。
- 写真の自動フォルダ分け。デバイスでそのままつけたファイル名のまま一つのフォルダに格納するとわかりにくすぎるので、年/月のフォルダに自動で格納するようにした。
- 写真の自動アップロード手法。HDDのフォルダを維持してrcloneでDeep Archiveに自動アップロードするようにした。