個人所有のでっかいストレージのバックアップについて

## 2017-06-08追記

[Amazon.com: : Pricing FAQ](https://www.amazon.com/b?node=16591160011&ref=cds_tpc_w_lm)
そして、本家は値上げへ。

>7) How much can be stored under the new plans and how much do they cost? 
>Amazon now offers storage plans of 100 GB for $11.99, 1 TB for $59.99, and up to 30 TB for an additional $59.99 per TB. Any customer that signs up for storage with Amazon automatically gets 5 GB for free. Prime members will continue to receive free unlimited photo storage and 5 GB of free storage for non-photo content. You can see storage plan rates and find additional information here.

今のところ**co.jp**の方は無制限のままに見えますが、これもいつまでか…

## 2017-05-23追記

[Rclone has been banned from Amazon Drive - rclone - rclone forum](https://forum.rclone.org/t/rclone-has-been-banned-from-amazon-drive/2314/33)
夢は長くは見れなかったようです。

---

こんなタイトルですが、NURO光とAmazon Cloud Driveいいよっていう話です。
この記事には、実体験が含まれているため多少の脚色がされています。

## バックアップ欲しいけど辛い

```shell-session
$ df -h
ファイルシステム   サイズ  使用   残り  使用% マウント位置
/dev/md0          22T   17T  3.6T   83% /raid
```

数TBであれば、いまや1万円で3TBのHDDが買えるため、なんとかなるんですが、
こんな感じのサイズ感（>= 10TB)になってくるとストレージのバックアップをどうするのか問題になってきます。

個人所有の場合、バックアップといっても実際には冗長性を求める側面が強いので、
エンタープライズであればデータセンターを分けてなどの話もでてきますが、
~~そんなのはどうでもよく、~~動いてるのがぶっ壊れた時にその予備があればいいという考えで進めます。

## どこにとる問題

上に書いた通り数TBであれば、SeagateのArchiveHDDが、コストパフォーマンス的に良さそうです。
25,790円/8TB（2016-11-04時点）ですので、一度の出費としては大きいですが、
その後の運用コストが電気代だけになるのはかなり素敵です。

\>= 10TBクラスになってくると、これが複数個必要になってくるため、一度の出費としてはキツイ所です。

というわけで今時代クラウドらしいので、容量無制限の物の中で各種サービスの比較をします。

