WordPressをAWS(EC2+RDS)で構築③ ~RDS構築編~

WordPressをAWS(EC2+RDS)で自力で地道に構築する手順を紹介します。今回はRDS編です。
構成や手順を決めた理由は導入編で紹介していますのでそちらもどうぞ。
また前段となるVPC、EC2構築はEC2構築編で紹介しています。

今回構築する環境の構成図は以下のとおりです。RDS構築編では図下段のプライベートサブネットと青色のRDSを構築していきます。

AWSではマルチAZという機能を利用することで、耐障害性が向上します。
図の通り、データベース(RDS)を二重化して、それぞれのRDSを異なるアベイラビリティゾーンに配置します。通常時はプライマリーデータベースを利用し、セカンダリーデータベースはスタンバイ状態で待機しつつプライマリーデータベースと同期を取ります。そして、障害発生時はマルチAZが自動的にセカンダリデータベースに切り替えるためダウンタイムが極小となります。

ただし、RDSを二重化するので純粋に2倍の料金が発生するところが難点です(Amazonはここで儲けている)。今回はWordpressでブログ環境を作成する程度なので、RDSは二重化せずにシングルAZとしますが将来マルチAZにいつでも拡張可能なように図の通りプライベートサブネットを2つ作成します。

プライベートサブネットを作成する

EC2構築編で作成したVPCではパブリックサブネットしか作成しませんでした。
Webサーバーはインターネットに開かれたネットワークに設置する必要があるためパブリックサブネットに作成しましたが、データベースはインターネットにさらされていないネットワークであるプライベートサブネットに構築します。プライベートサブネットの構築手順は以下のとおりです。

1つ目のサブネットを作成します。名前タグは任意の名称、VPCはEC2構築編で作成したVPCを選択します。アベイラビリティーゾーンを1つ選択します。

同様の手順で2つ目のサブネットを作成します。アベイラビリティーゾーンは1つ目とは違うものを選択します。

以上で2つのサブネットが作成されました。
次に2つのRDS(プライマリ、セカンダリ)をグループ化するサブネットグループを作成します。手順は以下のとおりです。

以上でサブネットグループが作成できました。いよいよRDSを構築していきます。

RDSを作成する

今回はLAMP環境を作成するのでMySQLでRDSを作成します。手順は以下のとおりです。

DBインスタンスのクラスは最小構成のdb.t2.microに変更して下さい。
マルチAZは「いいえ」を選択して下さい。ここで「はい」を選択すれば耐障害性に優れたマルチAZ環境が構築されますが、まずはシングルAZ環境で作成します。
DBインスタンス名等は任意の値を入力して下さい。

VPCやサブネットグループは作成したものを選択します。

「DBインスタンスの作成」をクリックするとRDSが作成されます。
ただし、このままだとEC2からアクセスできないためセキュリティ設定を変更します。

RDSインスタンスのセキュリティグループを確認。モザイクで消している”ルール”に記載のIPアドレスのみにアクセス許可が限定されており肝心のEC2からアクセスできないため変更します。
手順は以下の通りです。

以上でセキュリティー設定が完了し、EC2からRDSへのアクセスが可能となりました。

これでRDSの構築は完了です。

次回はPHP、Wordpressを構築し完成となります。