LoginSignup
1
2

More than 1 year has passed since last update.

オンプレのサーバーからS3にバックアップする方法

Posted at

はじめに

以前にオンプレのSubversionサーバーをクラウドへ移行という記事に、S3へバックアップを保管する方法について書いたことがあります。

上記の記事は「AWS上のサーバー(EC2)からS3へのバックアップ方法」となるため、今回は改めて「オンプレのサーバーからS3へのバックアップ方法」についてまとめてみました。

AWS上のサーバーとの違い

オンプレのSubversionサーバーをクラウドへ移行に書いてある内容との相違点は以下の通りです。

  1. Amazon Linuxではないため、AWS CLIをインストールする必要があります。
  2. S3にアクセスするためのユーザーを作り、そのユーザーのアクセスキーを使う必要があります。
    • AWS上のサーバーは「ロールを付与」することでS3にアクセスできますが、オンプレ環境ではこの方法は使えません。

設定手順

以下の手順は、Alma Linux 8で構築したサーバー上での手順となります。

AWS上の設定

IAMユーザーの作成

  • AWSでは「最小権限の原則」というものがあるため、バックアップに必要な権限のみを付与したIAMユーザーを作成します。
    • ここではs3-backupというグループを指定していますが、これはユーザー作成と同時に新規作成したグループとなります。
    • s3-backupというグループに割り当てる権限は、AmazonS3FullAccessのみとします。
  • ユーザー作成時にアクセスキーを1回だけDLできるので、安全な場所に保管しておきます。
項目 設定値
IAMユーザー名 backup
AWS認証情報タイプ アクセスキー
グループ名 s3-backup
グループのポリシー AmazonS3FullAccess

S3バケットの作成

  • バックアップ先となるバケットを作成します。
    • ここではバケット名をnkojima-backupとしています。
    • AWSの管理コンソールからもバケットを作れますが、もしAWS CLIをインストール&設定済みであれば以下のコマンドでバケットを作成できます。
[nkojima@akagi ~]# aws s3 mb s3://nkojima-backup/
make_bucket: nkojima-backup

AWS CLIの導入

インストール

  • こちらのページに書かれているLinuxのインストール手順に沿ってインストールします。
// インストール
[nkojima@akagi ~]# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
[nkojima@akagi ~]# unzip awscliv2.zip
[nkojima@akagi ~]# sudo ./aws/install

// インストール後にバージョンを確認
[nkojima@akagi ~]# aws --version
aws-cli/2.5.5 Python/3.9.11 Linux/4.18.0-240.22.1.el8.x86_64 exe/x86_64.rocky.8 prompt/off

セットアップ

  • aws configureと入力した後、バックアップ用のユーザーを作成した際にDLしたアクセスキーの情報を指定します。
[nkojima@akagi ~]# aws configure
AWS Access Key ID [None]: {アクセスキー}
AWS Secret Access Key [None]: {シークレットアクセスキー}
Default region name [None]: ap-northeast-1
Default output format [None]: json

動作テスト

  • 適当なファイル(※ここではtest.txt)を作成して、aws s3コマンドで所定のS3バケットにアップロードできることを確認します。
[nkojima@akagi ~]# touch test.txt
[nkojima@akagi ~]# aws s3 cp /root/test.txt s3://nkojima-backup/
upload: ./test.txt to s3://nkojima-backup/test.txt

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

  • 上記の動作テストと同じく、以下のようにaws s3コマンドを呼び出すスクリプトを作成します。
  • このスクリプトをcrontabなどに登録して、定期実行するように設定すればバックアップを自動化できるはずです。
backup.sh
#!/bin/sh

echo "バックアップ開始..."
/usr/local/bin/aws s3 cp {バックアップファイルのパス} s3://nkojima-backup/
echo "バックアップ終了"

参考URL

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2