LoginSignup
0
2

Alibaba CloudでServerlessなサービスだけでWordPressを構築する

Last updated at Posted at 2023-12-07

はじめに

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の方が安くなると思います。

image.png

準備

WordPressの準備

Serverless App Engine(SAE)にWordPressを実装するためには準備が必要となります。
準備のために下記のドキュメントを参考にします。

WordPress5 のサンプルZIPが提供されています。これをダウンロードしてきます。
しかし、5ではバージョンが古いため最新のバージョンに差し替えます。

差し替えは簡単です。ダウンロードしたZIPを解凍しphp内を最新のWordPressに差し替えます。
image.png

WordPressは以下より最新のバージョンをダウンロードします。解凍して上記のphp内と差し替えます。

一旦、php内を削除してすべての差し替えます。
image.png

事前の準備はここまでです。

再圧縮作業はPolarDB作成後に行います。

PolarDB for MySQL serverless

作成

PolarDBを開き、「クラスタ-の作成」をクリックします。。
image.png

作成時のパラメーターは以下を設定しています。これ以外はデフォルト値です。

パラメーター 設定値
プロダクトタイプ Serverless
データベースエンジン MySQL8.0.1
マイナーバージョン番号 8.0.1(MySQL8.0.13と完全互換)
リージョンとゾーン アジア太平洋 日本(東京)ゾーンはSAEを作成する予定を同じものを選択
VPC SAEを作成する予定のVPCを同じものを選択
vSwitch SAEを作成する予定のVPCに存在するものを選択

設定画面
image.png

image.png

作成自体はいたって簡単です。

設定

WordPressで利用するための設定を行います。

作成完了後にクラスターを開きます。
image.png

最初にホワイトリストにSAEのIPアドレスを指定します。
SAEのIPアドレスは設置予定のVSwitchのIPv4 CIDR ブロックを確認します。
image.png

上記では「172.23.240.0/20」「172.22.176.0/20」を設定します。

「IP アドレスホワイトリストの設定」をクリックします。
image.png

「IP ホワイトリストの追加」をクリックします。
image.png

確認したVSwitchのCIDR ブロックを入力し設定します。
image.png

追加されたIPアドレス
image.png

データベースの作成を行います。
image.png

以下のパラメーターで作成します。

パラメーター 設定値
データベース名 wp
サポートされている文字セット utf8

作成画面
image.png

接続用のアカウントの作成を行います。

アカウントの管理より「アカウントの作成」をクリックします。
image.png

以下のパラメーターで作成します。

パラメーター 設定値
アカウント名 wpadmin
アカウントタイプ 標準アカウント
データベース データベースは上記で作成したDBを指定します。権限は読み書きを指定
パスワード 必須
パスワード確認 必須

作成画面
image.png

接続先の確認
概要画面から内部のURLをコピーします。
パブリックアクセスは利用しないため安全な接続が行えます。

クラスターのスケーリングにも対応するようにクラスターエンドポイントのURLをコピーします。
image.png

image.png

WordPressを設定

wp-config-sample.phpをwp-config.phpに変更します。
変更後に編集します。

パラメーター 設定値
DB_NAME wp
DB_USER wpadmin 上記で作成したユーザー
DB_PASSWORD 上記で作成したユーザーのパスワード
DB_HOST 上記でコピーしたURL ポート番号を削除します
DB_CHARSET utf8

image.png

これでWordPressの設定は完了です。
nginxとphpをひとつのZIPとして圧縮しておきます。
image.png

以上でWordPressのデプロイの準備は完了です。

WordPressのデプロイ

ECS管理コンソールから、HTTP(80ポート)が開けてあるセキュリティグループを作成します。
image.png

SAE管理コンソールに移動します。
左のナビゲーションペインからApplicationを選択し、Create Applicationをクリックします。

image.png

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

設定画面
image.png

右下の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

設定画面
image.png
image.png

Confirmをクリックします。作成されるのをまちます。

image.png

経過画面を確認しながら作成を待ちます。
image.png

SLBを利用してエンドポイントを構成します。
image.png

以下のようにパラメーターを設定します。

パラメーター 説明
SLB Instance Create
Network Protocol HTTPを指定し、SLB Port:80 Container Port:80

設定画面
image.png

作成が完了するとIPが表示されるためアクセスします。
image.png

WordPressのインストール

あとはWordPressのインストールのため割愛します。
image.png

管理画面
image.png

問題なく投稿もできます。
image.png

スケーリング

当然、Serverless App EngineとPolarDB for MySQL serverlessはスケーリングできます。

例えば、SAEは手動でスケーリングやオートスケーリングも可能です。

手動
image.png

オートスケール
image.png

PolarDBもスケールできます。
読み取り専用ノードを3つに増やしたり自在です。
1つの時
image.png
3つの時
image.png

価格

価格については参考程度。実際の環境に合わせてい確認が必要です。

SAEは$0.0021166/minです。非常に安価です。
image.png

PolarDB for MySQL serverlessもこの値段なので安価な方だと思います。
image.png

以上で構築は完了です。

まとめ

ServerlessなサービスだけでWordPressを構築する方法を紹介しました。Serverless App EngineとPolarDB for MySQL serverlessを利用することでスケーリングが簡単にできることや価格の面やメンテナンス性なども含めありなWordPress構成なのでないでしょうか

0
2
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
0
2