Synology NAS上のデータをS3 Glacier Deep Archiveにバックアップする
我が家ではSynology NAS DS224+を利用して写真やドキュメントを保存しています。 特に写真はTBレベルの容量になっており、この写真たちのバックアップ先を探していました。 自分のバックアップの条件を満たすために、Dockerコンテナを利用してS3 Glacier Deep Archiveクラスにバックアップすることとしました。 この記事では、SynologyNAS上のデータをS3にバックアップする方法を紹介します。 はじめに まず自分のバックアップの条件としては下記です。 費用は可能な限り抑えたい 災害にも対応できるように自宅以外(遠隔地)に保管したい バックアップファイルは滅多に参照しない(リストア以外で参照しない) あくまで個人用ファイルなので、リストアに時間がかかっても問題ない jpg/png/mp4など、データのフォーマットのまま保管したい SynologyNASとバックアップ先のディレクトリ構造を一緒にしたい 結論としては、これらの条件をすべて満たすものとして、Dockerコンテナを利用してAWS CLIを利用し、Amazon S3のGlacier Deep Archiveクラスにバックアップすることを決めました。 なぜAmazon S3を利用するのか これは単純に費用が安いからです。また、簡単に遠隔地(例えばアメリカ)にデータを保管できます。 単純なストレージ料金は、米国西部(オレゴン) us-west2で、USD 0.00099/GB = USD 1.01376/TBです。 1$=155円だとした場合、1TBで157円です。安いですね。 実際にはデータ取り出し料金などもあるので、ストレージ料金だけでは正確ではないのですが、ランニング費用としてはこの程度です。 なぜDockerコンテナを利用するのか? Synologyには、Hyper BackupやGlacier Backupといったバックアップアプリが存在します。 特にGlacier BackupではS3 Glacierに簡単にバックアップすることが可能です。 一方で、S3 Glacierの利用はすでにAWS社から推奨されていません(Amazon S3のGlacierクラスを利用することが推奨されている)。 また、S3 Glacierではディレクトリ構造が特殊になってしまうため、AWS-CLIを利用して直接バックアップすることにしました。 事前準備 ここから、バックアップの方法を説明していきますが、まず事前準備として下記を行います。 AWSのアカウント作成 Amazon S3上にバケットを作成 S3のバケットにアクセスできるシステムユーザをIAMで作成 システムユーザのアクセスキーを発行 Synology NASでContainer Managerを導入 このあたりの説明は割愛します。 もしわからなければ、多くのサイトで丁寧に説明されているので調べてください。 Synology NASでイメージの取得 まず、DSM上でContainer Managerからamazon/aws-cli:latestイメージをダウンロードします。 Container Managerを起動して、「レジストリ」タブをクリックして、amazon/aws-cliをダウンロードしてください。 タグはlatestで良いです。 コンテナの作成 コンテナを作成していきます。 Container Managerを起動して、「コンテナ」タブをクリックして、「作成」ボタンをクリックします。 全般設定 下記を指定して「次へ」ボタンを押下します。 ...