【AWS】S3にwordpressをバックアップする

7 min

AWSでEC2とRDSでwordpressをセットアップしてみたので記事にする!の第5回です。この記事ではEC2とRDSで構築したWordPressをS3にバックアップする方法を紹介していきます。

この記事はこんな人にオススメ

  • WordPressのバックアップを検討している方
  • AWSの無料枠を活用したい方
  • AWSを勉強中の方
  • 手軽に安全にバックアップを実現したい方

このサイト(ブログ)はConoHa WINGで運用しています。国内最速、超安定、稼働率99.99%以上、ということだけあってConoHa WINGにまったく不満もなくむしろ動作もキビキビ速いし、コンソールもまずまず使いやすく快適で満足しかないです。ConoHa WINGの詳細はこちらです。

本シリーズの記事はAWSのEC2とRDSを使ってwordpressをセットアップし、バックアップにはS3を活用します。自由度や柔軟性は圧倒的にAWSが高い反面、セキュリティの対策や日々のメンテナンスも必要になってきます。つまりネットーワークやセキュリティ、AWSの勉強にはもってこい!ってことです。

それとは逆に、コンテンツ制作やクリエイティブ面に注力したい場合は、ネットワークやセキュリティ、サーバ構築、メンテナンスなどがほぼ必要のないConoHa WINGがオススメです。

国内最速しかも安い:ConoHa WING

この記事でわかること

  • S3を使えるようにする初期設定
  • S3にWordPressのバックアップ方法
  • BackWPupプラグインの使い方

全体像

  1. STEP

    【AWS】コンソール操作でEC2とRDSを準備する

  2. STEP

    【AWS】EC2にSSHで安全にアクセスする

  3. STEP

    【AWS】Apacheで最低限やっておくべきSSL/TLSの設定

  4. STEP

    【AWS】EC2とRDSでwordpressをセットアップする

  5. STEP

    【AWS】S3にwordpressをバックアップする

Amazonの読み放題・聴き放題

kindle unlimited 読み放題
200万冊以上が読み放題

Audible
12万以上の対象作品が聴き放題

前回までのおさらい

AWSのアカウントを登録しでEC2インスタンス作成しました。EC2へSSH接続し、ApacheをインストールしSSLの設定を行いました。そしてRDSでWordPress用のデータベースを作成しWordPressを無事に使えるようにしました。

今回は、BackWPupプラグインを使って、S3にWordPressをバックアップする方法を紹介します。

構成は下のようになります。

今回のEC2とRDSの構成(シンプルです)
今回のEC2とRDSの構成(シンプルです)

ネットワーク、セキュリティや各種チューニング、AWSの各サービスの詳細は奥が深すぎるので今回は触れませんが、AWSではじめるインフラ構築入門 安全で堅牢な本番環境のつくり方」はオススメの書籍です。

そもそもAWSのS3とは?

AWSのS3とはAmazon Simple Storage Serviceの略で、Sが3つなのでS3と呼ばれます。(AWSはAmazon Web Serviceの略です)このS3を簡単に説明すると、名前としてもシンプルストレージということだけあって手軽に簡単にストレージとして利用できるサービスです。正確にはオブジェクトストレージサービスといい、一般的なファイルストレージとは異なりデータをオブジェクトとして扱います。オブジェクトにはデータそのものに加えてメタデータやアクセス権などが付加されます。またデータのサイズや数の制限がないのでビックデータの保存などにも利用されます。

S3の最もシンプルな使い方はバックアップやアーカイブの保存先としての役割です。この記事ではWordPressのデータをバックアップする目的でS3を使っていきます。

S3の無料枠について

とりあえず使ってみて試してみたい方がほとんどだと思います。無料で使える枠を知っておきましょう。

AWS公式ページの無料枠詳細ページ
AWS公式ページの無料枠詳細ページ

AWSには無料利用枠がありますが、敢えてなのか?!わかりにくくなっています。まずこの無料利用枠の種類は下記の3つの種類があります

種類説明開始条件
無料トライアル短期の無料トライアルは、
特定のサービスをアクティベートした日から開始される。
対象サービスの
初回利用時
12 か月間無料AWS に最初にサインアップした日から 12 か月間、
無料でサービスを利用できる。
AWSアカウント
作成後
常に無料これらの無料利用枠に有効期限はなく利用可能。対象サービスを
利用
表:AWS無料利用枠の種類

12ヶ月間無料というのは、AWSアカウントを新規に作成してから、12ヶ月の間の有効な無料利用枠です。ただしリソース制限がありこの無料利用枠の制限を超えた場合は通常の料金が発生します。

