Windows
 Computer >> コンピューター >  >> システム >> Windows

Windows ServerでAmazon S3へのバックアップを自動化する方法|AWS CLIとタスクスケジューラの使い方

Amazon Simple Storage Service(Amazon S3)は、Windows Server上のデータを大容量クラウドストレージへバックアップできるサービスです。予期せぬ障害やトラブルによるデータ損失を防ぐため、重要なデータは定期的にバックアップしておくことが不可欠です。

Windows ServerでAmazon S3へのバックアップを自動化する方法|AWS CLIとタスクスケジューラの使い方

AWS CLIでWindows ServerのバックアップをAmazon S3へ自動化する

本記事では、バックアップ処理を「1回のみ」「毎日」「毎週」「毎月」など任意のスケジュールで自動実行する方法を解説します。操作自体はそれほど難しくありませんが、トラブルを避けるためにも手順に沿って着実に進めましょう。

ステップ1:AWS CLIをインストールする

まず、AWSバックアップの自動化に必要なAWS CLIをインストールします。AWS CLI バージョン1および2の詳細なインストール手順は、AWS公式ドキュメントで確認できます。

インストール完了後、デフォルトのユーザープロファイル、アクセスキーID、シークレットアクセスキーを設定します。以下のコマンドを実行してください。

aws configure

AWS Access Key ID [None]: <AccessID>

AWS Secret Access Key [None]: secretkey

Default region name [None]: us-east-1

Default output format [None]: json

S3コマンドの基本構文

Windows ServerでAmazon S3へのバックアップを自動化する方法|AWS CLIとタスクスケジューラの使い方

S3コマンドではパス引数を指定する必要があります。パスにはS3 URI(S3バケットのURI)またはlocalpath(ローカルディレクトリ)のいずれかを使用できます。例えば以下のように記述します。

localpath:C://Desktop/backups

S3URI:s3://yourbucket/yourkey

S3操作の完全な形式は次のようになります。

aws s3 s3command ソースファイル/フォルダー 転送先パス

転送の方向は、「localpath → S3URI」「S3URI → S3URI」「S3URI → localpath」の3パターンがあります。

例として、samplefile.txtというファイルをsample-bucketというバケットにコピーする場合は、以下のコマンドを使用します。

aws s3 cp "C://Desktop/backups/samplefile.txt" s3://sample-bucket

このコマンドではリージョンを指定していません。これは事前にaws configureでリージョンを設定済みだからです。バケットのリージョンを個別に指定したい場合は--regionフラグを使用します。

backupsフォルダー内のすべてのデータをsample-bucketへ同期するには、以下のコマンドを実行します。

aws s3 sync "C://Desktop/backups/" s3://sample-bucket

このsyncコマンドを使用する際は、以下の点に注意してください。

  • ローカルファイルが指定したバケットおよびプレフィックス内に存在しないこと。
  • S3オブジェクトのサイズがローカルファイルと異なること。
  • S3オブジェクトの最終更新日時がローカルファイルより古いこと。

S3コマンドでのフィルタフラグ活用のコツ

S3コマンドで使用できるフィルタフラグには--exclude--includeがあります。これらは1つのコマンド内で複数回使用可能です。

  • --include:S3コマンドの対象として特定のフォルダーやファイルを追加します。
  • --exclude:S3コマンドの対象から特定のフォルダーやファイルを除外します。

以下はフィルタの使用例です。

aws s3 sync "C://Desktop/backups/" s3://sample-bucket --exclude "*" --include "*.jpg" --include "*.png" --include "*.txt"

このコマンドは、backupsフォルダー内のすべてのファイルを除外しつつ、拡張子がjpg・png・txtのファイルのみを含める場合に使用します。

また、--dryrunフラグを付ければ、実際に転送を行わずに設定内容をテストできます。

aws s3 sync "C://Desktop/backups/" s3://sample-bucket "*" --include "*.jpg" --include "*.png" --include "*.txt" --dryrun

注意: フィルタフラグを指定しない場合、すべてのファイルがS3操作の対象となり、複数のフィルタがある場合は最後に記述されたものが適用されます。

バッチファイルでAmazon S3バックアップを作成する方法

1] バッチファイルを作成する

メモ帳を起動し、空の.txtファイルを開きます。

Windows ServerでAmazon S3へのバックアップを自動化する方法|AWS CLIとタスクスケジューラの使い方

backupsフォルダーをS3バケットへ同期するため、以下のS3コマンドを入力します。

aws s3 sync "C://Desktop/backups/" s3://your-bucket
Windows ServerでAmazon S3へのバックアップを自動化する方法|AWS CLIとタスクスケジューラの使い方

入力後、txtファイルを.bat拡張子で保存すると、バッチファイルとして扱えるようになります。

2] タスクスケジューラで新しいタスクを作成する

Windows ServerでAmazon S3へのバックアップを自動化する方法|AWS CLIとタスクスケジューラの使い方

Windowsキーを押して「タスクスケジューラ」を検索します。

検索結果から「タスク スケジューラ」を選択して起動します。

タスクスケジューラ画面で「操作」をクリックし、「タスクの作成」を選択します。タスク名を入力し、説明欄に概要を記入しましょう。

トリガーとして「1回のみ」「毎日」「毎週」「毎月」のいずれかを設定します。

3] 操作(アクション)を追加する

操作」タブに切り替え、ドロップダウンメニューから「プログラムの開始」を選択します。

プログラム/スクリプト」欄で、先ほど作成したバッチファイルを参照して指定します。

最後に、作成したタスクを保存すれば設定完了です。

本チュートリアルが、Windows ServerのS3バックアップ自動化にお役立ていただければ幸いです。

Windows ServerでAmazon S3へのバックアップを自動化する方法|AWS CLIとタスクスケジューラの使い方
  1. Windows 10でバックアップファイルを削除してストレージ容量を確保する方法

    テクノロジーの専門家は、写真、動画、ドキュメント、音声ファイルなど、重要なデータのバックアップを定期的に取るようアドバイスしますよね。データのコピー(バックアップ)があれば、デバイスがクラッシュしたときにも「失うものは何もない」という安心感が得られます。もちろん、大切なデータを定期的にバックアップすべき理由はそれ以外にもたくさんあります。 ただ、このアドバイスを真面目に実践している方ほど、デバイスには複数のバックアップファイルが溜まっているものです。しかし問題なのは、バックアップファイルがディスクのストレージ容量をかなり消費してしまう点です。不要なディスク領域を圧迫しないためにも、Window

  2. Windows 11でDNSサーバーを変更する方法【設定アプリ・コントロールパネル対応】

    Windows 11のPCやノートパソコンでDNS設定を見直すことは、プライバシーを強化したい方にとって重要な作業です。Webページを開くときも、アプリがバックグラウンドでサーバーに接続するときも、DNSを変更しておけばPC上のすべてのインターネット通信を保護できます。この記事では、初心者の方に向けて、Windows 11でDNSサーバーを変更する方法を2つの手順で詳しく解説します。 DNSとは?なぜ変更する必要があるのか? 多くの人にとって、インターネットへの接続はスイッチを入れるように簡単なものになっています。面倒な手順を踏むことなく、数秒でデバイスをネットワークにつなげられるのは、D