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がオススメです。
この記事でわかること
- S3を使えるようにする初期設定
- S3にWordPressのバックアップ方法
- BackWPupプラグインの使い方
目次
全体像
- STEP
【AWS】コンソール操作でEC2とRDSを準備する
- STEP
【AWS】EC2にSSHで安全にアクセスする
- STEP
【AWS】Apacheで最低限やっておくべきSSL/TLSの設定
- STEP
【AWS】EC2とRDSでwordpressをセットアップする
- STEP
【AWS】S3にwordpressをバックアップする
前回までのおさらい
AWSのアカウントを登録しでEC2インスタンス作成しました。EC2へSSH接続し、ApacheをインストールしSSLの設定を行いました。そしてRDSでWordPress用のデータベースを作成しWordPressを無事に使えるようにしました。
今回は、BackWPupプラグインを使って、S3にWordPressをバックアップする方法を紹介します。
構成は下のようになります。
ネットワーク、セキュリティや各種チューニング、AWSの各サービスの詳細は奥が深すぎるので今回は触れませんが、「AWSではじめるインフラ構築入門 安全で堅牢な本番環境のつくり方」はオススメの書籍です。
そもそもAWSのS3とは?
AWSのS3とはAmazon Simple Storage Serviceの略で、Sが3つなのでS3と呼ばれます。(AWSはAmazon Web Serviceの略です)このS3を簡単に説明すると、名前としてもシンプルストレージということだけあって手軽に簡単にストレージとして利用できるサービスです。正確にはオブジェクトストレージサービスといい、一般的なファイルストレージとは異なりデータをオブジェクトとして扱います。オブジェクトにはデータそのものに加えてメタデータやアクセス権などが付加されます。またデータのサイズや数の制限がないのでビックデータの保存などにも利用されます。
S3の最もシンプルな使い方はバックアップやアーカイブの保存先としての役割です。この記事ではWordPressのデータをバックアップする目的でS3を使っていきます。
S3の無料枠について
とりあえず使ってみて試してみたい方がほとんどだと思います。無料で使える枠を知っておきましょう。
AWSには無料利用枠がありますが、敢えてなのか?!わかりにくくなっています。まずこの無料利用枠の種類は下記の3つの種類があります。
種類 | 説明 | 開始条件 |
---|---|---|
無料トライアル | 短期の無料トライアルは、 特定のサービスをアクティベートした日から開始される。 | 対象サービスの 初回利用時 |
12 か月間無料 | AWS に最初にサインアップした日から 12 か月間、 無料でサービスを利用できる。 | 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 か月間は無料で使えますので十分ですね。
大まかな流れ
S3にWordPressをバックアップする大まかな流れは下のようになります。
- AWSアカウントでログインする
- バケットを作成する
- バックアップ用のIAMユーザの作成
- 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マネジメントコンソールにアクセスします。
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マネジメントコンソールにアクセスします。
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の外部で実行されるアプリケーションをクリックします。
作成するアクセスキーにわかりやすい説明を入力し、アクセスキーを作成をクリックします。
アクセスキーが作成されました。表示をクリックしシークレットアクセスキーを安全にコピペしておくか、csvファイルをダウンロードし安全に管理します。
今回はS3にバックアップする検証を目的としますのでアクセスキーを使いますが、今後もアクセスキーを使う場合は以下に注意して管理をしてください。
- アクセスキーをコードに直接埋め込まない(git等にアップしないようにするため)
- 異なるアプリケーションには異なるアクセスキーを使う
- 定期的にアクセスキーを変更する
- 使わなくなったアクセスキーは削除する
- なるべくアクセスキーを用いない方法を検討する
これでアクセスキーの作成は完了です。次にWordPressのBackWPupプラグインを設定し、実際にS3にバックアップしてみます。
BackWPupプラグインを使ってバックアップする
今回はBackWPupというプラグインを使います。BackWPupは保存先にS3やAzure、Dropbox、SugarSync、FTPサーバなどを指定することができます。またバックアップスケージュルも柔軟に設定することができ、バックアップ対象ファイルについては、/wp-content/を含む全てのファイル、データベース、インストール済プラグインなどをバックアップすることができます。有料版もありますが無料版で十分な機能を使うことができます。
BackWPupのインストール
WordPressのプラグインから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 |
Version | latest | デフォルトのままでOK |
著名 | v4 | なんでもOKです |
アクセスキー | S3で作成したアクセスキーを入力 | |
シークレットキー | S3で作成したシークレットキーを入力 | |
バケットの選択 | S3で作成したバケットを選択します | |
新しいバケットを作成 | 空のまま | 今回はバケットは作成済なのでそれを使います |
バケット内のフォルダー | バケットの中に作られるフォルダ名 | |
ファイルの削除 | 4 | 無料枠の5GBまでとしたいので4世代のバックアップを残す設定にしました |
Amazon:ストレージクラス | 標準 | デフォルトのままでOK |
サーバ側の暗号化 | 空のまま | 今回は暗号化せずにやってみます |
バックアップの実行
スケジューラーで設定した日時にバックアップが自動実行されますが、正常に実行されるかテストします。
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
- STEP
IAM コンソールにアクセス
AWS Management Console にサインインし、IAM コンソールにアクセスします。
IAMコンソール:https://console.aws.amazon.com/iam/
- STEP
セキュリティ認証情報をクリック
右上のナビゲーションバーでユーザー名を選択し、セキュリティ認証情報をクリックします。
- STEP
MFAが有効か無効かを確認
MFAが有効でない場合は下の画像のようにアラートが出ています。
- STEP
MFAを割り当てる
では実際にMFAを割り当て設定します。
- STEP
MFAデバイスを選択
今回は1Password8でワンタイムパスワードを管理するので「Authenticator app」を選択します。デバイス名にはわかりやすい名前をつけます。(なんでも構いません)
- STEP
デバイスの設定
- STEP
MFAコードを2つ入力しMFAを追加する
最後に
最後まで読んでいただきありがとうございます。今回の【AWS】S3にwordpressをバックアップするはいかがでしたでしょうか。万が一データが消えてしまってもS3にバックアップしておけば安心ですね。
MacやLinux、Pythonなど技術系のkindle本も豊富にあります。詳しくはこちらから。
Amazonの電子書籍読み放題サービス「Kindle Unlimited」でプライム会員を対象に、最初の3か月間を無料体験できるキャンペーンを実施中。マンガ、小説、ビジネス書、雑誌など500万冊から、好きな本を何冊でも読めるキャンペーンです。
初めてkindle unlimited 読み放題をご利用の方は30日間の無料で体験できます。
期間終了後は月額980円で、いつでもキャンセルできます。
200万冊以上が読み放題。お好きな端末で利用可能です。