今回のS3はこの12ヶ月間無料に該当します。無料利用枠の制限を超える場合は通用の料金が課金されますので注意が必要です。

S3の無料枠は、AWS に最初にサインアップした日から 12 か月間、S3 Standardストレージクラスで 5GBのAmazon S3ストレージ、20,000GETリクエスト2,000PUT、COPY、POST、あるいはLISTリクエスト、データ送信100GBを無料で利用できる、ということです。

WordPressで1GB程度のバックアップを毎週1回、4世代程度保存する、ということであればAWS に最初にサインアップした日から 12 か月間は無料で使えますので十分ですね。

Amazonの読み放題・聴き放題

kindle unlimited 読み放題
200万冊以上が読み放題

Audible
12万以上の対象作品が聴き放題

大まかな流れ

S3にWordPressをバックアップする大まかな流れは下のようになります。

  1. AWSアカウントでログインする
  2. バケットを作成する
  3. バックアップ用のIAMユーザの作成
  4. BackWPupプラグインを使ってWPをバックアップする

本記事ではAWSアカウントは作成済であることを前提として、2のバケットを作成するから紹介していきます。

バケットとは?

S3のオブジェクトストレージを使うためにはバケットを作成する必要がありますバケットとはオブジェクトを格納する上で必要な入れ物というイメージで良いと思います。

バケットとは、Amazon S3 に保存されるオブジェクトのコンテナです。バケットにはオブジェクトをいくつでも保存でき、アカウントにはバケットを 100 個まで保存できます。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/UsingBucket.html

詳しいバケットについては下の公式ドキュメントを確認ください。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/UsingBucket.html

S3のバケットを作成する

それでは早速やっていきましょう。AWSにログインしS3マネジメントコンソールにアクセスします。

AWSにログインしS3マネジメントコンソールにアクセス
AWSにログインしS3マネジメントコンソールにアクセス

S3のマネジメントコンソールで「バケットを作成」をクリックします。

バケット作成をクリック
バケット作成をクリック

バケット名を入力します。作成した後はバケット名とAWSリージョンは変更できません。
パケット名はグローバルで一意である必要があります。

バケット名の入力
バケット名の入力

【重要】パブリックアクセスはすべてブロックにチェックが入っていることを確認します。

パブリックアクセスをすべてブロック
パブリックアクセスをすべてブロック

最下部の「バケットを作成」をクリックしてバケットを作成します。

バケットを作成をクリック
バケットを作成をクリック

バケットが正常に作成されると下のように、「正常に作成された」ことが表示されます

バケットの作成完了
バケットの作成完了

これでバケットの作成は完了です。簡単ですね。次にバックアップ用のユーザーを作成していきます。

バックアップ用のIAMユーザの作成する

S3のバケットを作成した後は、WordPressからS3バケットへバックアップをするためにIAMユーザーを追加します。

IAMとは?

IAMとはIdentity and Access Managementの略で、AWSの各リソースへのアクセスを安全に管理するための仕組みです。誰に何をOKとするか(許可するか)を制御することができます。

例えば、ユーザーAはEC2とRDS、S3の全ての権限でアクセスできて、ユーザーBは限定されたEC2インスタンスのみにアクセスできて、S3のバケットには読み取り専用でアクセスできる、といったような制御がIAMで可能です。

IAMについて詳しくは下の公式ドキュメントを確認ください。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html

IAMユーザーを作成する

ではIAMユーザーを作成します。上部の検索窓でIAMで検索しIAMマネジメントコンソールにアクセスします。

AWSにログインしIAMマネジメントコンソールにアクセス
AWSにログインしIAMマネジメントコンソールにアクセス

IAMマネジメントコンソールでユーザーをクリックします。

アクセス管理のユーザーをクリック
アクセス管理のユーザーをクリック

ユーザーの画面でユーザーの追加をクリックします。

ユーザーを追加をクリック
ユーザーを追加をクリック

ユーザー名を入力して次へをクリックします。

ユーザー名を入力
ユーザー名を入力

「ユーザーをグループに追加」が選択されていることを確認し、「S3FullAccess_user」グループにチェックを入れて次へをクリックします。

許可オプションの選択画面
許可オプションの選択画面

確認画面が表示されます。ユーザー名と許可の概要を確認して次へをクリックします。

確認画面

画面が切り替わり、ユーザーが作成されてたことを確認します。

ユーザー画面

これでバックアップユーザーの作成は完了です。次にWordPressからS3にアクセスするためのアクセスキーを発行します。

アクセスキーの発行

