写真を取りまくって写真の行き場がなくなった技術好きな方は是非読んでみてください。
長年利用してきたGoogle Photosからほぼすべての写真を移行させました。そのプロセスについて公開しようと思います。
離脱するモチベーション
Google Photosはめっちゃいいサービスです。写真が大量にあっても軽く動きますし、動画はエンコードしてくれるので、細い回線でも動画が再生できたりします。(太い回線でも画質が結構荒い) 写真もインデックスをたくさんつけてくれるので、探しやすいし、共有もしやすい。簡単な画像の編集もできるし、言う事ありません。
「データストレージなんて安いんだから、クラウドに入れておけばいいんです。」と言われ続けて来たので、なんの疑いもなくGoogle Photosに自分の写真を入れて来ました。多分ほとんどの人はそれが当てはまると思います。ちょっと写真が多い人でも、月額1300円払えば2TBの追加容量が手に入るので、ほとんどの人がこれで満足するのだと思います。
AppleのiCloud使っても似たような価格帯です。
しかし、子どもが一人できて、もう一人できて・・・毎日100枚ぐらい写真や動画をとっているとデータ量の爆発が起こり、我が家では2TBの壁を超えそうになっていました。Google Oneだともう対応するプランがないので、「Apple に切り替えるか?」となった時に突如月額4500円のブラケットになり、妻と合わせて月額9000円となると、「あれ、ちょっと高くね?」となるわけです。
もちろん家族写真の容量は増える一方で減ることはありませんし、状況を悪化させる要因として、円安でクラウド料金はどんどん上がり続けています。なので、データのサブスクリプションはこのあともジリジリと増えていくと思いました。
「であれば、今のうちに離脱しよう!」と思って離脱することを決めました。
どうやったのか?
2つやりました。
- 自宅に高容量で冗長性のあるサーバーを構築しました。
- そのサーバーに immich をインストールして、Google Photosに似た環境を作りました。
せっかくなので、1 のサーバーは汎用性があるように作りたいと思いました。既製品のNASを入れて、「はい、おしまい」だと単一目的になってしまいますのでコンテナ化されたサービスをYAMLファイルなどで宣言的に簡単にデプロイすることができるようにすることもサーバーの要件にします。immichはそのデプロイされたサービスの一つであるという位置づけです。
③-②-① バックアップ
クラウドベンダーは各社素晴らしいバックアップ戦略をユーザーには見えないところで講じているはずなので、Google Photosを利用している限りはあまり意識する必要がなかったバックアップ戦略ですが、自分の手で解決するとなるとちゃんと考える必要があります。もちろん一個人ができる範囲で作戦が必要です。3-2-1 Backupを参考にします。
そこで考えたのがこの作戦です。
- スマホで撮った写真を常にImmichとGoogle Photosにアップロードしておきます。
- 毎年1月1日にやること。
- Immichの全てのデータをアーカイブして別のHDDに書き込んで、安全な遠隔地に保管します。参考
- Google Photosの1年以上古い写真を削除します。
③つのコピーを持つ
「自宅のサーバー」、「Google Photos」、「遠隔地のHDD」にそれぞれデータが冗長に保管されますので、③をクリアします。
②種類以上のメディアにいれて保管する
すべてHDDに入っているけど、ZFSとExFATと2つの異なるFile Systemにデータを入れているので、②をクリアします。 多分クリアしてないけど気にしない。
①つのデータは遠隔地に持つ
都内の遠隔地にアーカイブしたHDDをおいているので ①をクリアしています。HDDを取りに行く時間が必要ですが、個人で利用しているレベルなので問題はないです。
サーバー自作
コンピュータの自作は大学生以来だったのですが、以下の部品で作りました。
Motherboard
https://www.gigabyte.com/jp/Motherboard/A620I-AX-rev-10/sp#sp
CPU
AMD CPU Ryzen 5 8500G
Memory
Crucial(クルーシャル) PRO (マイクロン製) デスクトップ用メモリ 16GB×2枚 DDR5-6000
SDD
キオクシア KIOXIA 内蔵 SSD 480GB 2.5インチ 7mm SATA
HDD
HGST 12TB hdd 3.5インチ HGST x 2
Seagate HDD 3.5インチ 12TB SATA x 3
Power Supply
SilverStone SFX-L規格 80PLUS GOLD認証電源/フルプラグイン仕様 500W SST-SX500-LG
Case
Jonsbo n1
IO Board
10Gtek 10ポートPCIe SATAカード、SATA3.0拡張カード、X1, 10
アイテム | 単価 | 数量 | 金額 |
---|---|---|---|
Case | 21,892 | 1 | 21,892 |
Power Supply | 15,980 | 1 | 15,980 |
Motherboard | 27,500 | 1 | 27,500 |
CPU | 23,455 | 1 | 23,455 |
Memory | 14,986 | 1 | 14,986 |
SSD | 4,580 | 1 | 4,580 |
HDD HGST 12TB | 24,800 | 2 | 49,600 |
HDD Seagate 12TB | 21,037 | 3 | 63,111 |
IO Board | 6,499 | 1 | 6,499 |
合計 | 227,603 |
合計は23万円弱になりました。ちなみにいHDDは整備品を買ったりしたので、だいぶ安く抑えています。仮に少し早く死んでもRAIDZで冗長構成をとっているので問題ないと判断しています。
もちろん新品のほうがいいのですが、普通に買うと12TBのHDDはひとつ5万円ぐらいするのでこれも完璧かというと微妙でしょう。
RAIDZ2で冗長構成を組んだので堅牢な36TBのストレージが手に入りました。iCloudで12TBのサブスクが月9000円だとすると、9ヶ月でもとが取れることになります。仮に6TBちょっとしか使わなかったとしても 26ヶ月でもとが取れる計算なので、全然悪くない気がします。長期で運用できると結構楽にペイオフしそうです。電気代はいくらか測れていません。
自分でインフラを所有しているので、徐々にHDDを買い増したり、壊れたところだけ買い直したりフレキシブルに運用が可能です。コンピューター触っていて楽しいと思える人はアリだと思います。
今回はハードウェア調達まで書きましたが、次回はソフトウェア導入とデータ投入について書きます。