クラウド上のデータを安全に管理するため、定期的なバックアップは不可欠です。
特に、AWSのS3に保存しているデータをローカルにバックアップしておけば、インターネットの障害や誤った削除などのリスクを軽減できます。
本記事では、WindowsでAWS CLIを利用し、S3のデータを自動的にバックアップする方法を詳しく解説します。
目次
AWS CLIのインストールと設定
AWS CLIを使用するには、まず公式サイトからインストールを行い、認証情報を設定する必要があります。
Amazon Web Services, Inc.
AWS CLI
AWS コマンドラインインターフェイス (AWS CLI) は、AWS のサービスを管理するための統合ツールです。ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラ…
AWS CLIのインストール
- AWS公式サイトからインストーラーをダウンロード
- インストール後、コマンドプロンプトで以下のコマンドを実行し、バージョンを確認
aws --version
認証情報の設定
aws configure
- AWSマネジメントコンソールでIAMユーザーを作成し、適切な権限(S3への読み取り権限)を付与
- コマンドプロンプトで以下を実行し、アクセスキーとシークレットキーを設定
aws configure - 必要な情報を入力
バックアップスクリプトの作成
以下のバッチファイルを作成し、指定したS3バケットのデータをローカルに保存します。
@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の「タスクスケジューラ」を開く
- 「基本タスクの作成」をクリックし、名前を入力
- 「トリガー」で「毎日」を選択し、実行する時刻を設定
- 「操作」で「プログラムの開始」を選択
- 「プログラム/スクリプト」に、作成したバッチファイルのパスを指定
- 「完了」を押して設定を保存
動作確認
スクリプトを手動で実行し、正常に動作するか確認。
D:\Backup\s3_backup.bat
タスクスケジューラで「タスクの実行」を押し、自動実行の動作もチェック。
リストアの手順
万が一、S3のデータが消えたり、ローカルに戻したい場合は、以下の手順でリストアできます。
@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のインストールと設定
- バックアップスクリプトの作成
- タスクスケジューラでの自動実行
- リストアの手順
これで、クラウド上のデータを定期的にローカルにバックアップし、必要に応じて簡単にリストアできる環境が整います。
データの安全性を高め、安心して運用を行いましょう。


コメント