12
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Aurora ServerlessでWordPressのセットアップできた

Last updated at Posted at 2018-08-11

はじめに

Aurora ServerlessをWordPressのデータベースとして使用できるかな?

結果として

EC2と同じVPC,サブネットグループに設定できれば、Aurora Serverless 問題なく使えました。

ようやくリリースされたAurora Serverless

2017年のAws re:Inventで、2018年の早いうちにリリースされると言われてたAurora Serverlessが2018年8月にリリースされました。すごく待ってました。S3 SelectがもしかしてAurora Serverlessなのかな?と思ったもののS3 SelectはどちらかといえばDynamoDB風だったので、RDBとしてはちょっと心もとない。

AWS設定

VPCとSubnetとセキュリティグループ

あらかじめ設定をしておいたほうがよいです。Aurora Serverlessのクラスタ設定ウィザード中でも登録できるのですが若干ハマりポイントがあります。

Aurora Serverless

  1. Create database

    • エンジンのオプション:Amazon Aurora
    • エディション:MySQL 5.6 との互換性
      • Aurora Serverless capacity is only available with this edition.
        Serverlessはこっちを選んでねとのことなので、MySQL5.6を選択。
  2. DB 詳細の指定 > 設定

    • Capacity type: Serverless
      • 必要なリソースの最小量を最大量を指定すると、Aurora によってデータベースの負荷に基づきキャパシティーがスケールされます。
        具体的なキャパシティー(主に使用メモリ量)を次のステップで設定します。
    • DB クラスター識別子 …… DBクラスターの名前
    • マスターユーザの名前 …… rootユーザーとするID
    • マスターパスワード, パスワードの確認 …… そのパスワード
  3. [詳細設定] の設定 > キャパシティーの設定

    • 最小 Aurora キャパシティーユニット, 最大 Aurora キャパシティーユニット
      • キャパシティーユニット:2 …… 4GBのメモリを持つDBインスタンス・コンテナ。今回はWordPressがインストールできるか?が検証目標なので最小値の2を設定しています。(キャパシティーユニットによってコネクション数などが変わってくるのかな?)
    • スケーリングの追加設定
      • 初期設定:5分(最大24時間)
  4. ネットワーク & セキュリティ

    • Virtual Private Cloud (VPC)
    • サブネットグループ
    • VPC セキュリティグループ
      • 毎度おなじみのAWS内ネットワーク設定です。自動で作ることもできるのですが、その場合、1VPCで3サブネットグループ(各AZに1つずつ)と1つのVPCセキュリティグループが生成され、VPCセキュリティグループにはMySQL/Aurora(3306)の接続元IPが、ユーザー設定してるときのIPアドレスが自動的に設定されます。
  5. Database endpointをメモする
    6. [[DB クラスター識別子]].cluster-1q2w3e4r5t6y7u8i.ap-northeast-1.rds.amazonaws.com みたいな文字列があります。後で使います。

以上でAurora Serverlessの設定が完了です。

EC2インスタンス

  1. Aurora Serverlessで設定したネットワーク & セキュリティと同じVPC,サブネットグループにインスタンスを割り当て。

  2. phpとMySQLクライアントが使えるように設定

$ sudo yum install php72 php72-mysql 
$ sudo yum install mysql
  1. Apache/nginxのhttpdをインストール

  2. WordPressをダウンロード&展開

  3. httpdでWordPressを表示できるように設定

  4. MySQLクライアントからDBクラスターに接続、そしてデータベースの作成

$ mysql -u [[マスターユーザの名前]] -p -h [[DB クラスター識別子]].cluster-1q2w3e4r5t6y7u8i.ap-northeast-1.rds.amazonaws.com 

データベースを作ります。そしてDB用ユーザーIDも。
完了。

その他

Aurora Serverlessの作成ウィザード内でVPCを作成した場合、MySQL/Aurora(3306)の接続元IPが制限された状態で登録されています。同じVPC,サブネットでもつながらないときは、セキュリティグループの該当サブネットのIP範囲がインバウンドルールに含まれていることを確認したほうが良いです。

参考

設置したWordPressの設定

  1. いつもの設定。
    • DB名 …… 作成したデータベース
    • ユーザー名 …… DB用ユーザーID
    • パスワード …… DB用ユーザーのパスワード
    • 接続先 …… [[DB クラスター識別子]].cluster-1q2w3e4r5t6y7u8i.ap-northeast-1.rds.amazonaws.com
    • 接頭語 …… wp_

完了。

WordPress設定

一般公開するなら気にしたいこと

  • できる限りWordPressからデーターベースに接続させないようにする。
    • ディスクキャッシュ系プラグインを導入 & CDNの活用
    • 検索をしないでも使いやすいメニュー構成や各種サイト内リンク

料金

ログ

  • WordPressをインストール&日本語テーマのテストデータをインポート。
  • 東京リージョンで5分間を3回、動かした感じです。
Sat Aug 11 22:32:40 GMT+900 2018	The DB cluster is paused.
Sat Aug 11 22:31:32 GMT+900 2018	The DB cluster is being paused.
Sat Aug 11 22:17:33 GMT+900 2018	The DB cluster is resumed.
Sat Aug 11 22:17:29 GMT+900 2018	DB instance restarted
Sat Aug 11 22:17:10 GMT+900 2018	The DB cluster is being resumed.
Sat Aug 11 21:41:56 GMT+900 2018	The DB cluster is paused.
Sat Aug 11 21:40:48 GMT+900 2018	The DB cluster is being paused.
Sat Aug 11 21:35:12 GMT+900 2018	DB instance restarted

3時間のスケールで表示しています。
image.png

かかったコスト

料金に反映されたので掲載。お安い。
image.png

終わりに

チューニングされた高スペックなMySQLが従量課金で使えるのはスゴイです。日次に集めたデータを週末にまとめて集計する用途には使えそう。IoTでリアルタイムでは必要のないデータとかS3を格納して、バッチ処理してデータ登録・集計、DUMPを出力して参照用DBに登録するとか面白そうです。

12
13
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
12
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?