アクセスキーとはIAM ユーザーまたはAWSアカウントルートユーザーの長期的な認証情報です。WordPressからS3にアクセスするために今回はアクセスキーを使います。

アクセスキーについて詳しくは下の公式ドキュメントを確認ください。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_access-keys.html

アクセスキーの注意事項

アクセスキーは外部に設置したプログラムからAWSリソースにアクセスできるので便利ですが、IDとパスワードのようにアクセスキーを持っている人は誰でも許可したAWSリソースにアクセスできてしまいます。今回の場合はS3にフルアクセスできることになってしまいます。アクセスキーは適切に管理する必要があります。

【重要】アクセスキーの管理について

今回はS3にバックアップする検証を目的としますのでアクセスキーを使いますが、今後もアクセスキーを使う場合は以下に注意して管理をしてください。

  • アクセスキーをコードに直接埋め込まない(github等にアップしないようにするため)
  • 異なるアプリケーションには異なるアクセスキーを使う
  • 定期的にアクセスキーを変更する
  • 使わなくなったアクセスキーは削除する
  • なるべくアクセスキーを用いない方法を検討する

アクセスキーを作成する

それではアクセスキーを作成してみます。先程作成したユーザーをクリックします。

先程作成したユーザーをクリック
先程作成したユーザーをクリック

ユーザーの画面で「セキュリティ認証情報」のタブをクリックし、アクセスキーを作成をクリックします。

アクセスキーを作成をクリック
アクセスキーを作成をクリック

AWSの外部で実行されるアプリケーションをクリックします。

AWS以外のVPSで構築済のWordPressのバックアップでも使うため、「AWSの外部で実行されるアプリケーションを選択しています。

AWSの外部で実行されるアプリケーションをクリック
AWSの外部で実行されるアプリケーションをクリック

作成するアクセスキーにわかりやすい説明を入力し、アクセスキーを作成をクリックします。

説明タグの入力
説明タグの入力

アクセスキーが作成されました。表示をクリックしシークレットアクセスキーを安全にコピペしておくか、csvファイルをダウンロードし安全に管理します。

アクセスキーの取得
アクセスキーの取得
【重要】アクセスキーの管理について

今回はS3にバックアップする検証を目的としますのでアクセスキーを使いますが、今後もアクセスキーを使う場合は以下に注意して管理をしてください。

  • アクセスキーをコードに直接埋め込まない(git等にアップしないようにするため)
  • 異なるアプリケーションには異なるアクセスキーを使う
  • 定期的にアクセスキーを変更する
  • 使わなくなったアクセスキーは削除する
  • なるべくアクセスキーを用いない方法を検討する

これでアクセスキーの作成は完了です。次にWordPressのBackWPupプラグインを設定し、実際にS3にバックアップしてみます。

BackWPupプラグインを使ってバックアップする

今回はBackWPupというプラグインを使います。BackWPupは保存先にS3やAzure、Dropbox、SugarSync、FTPサーバなどを指定することができます。またバックアップスケージュルも柔軟に設定することができ、バックアップ対象ファイルについては、/wp-content/を含む全てのファイル、データベース、インストール済プラグインなどをバックアップすることができます。有料版もありますが無料版で十分な機能を使うことができます。

BackWPupのインストール

WordPressのプラグインからBackWPupをインストールし有効化します。

BackWPupのインストールと有効化
BackWPupのインストールと有効化

BackWPupのバックアップ設定

BackWPupをインストール、有効化したら管理画面の左メニュー下部のBackWPupメニューから 新規ジョブを追加をクリックしバックアップジョブを作成します。

新規ジョブを追加をクリックしバックアップジョブを作成
新規ジョブを追加をクリックしバックアップジョブを作成

それでは各タブごとに設定方法を紹介していきます。

一般タブ

項目説明
このジョブの名前S3_wp_backup_test名前はなんでもOKです
このジョブは…データベースのバックアップ
ファイルのバックアップ
インストール済みプラグイン一覧
バックアップしたいものを選択します
アーカイブ名%Y-%m-%d_%H-%i-%s_%hash%デフォルトでOKです
アーカイブ形式Zipご利用のOSで解凍できればOKです
バックアップの保存方法S3サービスにバックアップ今回はS3にバックアップします
ログの送信先メールアドレスデフォルト空にするとログを送信しません
メールの送信元デフォルト
エラーを入れますバックアップ実行中にエラーが発生した場合にログをメールで送信します

スケジュールタブ

項目説明
ジョブの開始方法WordPressのcron自動でバックアップを実行するのでcronを選択
スケジューラーの種類基本基本で十分です
スケジューラー例:毎週月曜日、5時アクセスが少ない時間帯に設定しましょう

