サイトアイコン IT NEWS

WindowsでAWS S3のバックアップ自動化と復元方法

クラウド上のデータを安全に管理するため、定期的なバックアップは不可欠です。
特に、AWSS3に保存しているデータをローカルにバックアップしておけば、インターネットの障害や誤った削除などのリスクを軽減できます。
本記事では、WindowsAWS CLIを利用し、S3のデータを自動的にバックアップする方法を詳しく解説します。

AWS CLIのインストールと設定

AWS CLIを使用するには、まず公式サイトからインストールを行い、認証情報を設定する必要があります。

AWS CLIのインストール

  1. AWS公式サイトからインストーラーをダウンロード
  2. インストール後、コマンドプロンプトで以下のコマンドを実行し、バージョンを確認
aws --version

認証情報の設定

aws configure
  1. AWSマネジメントコンソールでIAMユーザーを作成し、適切な権限(S3への読み取り権限)を付与
  2. コマンドプロンプトで以下を実行し、アクセスキーシークレットキーを設定
    aws configure
  3. 必要な情報を入力
    • AWS Access Key ID
    • AWS Secret Access Key
    • Default region (例: ap-northeast-1)
    • Default output format (jsonを推奨)

バックアップスクリプトの作成

以下のバッチファイルを作成し、指定した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

スクリプトのポイント

タスクスケジューラでの自動化

Windowsのタスクスケジューラを利用し、毎日自動的にバックアップを実行するよう設定します。

タスクの作成手順

  1. Windowsの「タスクスケジューラ」を開く
  2. 「基本タスクの作成」をクリックし、名前を入力
  3. 「トリガー」で「毎日」を選択し、実行する時刻を設定
  4. 「操作」で「プログラムの開始」を選択
  5. 「プログラム/スクリプト」に、作成したバッチファイルのパスを指定
  6. 「完了」を押して設定を保存

動作確認

スクリプトを手動で実行し、正常に動作するか確認。

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のインストールと設定
  • バックアップスクリプトの作成
  • タスクスケジューラでの自動実行
  • リストアの手順

これで、クラウド上のデータを定期的にローカルにバックアップし、必要に応じて簡単にリストアできる環境が整います。
データの安全性を高め、安心して運用を行いましょう。

モバイルバージョンを終了