はじめに
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
-
Create database
- エンジンのオプション:Amazon Aurora
- エディション:MySQL 5.6 との互換性
-
Aurora Serverless capacity is only available with this edition.
Serverlessはこっちを選んでねとのことなので、MySQL5.6を選択。
-
-
DB 詳細の指定 > 設定
- Capacity type: Serverless
-
必要なリソースの最小量を最大量を指定すると、Aurora によってデータベースの負荷に基づきキャパシティーがスケールされます。
具体的なキャパシティー(主に使用メモリ量)を次のステップで設定します。
-
- DB クラスター識別子 …… DBクラスターの名前
- マスターユーザの名前 …… rootユーザーとするID
- マスターパスワード, パスワードの確認 …… そのパスワード
- Capacity type: Serverless
-
[詳細設定] の設定 > キャパシティーの設定
- 最小 Aurora キャパシティーユニット, 最大 Aurora キャパシティーユニット
- キャパシティーユニット:
2
…… 4GBのメモリを持つDBインスタンス・コンテナ。今回はWordPressがインストールできるか?が検証目標なので最小値の2
を設定しています。(キャパシティーユニットによってコネクション数などが変わってくるのかな?)
- キャパシティーユニット:
- スケーリングの追加設定
- 初期設定:5分(最大24時間)
- 最小 Aurora キャパシティーユニット, 最大 Aurora キャパシティーユニット
-
ネットワーク & セキュリティ
- Virtual Private Cloud (VPC)
- サブネットグループ
- VPC セキュリティグループ
- 毎度おなじみのAWS内ネットワーク設定です。自動で作ることもできるのですが、その場合、1VPCで3サブネットグループ(各AZに1つずつ)と1つのVPCセキュリティグループが生成され、VPCセキュリティグループには
MySQL/Aurora(3306)
の接続元IPが、ユーザー設定してるときのIPアドレスが自動的に設定されます。
- 毎度おなじみのAWS内ネットワーク設定です。自動で作ることもできるのですが、その場合、1VPCで3サブネットグループ(各AZに1つずつ)と1つのVPCセキュリティグループが生成され、VPCセキュリティグループには
-
Database endpointをメモする
6.[[DB クラスター識別子]].cluster-1q2w3e4r5t6y7u8i.ap-northeast-1.rds.amazonaws.com
みたいな文字列があります。後で使います。
以上でAurora Serverlessの設定が完了です。
EC2インスタンス
-
Aurora Serverlessで設定した
ネットワーク & セキュリティ
と同じVPC,サブネットグループにインスタンスを割り当て。 -
phpとMySQLクライアントが使えるように設定
$ sudo yum install php72 php72-mysql
$ sudo yum install mysql
-
Apache/nginxのhttpdをインストール
-
WordPressをダウンロード&展開
-
httpdでWordPressを表示できるように設定
-
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の設定
- いつもの設定。
- 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
かかったコスト
終わりに
チューニングされた高スペックなMySQLが従量課金で使えるのはスゴイです。日次に集めたデータを週末にまとめて集計する用途には使えそう。IoTでリアルタイムでは必要のないデータとかS3を格納して、バッチ処理してデータ登録・集計、DUMPを出力して参照用DBに登録するとか面白そうです。