DBバックアップ、ファイル、プラグインはデフォルトの設定で適切に設定されているのでそのままで良いと思います。必要により設定してみてください。

宛先:S3サービスタブ

項目説明
S3サービスの選択東京を選択S3のバケット一覧でAWSリージョンを確認できます
エンドポイント空のままデフォルトの空のままでOK
リージョンap-northeast-1自動で入力されています
マルチパートするデフォルトでされています
パス形式のバケットに限定✓しないデフォルトのままでOK
VersionlatestデフォルトのままでOK
著名v4なんでもOKです
アクセスキーS3で作成したアクセスキーを入力
シークレットキーS3で作成したシークレットキーを入力
バケットの選択S3で作成したバケットを選択します
新しいバケットを作成空のまま今回はバケットは作成済なのでそれを使います
バケット内のフォルダーバケットの中に作られるフォルダ名
ファイルの削除4無料枠の5GBまでとしたいので4世代のバックアップを残す設定にしました
Amazon:ストレージクラス標準デフォルトのままでOK
サーバ側の暗号化空のまま今回は暗号化せずにやってみます

最後に、最下部の「変更を保存」をクリックして保存します。忘れずに保存しましょう。

バックアップの実行

スケジューラーで設定した日時にバックアップが自動実行されますが、正常に実行されるかテストします。

[BackWPup]→[ジョブ]→[今すぐ実行]で実行することができます。

MFA(多要素認証)を有効にする

AWSで必ずやっておきたい多要素認証の設定方法を紹介します。

AWSではセキュリティ強化のために必ずMFA(多要素認証)を設定しましょう。AWSアカウントのルートユーザーとIAMユーザーでMFAを設定することができます。設定も簡単です。

ざっくりMFAとは?

MFAとは、一般的なログイン認証情報であるユーザー名とパスワードに加えて、もう1つ(1つ以上)の認証要素を加え、ユーザに対してこの2つ以上の認証要素を要求し認証する方法です。

今回は追加の認証要素としてワンタイムパスワード(OTP)を追加します。ワンタイムパスワードは6桁の数字となり、受信方法はSMSやメールといったケースも多いですが、私は1Password8で保存してワンタイムパスワードを管理しています。

2FAとの違いは?

ちなみに、2FAという単語もよく見かけますが2FAとは「2要素認証」です。2FAは2つの要素で認証する方法ですが、MFAは2つ以上の要素を設定し認証する方式です。

それではAWSのMFAを有効にしましょう。

AWSでワンタイムパスワードを追加する手順

以下のAWS公式ドキュメントを参考にMFAを有効にします。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_checking-status.html

  1. STEP

    IAM コンソールにアクセス

    AWS Management Console にサインインし、IAM コンソールにアクセスします。

    IAMコンソール:https://console.aws.amazon.com/iam/

  2. STEP

    セキュリティ認証情報をクリック

    右上のナビゲーションバーでユーザー名を選択し、セキュリティ認証情報をクリックします。

  3. STEP

    MFAが有効か無効かを確認

    MFAが有効でない場合は下の画像のようにアラートが出ています。

  4. STEP

    MFAを割り当てる

    では実際にMFAを割り当て設定します。

  5. STEP

    MFAデバイスを選択

    今回は1Password8でワンタイムパスワードを管理するので「Authenticator app」を選択します。デバイス名にはわかりやすい名前をつけます。(なんでも構いません)

  6. STEP

    デバイスの設定

    QRコードを表示して、1Password8でスキャンします。

    1Password8では、ワンタイムパスワードの項目を追加して下の画像のようにスキャンします。

  7. STEP

    MFAコードを2つ入力しMFAを追加する

    1Password8の追加したワンタイムパスワードの項目に表示された6桁のコードを入力し、最大30秒後に新しいコードが生成されるのでそれを入力します。

    これでMFAを追加することができました。

最後に

最後まで読んでいただきありがとうございます。今回の【AWS】S3にwordpressをバックアップするはいかがでしたでしょうか。万が一データが消えてしまってもS3にバックアップしておけば安心ですね。

MacやLinux、Pythonなど技術系のkindle本も豊富にあります。詳しくはこちらから。

初めてkindle unlimited 読み放題をご利用の方は30日間の無料で体験できます。
期間終了後は月額980円で、いつでもキャンセルできます。
200万冊以上が読み放題。お好きな端末で利用可能です。

定番おすすめ記事

EC2とRDSでwordpressをセットアップするシリーズです。

カテゴリー:
関連記事