MacのiTunesライブラリをAWS S3にバックアップする

  • 8
    いいね
  • 2
    コメント

あらまし

長いこと使っている MBA(Late 2013, SSD128GB) のiTunesのライブラリ*を、どこかしらにバックアップしようと考えた。けれど、

  • 手元に空いた外付けディスクがない
  • iTunesライブラリが60GBぐらいあるので、ディスク容量が足りず圧縮できない
    • →DropboxとかGoogle Driveとか、オンラインストレージにzipファイルを投げるのはアウト
    • そもそも定期的にzip作ってアップロードして、って面倒すぎない? スクリーンショット 2017-05-28 20.48.18.png

などなどの状態で困っていたけれど、最終的に「S3でいいんじゃない?」ってとこに辿り着いた。
実際にやってみたので、その手順をメモしておく。

*本記事では /Users/${username}/Music/iTunes 以下を想定しています。それ以外にバックアップしておくべき箇所があるなら教えてほしい。

手順

  1. ターミナルでAWS CLIが利用できるようにする
  2. CLI経由でS3にアクセスできるIAMロールを作成する
  3. 2.のIAMロールをCLI側で設定する
  4. ターミナルでaws syncコマンドを実行する

1. AWS CLIコマンドのインストール

ターミナルからpipでインストールする。

$ pip install --upgrade --user awscli

ダウンロードできたら aws --version を叩いてみる。
こんな感じで返ってきたらOK。

$ aws --version
aws-cli/1.11.93 Python/2.7.10 Darwin/16.6.0 botocore/1.5.56

command not found な場合は、パスを通してから再度実行する。

$ export PATH=$PATH:/Users/${username}/Library/Python/2.7/bin

2. IAMユーザーの作成

S3にアクセスするためのIAMユーザーを作成する。

メニュー > IAM > [ユーザーを追加]

1. 詳細

ユーザー名: ex.) s3-uploader
アクセスの種類: プログラムによるアクセス を選択

2. アクセス権限

ユーザーをグループに追加 > グループの作成
グループ名: ex.) s3-uploader
ポリシー: AmazonS3FullAccessを選択

以降、3.確認 > 4.完了と進み、credentials.csv をダウンロードしておく。

3. IAMユーザーのID・PWを設定する

2.で作成したIAMユーザーでAWS CLIコマンドを実行するための設定をする。

$ aws configure

ダウンロードしたcredentials.csvの情報を入力する。

AWS Access Key ID: (記載されているAccess Key ID)
AWS Secret Access Key: (記載されているSecret Access Key)
Default region name: us-east-1
Default format: json
スクリーンショット 2017-05-26 21.48.54.png

4. AWS CLIコマンド実行

初回の場合は以下の通り。

$ aws s3 sync /Users/${username}/Music/iTunes s3://${s3bucketname}/iTunes

sync で、指定したディレクトリ以下を再帰的に同期してくれる。
また、 --dry-run をつけて実行すれば、同期されるファイルの一覧を確認できる。

2回目以降は

$ aws s3 sync /Users/${username}/Music/iTunes s3://${s3bucketname}/iTunes --delete

--deleteオプションを指定すれば、ローカルで削除したファイルもs3から削除してくれる。
(@monamu さんよりコメントいただきました。ありがとうございます!)


結構時間がかかった。(諸事情で出先でやっていたので、だいたい7~8時間)
が、GUIで操作して……だと何百年経っても終わらないだろうことを考えると、目覚ましい。便利です。

参考

http://www.task-notes.com/entry/20150904/1441335600
https://aws.amazon.com/jp/getting-started/tutorials/backup-to-s3-cli/
http://docs.aws.amazon.com/cli/latest/userguide/installing.html#install-bundle-other-os