クラウド上のデータを安全に管理するため、定期的なバックアップは不可欠です。
特に、AWSのS3に保存しているデータをローカルにバックアップしておけば、インターネットの障害や誤った削除などのリスクを軽減できます。
本記事では、WindowsでAWS CLIを利用し、S3のデータを自動的にバックアップする方法を詳しく解説します。
目次
AWS CLIのインストールと設定
AWS CLIを使用するには、まず公式サイトからインストールを行い、認証情報を設定する必要があります。
Amazon Web Services, Inc.


AWS コマンドラインインターフェイス(CLI: AWSサービスを管理する統合ツール)| AWS
AWS コマンドラインインターフェイス (CLI) は、AWS サービスを管理するための統合ツールです。ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラインか…
AWS CLIのインストール
- AWS公式サイトからインストーラーをダウンロード
- インストール後、コマンドプロンプトで以下のコマンドを実行し、バージョンを確認
1 |
aws --version |
認証情報の設定
1 |
aws configure |
- AWSマネジメントコンソールでIAMユーザーを作成し、適切な権限(S3への読み取り権限)を付与
- コマンドプロンプトで以下を実行し、アクセスキーとシークレットキーを設定
aws configure
- 必要な情報を入力
- AWS Access Key ID
- AWS Secret Access Key
- Default region (例: ap-northeast-1)
- Default output format (jsonを推奨)
バックアップスクリプトの作成
以下のバッチファイルを作成し、指定したS3バケットのデータをローカルに保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
@echo off setlocal enabledelayedexpansion rem バックアップのルートフォルダ(バケットごとに保存) set "backup_root=D:\Backup\S3" set "CONFIG_FILE=D:\Backup\s3_buckets.txt" rem 設定ファイルが存在するかチェック if not exist "%CONFIG_FILE%" ( echo エラー: 設定ファイルが見つかりません - %CONFIG_FILE% exit /b 1 ) rem バケットリストを読み込んでバックアップ実行 for /f "delims=" %%b in (%CONFIG_FILE%) do ( set "bucket=%%b" set "backup_path=%backup_root%\!bucket!" echo バケット '!bucket!' のバックアップを開始... rem 差分バックアップ + S3で削除されたファイルをローカルからも削除 aws s3 sync "s3://!bucket!" "!backup_path!" --exact-timestamps --delete echo バケット '!bucket!' のバックアップ完了。 echo --------------------------------------- ) rem バックアップ完了メッセージ echo すべてのバケットのバックアップが完了しました。 pause exit /b 0 |
スクリプトのポイント
aws s3 sync
コマンドを使用して、S3とローカルのデータを同期--exact-timestamps
を指定し、更新日時も一致させる--delete
オプションを付けることで、S3で削除されたファイルはローカルでも削除s3_buckets.txt
にバックアップ対象のバケット名を記述することで、複数のバケットを処理可能
タスクスケジューラでの自動化
Windowsのタスクスケジューラを利用し、毎日自動的にバックアップを実行するよう設定します。
タスクの作成手順
- Windowsの「タスクスケジューラ」を開く
- 「基本タスクの作成」をクリックし、名前を入力
- 「トリガー」で「毎日」を選択し、実行する時刻を設定
- 「操作」で「プログラムの開始」を選択
- 「プログラム/スクリプト」に、作成したバッチファイルのパスを指定
- 「完了」を押して設定を保存
動作確認
スクリプトを手動で実行し、正常に動作するか確認。
1 |
D:\Backup\s3_backup.bat |
タスクスケジューラで「タスクの実行」を押し、自動実行の動作もチェック。
リストアの手順
万が一、S3のデータが消えたり、ローカルに戻したい場合は、以下の手順でリストアできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
@echo off setlocal enabledelayedexpansion rem バックアップのルートフォルダ(バケットごとに保存) set "backup_root=D:\Backup\S3" set "CONFIG_FILE=D:\Backup\s3_buckets.txt" rem 設定ファイルが存在するかチェック if not exist "%CONFIG_FILE%" ( echo エラー: 設定ファイルが見つかりません - %CONFIG_FILE% exit /b 1 ) rem バケットリストを読み込んでリストア実行 for /f "delims=" %%b in (%CONFIG_FILE%) do ( set "bucket=%%b" set "backup_path=%backup_root%\!bucket!" echo バケット '!bucket!' のデータをリストア中... rem ローカルのデータをS3にアップロード aws s3 sync "!backup_path!" "s3://!bucket!" --exact-timestamps echo バケット '!bucket!' のリストア完了。 echo --------------------------------------- ) rem リストア完了メッセージ echo すべてのバケットのリストアが完了しました。 pause exit /b 0 |
まとめ
本記事では、AWS CLIを使ってS3のバックアップをWindows環境で自動化する方法を紹介しました。
- AWS CLIのインストールと設定
- バックアップスクリプトの作成
- タスクスケジューラでの自動実行
- リストアの手順
これで、クラウド上のデータを定期的にローカルにバックアップし、必要に応じて簡単にリストアできる環境が整います。
データの安全性を高め、安心して運用を行いましょう。
コメント