はじめに
Alibaba CloudにはServerlessなサービスは多数あります。そこで、Serverless App EngineとPolarDB for MySQL serverlessを使用し、サーバーの管理やスケーリングの手間を削減しながら、高いパフォーマンスとコスト効率を実現するWordPressサイトの構築方法を確認していきたいと思います。
構成
WordPressの基本構成はPHPが動作する環境とMySQLが動作する環境が必要となります。Alibaba Cloudで実現するには様々な方法はありますが、Serverlessの名前を冠するサービスを利用する場合のひとつとしてServerless App EngineとPolarDB for MySQL serverlessになります。ApsaraDB もMySQL serverlessがリリースされていますが、日本リージョンでは提供されていないためPolarDBの一択になりました。どちらにせよ価格的にはPolarDBの方が安くなると思います。
準備
WordPressの準備
Serverless App Engine(SAE)にWordPressを実装するためには準備が必要となります。
準備のために下記のドキュメントを参考にします。
WordPress5 のサンプルZIPが提供されています。これをダウンロードしてきます。
しかし、5ではバージョンが古いため最新のバージョンに差し替えます。
差し替えは簡単です。ダウンロードしたZIPを解凍しphp内を最新のWordPressに差し替えます。
WordPressは以下より最新のバージョンをダウンロードします。解凍して上記のphp内と差し替えます。
事前の準備はここまでです。
再圧縮作業はPolarDB作成後に行います。
PolarDB for MySQL serverless
作成
PolarDBを開き、「クラスタ-の作成」をクリックします。。
作成時のパラメーターは以下を設定しています。これ以外はデフォルト値です。
パラメーター | 設定値 |
---|---|
プロダクトタイプ | Serverless |
データベースエンジン | MySQL8.0.1 |
マイナーバージョン番号 | 8.0.1(MySQL8.0.13と完全互換) |
リージョンとゾーン | アジア太平洋 日本(東京)ゾーンはSAEを作成する予定を同じものを選択 |
VPC | SAEを作成する予定のVPCを同じものを選択 |
vSwitch | SAEを作成する予定のVPCに存在するものを選択 |
作成自体はいたって簡単です。
設定
WordPressで利用するための設定を行います。
最初にホワイトリストにSAEのIPアドレスを指定します。
SAEのIPアドレスは設置予定のVSwitchのIPv4 CIDR ブロックを確認します。
上記では「172.23.240.0/20」「172.22.176.0/20」を設定します。
確認したVSwitchのCIDR ブロックを入力し設定します。
以下のパラメーターで作成します。
パラメーター | 設定値 |
---|---|
データベース名 | wp |
サポートされている文字セット | utf8 |
接続用のアカウントの作成を行います。
以下のパラメーターで作成します。
パラメーター | 設定値 |
---|---|
アカウント名 | wpadmin |
アカウントタイプ | 標準アカウント |
データベース | データベースは上記で作成したDBを指定します。権限は読み書きを指定 |
パスワード | 必須 |
パスワード確認 | 必須 |
接続先の確認
概要画面から内部のURLをコピーします。
パブリックアクセスは利用しないため安全な接続が行えます。
クラスターのスケーリングにも対応するようにクラスターエンドポイントのURLをコピーします。
WordPressを設定
wp-config-sample.phpをwp-config.phpに変更します。
変更後に編集します。
パラメーター | 設定値 |
---|---|
DB_NAME | wp |
DB_USER | wpadmin 上記で作成したユーザー |
DB_PASSWORD | 上記で作成したユーザーのパスワード |
DB_HOST | 上記でコピーしたURL ポート番号を削除します |
DB_CHARSET | utf8 |
これでWordPressの設定は完了です。
nginxとphpをひとつのZIPとして圧縮しておきます。
以上でWordPressのデプロイの準備は完了です。
WordPressのデプロイ
ECS管理コンソールから、HTTP(80ポート)が開けてあるセキュリティグループを作成します。
SAE管理コンソールに移動します。
左のナビゲーションペインからApplicationを選択し、Create Applicationをクリックします。
Basic Infomationステップでパラメーターを設定します。
パラメーター | 説明 |
---|---|
Application Name: | wordpress |
VPC | Custom Configuration |
Namespace | Defaultもしくは作成したものを選択し関連付けられたVPCを選択します PolarDBと同じ |
vSwitch | Select VSwitchから1つ以上選択します |
Security Group | 事前に作成したセキュリティグループを指定します |
Application Instances | 2 |
VCPU | 1Core |
Memory | 2GiB |
右下のApplication Deployment Configurations をクリックします。
Deployment Configurationsでは以下の項目を入力します
ここで重要なこととしてPHP-8.1を選択します。pho-7.3は動作しません。
パラメーター | 説明 |
---|---|
Technology Stack Programming Language | PHP |
Technology Stack Version | PHP-8.1 |
Application Deployment Method | Deployment with ZIP Packages |
PHP Enviroment | PHP-FPM 8.1 |
File Upload Method | Upload ZIP Package |
Upload WAR Package | 上記で圧縮したファイル、wordpress.zipをアップロードします |
Version | タイムスタンプをバージョンに利用します |
Time Zone Settings | UTF+8 |
Confirmをクリックします。作成されるのをまちます。
以下のようにパラメーターを設定します。
パラメーター | 説明 |
---|---|
SLB Instance | Create |
Network Protocol | HTTPを指定し、SLB Port:80 Container Port:80 |
WordPressのインストール
スケーリング
当然、Serverless App EngineとPolarDB for MySQL serverlessはスケーリングできます。
例えば、SAEは手動でスケーリングやオートスケーリングも可能です。
PolarDBもスケールできます。
読み取り専用ノードを3つに増やしたり自在です。
1つの時
3つの時
価格
価格については参考程度。実際の環境に合わせてい確認が必要です。
PolarDB for MySQL serverlessもこの値段なので安価な方だと思います。
以上で構築は完了です。
まとめ
ServerlessなサービスだけでWordPressを構築する方法を紹介しました。Serverless App EngineとPolarDB for MySQL serverlessを利用することでスケーリングが簡単にできることや価格の面やメンテナンス性なども含めありなWordPress構成なのでないでしょうか