|                        サービス名                        |    料金    | 備考                                                                 |
|:--------------------------------------------------------:|:----------:|----------------------------------------------------------------------|
|            [Dropbox](https://www.dropbox.com)            | 1,250円/月 | 年間払いの場合の料金。初期割当は1TBで必要に応じ無料追加。            |
|                [Box](https://www.box.com/)               | 1,800円/月 | 最小5ユーザが必要。1ファイル5GB制限。                                |
| [Google Drive](https://gsuite.google.com/driveforwork/)  | 1,200円/月 | 5ユーザ以上で容量無制限。                                            |
| [FINALBOX](https://finalbox.net/)                        | 1,000円/月 | 1ファイル100GB制限。WebDAV対応。                                     |
| [Amazon Drive](https://www.amazon.co.jp/clouddrive/home) | 1,150円/月 | 13,800円/年の月割した料金。                                          |
| [CrashPlan](https://www.crashplan.com/)                  | 5.00USD/月 | 59.99USD/年の月割りした料金。専用クライアント必須。                  |
| [BACK BLAZE](https://www.backblaze.com/)                 | 4.16USD/月 | 50.00USD/年の月割りした料金。Personal Backup。専用クライアント必須。 |

上記の他にも従量課金のサービスなどありますが、予算的に辛くなるので見なかったことにします。

こうして並べて見ましたが、

- Dropboxは追加割当の申請がめんどくさそう[^1]なので除外
- Box, GoogleDriveは最小5ユーザ必要なので友達いない私は除外
- CrashPlan, BACK BLAZEは専用クライアント必須で使いにくいので除外

という様に除外され、FINALBOXとAmazon Driveのみ残りました。

それぞれ使ってる人の声を知りたかったので、情報を探してみましたが、あまり突っ込んで書かれてなかったり、
私の様に比較した上で、○○が良さそうと書いた所までで止まっていて、そこまで参考になる物はありませんでした。

そこで、3ヶ月の無料体験がある、Amazon Cloud Driveを試してみることにしました。

実測でどの程度の速度が出るのか計測してみた所、400〜600Mbps程度出たので、
ずっとこの速度を維持できるのであればかなり素晴らしい数値です。

## 回線との戦い

当時、[auひかり](http://www.au.kddi.com/internet/auhikari/)の1Gbpsプランを契約していましたが、この回線には30GB/日のアップロード制限があり、
バックアップのためだけに使ったとしても、`17 * 1000 / 30 ≒ 566.6`日かかる計算になり、
HDDが逝くのが先になりそうでしたので、今度は回線を変える検討をはじめます。

検索した所いい感じに情報がまとまっているサイトがありました。

[ISP規制情報Wiki](http://isp.oshietekun.net/)

サイトを下記の条件で見ていった所、該当するのは、かもめインターネットだけでした。[^3]

1. 住んでいる所（茨城）でサービスを受けられること[^2]
2. 制限が**なし**であること
3. 1Gbps以上の回線が提供されていること

そこで、かもめインターネットについて情報を収集したのですが、
自社設備のある一部地域だけ快適でそれ以外の地域では、設備を共用しているとか、
楽天に買収されてからだめになったなどの情報が出てきてしまい、絶望に暮れました。

そんな中、NURO光の情報を目にすることがあり、サイト上に書いてなかったなと思い調査した所、
時間帯で帯域制限（混み合ってるだけ？）を行っているというような情報は出てきましたが、
転送量について特に制限を行っているという情報は出てこなかったため、
ちょうど更新月だしと、軽い気持ちでキャッシュバックも貰い回線の乗り換えを行いました。[^4]

## どうやってバックアップを取るのか

工事が終わるまで時間を持て余していたので、どうやってバックアップを取ればいいかを考えていました。
専用クライアントはあるとは言え使いにくそうだし、FINALBOXのWebDAVだったら簡単なんだけどななどと思いつつ、
何かいい方法はないかを調べていると、[acd_cli](https://github.com/yadayada/acd_cli)と、[rclone](http://rclone.org/)というツールを見つけました。

acd_cliは、ACDのAPIに対応したような操作と、Fuseを使ったマウント機能を、
rcloneは、rsyncの様な（互換ではない）オプションを付けて、各種クラウド系サービスと同期する機能があります。

容量無制限の外部ストレージとしては使う場合には、acd_cliの方が便利そうですが、
今回のようなバックアップを取る場合には、rcloneの方が適切です。

## ついにバックアップ

ようやく回線も開通し、rcloneのオプションを調整しながらバックアップを開始しました。

最終的なオプションはこんな感じになります。
オプションの意味は[rcloneのドキュメント](http://rclone.org/commands/rclone_sync/)を参照して下さい。

```shell-session
$ rclone sync --exclude-from exclude.txt --delete-excluded --acd-upload-wait-time 10s --transfers 6 -q /raid amazon:/
```

約1ヶ月かかり、初めのバックアップが完了しました。
平均するとそこまで出ていませんが、瞬間的には986.3Mbpsと、物理限界に近いところまで出ていますので、
レイテンシに拘らなければ、外付けストレージの代わりとして使えるレベルだと思います。

![初めのバックアップ約1ヶ月間のtraffic](https://qiita-image-store.s3.amazonaws.com/0/2978/abb1661a-ca77-199a-056a-61bf94b8ed01.png)

![ACDの使用容量](https://qiita-image-store.s3.amazonaws.com/0/2978/b96a50bf-a6d4-7509-669e-917001f923ec.png)

実際にデイリーで差分バックアップ（一部増分バックアップ）をしてますが、毎朝角が立つような転送量が記録されてます。

![デイリーバックアップの転送量](https://qiita-image-store.s3.amazonaws.com/0/2978/339e05fa-adde-e299-2710-d7579bfe304c.png)

## 課題

rcloneのsyncでは、更新日時を見てくれないため[^5]、ファイルサイズとファイル名を見て同期を行っています。
そうすると、更新後にも同じファイルサイズのものについては同期漏れが起こる余地があります。

また、ACD上ではアルファベットの大文字・小文字を区別しないため、`abc.txt`を`ABC.txt`にリネームした場合に、
同期に失敗し、`HTTP code 409: "409 Conflict"`が返ってくるため、それを直せるようなPRを送りたいと思ってます。

rcloneで同期をしていると、ゴミがACDのゴミ箱に溜まりだすので、これをクリアする作業を定期的に手動で行ってますが、
その部分もついても、自動化ができればと思ってます。

## おまけ

ちなみにAmazon Cloud Driveですが、日本（co.jp）では、13,800円/年しますが、
US（.com）では、59.99USD/年のため、USで契約したほうがお得です。

当時確認したときには、どちらで契約してもオレゴンにつながっていましたので、
USでアカウントを取って決済できる程度の英語力がある方は、USがおすすめです。

mac・PC・iPhone・Androidなどの専用クライアントなどについては、
下記の記事の方法でログインアカウント（の認証先）を切り替えられることができます。

[みんなでAmazonCloudDrive！約月600円で容量無制限！※アプリで躓いている方へ](http://qiita.com/BANDAI/items/9949dfe9d3faa5c941b3)

## あとがき

こんな感じで、数ヶ月運用していますが、今のところAmazonからもNURO光からも怒られていないので、
利用規約的に問題ない範囲でみなさんもでっかいストレージのバックアップライフを送ってみてはいかがですか。

今回結局利用しなかったFINALBOXですが、使っている方がいらっしゃいましたら、ご感想など教えていただけると嬉しいです。

また、質問などありましたらここのコメントもしくは、
@eru_tndlに記載の各SNSなどにご連絡いただければなるべく答えるようにします。

--

[^1]: いちいちWebフォームから申請する必要があるように見えた。コミュ障には辛い。
[^2]: さすがにこのために引っ越すのは辛い。
[^3]: 正確には、親会社が共通の数社がある。
[^4]: この乗換で一悶着あったんですが、それはまた別の機会に。
[^5]: 正確には、ACDにそれに該当するものがないため。