WordPressのバックアップをAWS S3に自動保存する

WordPressのバックアッププラグイン「Updraftplus」を利用して、AWSのS3にバックアップデータを自動保存する手順をまとめました。

## 全体の流れ

1. Amazon S3 のバケットを作成
1. IAMポリシーを作成
1. IAMユーザーを作成
1. WordPressプラグイン「Updraftplus」に設定を追加

全体の流れはこのようになります。
AWSアカウント登録は済んでいることを前提としています。
次から、詳しく書いていきます。

## Amazon S3 のバケットを作成

Amazon S3のダッシュボードからバケットを作成します。

![スクリーンショット 2023-12-01 12.42.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/875c3298-c137-32ba-0a95-03f970c4966f.png)

### 必要な情報を入力する

バケットタイプは「汎用」にします。
リージョンを選択し、任意のバケット名を入力します。

![スクリーンショット 2023-12-01 12.52.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/4f013b05-71d6-423a-bb74-e5d11fcc5033.png)

### その他の設定

下記の設定はデフォルトのままでいきます。「バケットを作成」ボタンを押して作成します。

- オブジェクト所有者：ACL無効（推奨）
- このバケットのブロックパブリックアクセス設定：パブリックアクセスをすべて ブロック
- バケットのバージョニング：無効にする
- タグ：なし
- デフォルトの暗号化：Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3)

## IAMポリシーを作成

IAMダッシュボードからポリシーを作成します。

![スクリーンショット 2023-12-01 16.22.402.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/315b4087-e193-165f-fd44-85978f189c88.png)

### アクセス許可を指定

サービスを選択から、S3を選択します。

![スクリーンショット 2023-12-01 16.26.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/5754325f-ec2f-725f-0a22-c3340a2d4a9b.png)

アクション許可の「すべての S3 アクション (s3:*)」にチェックを入れます。

![スクリーンショット 2023-12-01 14.19.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/dc73f3a9-2cd7-abec-1789-0f1cdd8ea297.png)

リソースの「特定」を選択し、backetとobjectの「ARNを追加」からそれぞれARNを追加します。

![スクリーンショット 2023-12-01 14.20.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/32239882-3ab2-b9a5-803b-d693b9937e1a.png)

#### backet
![スクリーンショット 2023-12-01 14.17.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/ebf2086a-b772-73f3-7d5e-1b46a41d2c74.png)

#### object
![スクリーンショット 2023-12-01 14.18.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/4e146552-5dae-02cc-5482-2d4c6069f87f.png)

#### 不要ポリシーを削除

表示を一度JSONに切り替えてビジュアルに戻し、「S3 許可15アクション」が表示されていたら、今回はこちらは不要なので削除して、次へ進みます。

![スクリーンショット 2023-12-01 16.35.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/1f160eea-707e-33ae-031f-2c66fdf78edf.png)

### JSONで記述する場合

UIから選択する方法ではなく、JSONを直接記述してして指定することもできます。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::mindeco-backup/*",
                "arn:aws:s3:::mindeco-backup"
            ]
        }
    ]
}
```

### 確認して作成

任意のポリシー名を入力して「ポリシーを作成」ボタンを押して作成します。

![スクリーンショット 2023-12-01 14.23.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/18e725d9-abc9-5787-05df-cdc6f5391466.png)


## IAMユーザーを作成

IAMダッシュボードからユーザーを作成します。

![スクリーンショット-2023-12-01-13.26.09-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/d7f63988-4bb5-874f-8a9f-ae48143f06a6.png)

### ユーザーの詳細を指定

任意のユーザー名を入力します。

![スクリーンショット 2023-12-01 13.42.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/8380529d-c060-da7e-68d1-f9d9f010cd64.png)

### 許可を設定

「ポリシーを直接アタッチする」を選択し、許可ポリシーとして先に作成しておいたポリシーを検索してチェックを入れます。

![スクリーンショット 2023-12-01 16.43.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/756ace43-2c45-7ea1-ec0b-99ce68509d31.png)

### 確認して作成

確認して問題なければ、「ユーザーの作成」ボタンを押して作成します。

## アクセスキーを作成

作成したユーザーのアクセスキーを作成します。「アクセスキーを作成」をクリックして始めます。

![スクリーンショット 2023-12-01 16.52.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/24780e13-116b-919e-9a67-e2c929dbba4a.png)

### 主要なベストプラクティスと代替案にアクセスする

「その他」を選択して次へ進みます。

![スクリーンショット 2023-12-01 16.58.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/785edecc-f721-9822-72d7-e61005b6d6e4.png)

### 説明タグを設定してアクセスキーを作成

任意で入力します。  
「アクセスキーを作成」ボタンを押してを作成します。

![スクリーンショット 2023-12-01 17.00.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/dc7778da-a8b2-a2d0-3275-4d454088c451.png)

### アクセスキーを取得

アクセスキーとシックレットアクセスキーが表示されます。
この情報が記載されたcsvを「.csvファイルをダウンロード」からダウンロードして保管しておきます。

![スクリーンショット 2023-12-01 17.05.042.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/3d31601e-12b3-531b-fd23-f37da1584f8e.png)


## WordPressプラグイン「Updraftplus」に設定を追加

ここからはWordPress側での設定です。
「Updraftplus」プラグインをまだインストールしていない場合はインストールします。

「設定」タブを開きます。

![スクリーンショット 2023-12-01 17.16.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/06f75dd6-2a62-ffa1-f1e2-c499ce35aa14.png)

### アクセスキーの登録

「保存先を選択」で「Amazon S3」を選択すると、アクセスキー等の入力エリアが表示されるので、先ほど取得した「アクセスキー」と「シークレットアクセスキー」と「バケット名」を入力します。

![スクリーンショット 2023-12-01 17.04.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/f6527b6e-0a93-21c9-842f-74552ef29e45.png)

### 設定をテスト

「Amazon S3 の設定をテスト」ボタンをクリックして、接続を確認します。

![スクリーンショット 2023-12-01 17.21.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/b957cd8c-a4f8-7227-902b-5ff5bedc4166.png)

### その他の設定

接続が確認できたら、バックアップスケジュールや、バックアップに含めるファイルをお好みで設定して、画面下部の「変更を保存」ボタンをクリックして設定完了です。

これで、設定したバックアップスケジュールで、Amazon S3 にバックアップが自動保存されるようになります。