アーキテクチャセンター
Use Marketplace Image to Deploy a WordPress Website on Alibaba Cloud

Alibaba Cloud で Marketplace イメージを使用した WordPress ウェブサイトのデプロイ

概要
このソリューションでは、Alibaba Cloud マーケットプレイスの WordPress ウェブサイトイメージを使用して、ECS に WordPress ウェブサイトを迅速にデプロイします。
このソリューションでは、デプロイメントを複数のフェーズに分け、各フェーズで特定のビジネスニーズに対応する代表的なアーキテクチャを採用しています。
リファレンスアーキテクチャ
手順
リソースのデプロイ
Terraform でこの main.tf ファイルを使用して、ECS およびこのソリューションのその他のリソースをプロビジョニングします。
注: 対応するリージョンの WordPress イメージの正しい Image ID を使用してください。
WordPress ウェブサイトのデプロイ
フェーズ 0: エントリーレベルデプロイメント向け「オールインワン」構成。
このフェーズは低コストでのエントリーレベルのデプロイメント向けですが、Web アプリやデータベースの高可用性は備えていません。
Web ブラウザーで次の URL にアクセスして、WordPress を初期化します。
http://ECS_EIP
注:ECS_EIP を、ECS インスタンスの Elastic IP Address に置き換えてください。
フェーズ 1:WordPress ECS サーバー + Basic Edition のスタンドアロン RDS MySQL
このフェーズでは、データベースを Web アプリサーバーから分離します。Web アプリとデータベースの双方にとって安定した構造ですが、いずれにも高可用性機能は備わっていません。
1. SSH で ECS にログインします。
ECS インスタンスのデフォルトのアカウント名とパスワードは以下の通りです。
アカウント名:root
パスワード:Aliyun-test
2. 次のコマンドを実行して WordPress 設定ファイルを編集し、RDS MySQL の URL、データベース、およびアカウント情報を設定します。
vim /data/wwwroot/wordpress/wp-config.php
3. Web ブラウザーで次の URL にアクセスして、WordPress を初期化します。
http://ECS_EIP
注: ECS_EIP を、事前に取得した ECS インスタンスの Elastic IP Address に置き換えてください。
フェーズ 2-1: SLB + WordPress ECS サーバー (Auto Scaling) + クラウドネイティブ PolarDB MySQL
このフェーズでは、WordPress Web アプリを実行する複数の ECS サーバーに対して SLB と Auto Scaling グループを設定します。クラウドネイティブデータベース PolarDB を使用して、高可用性とスケーラビリティを実現します。
1. SSH で ECS にログインします。
2. 次のコマンドを実行して、WordPress 設定ファイルを編集し、PolarDB MySQL の URL、データベース、アカウント情報を設定します。
vim /data/wwwroot/wordpress/wp-config.php
3. Web ブラウザーで次の URL にアクセスして、WordPress を初期化します。
http://ECS_EIP
注: ECS_EIP を、事前に取得した ECS インスタンスの Elastic IP Address に置き換えてください。
4. WordPress のインストールと設定が正常に完了したら、このAuto Scaling 設定ガイドの手順に従ってください。
フェーズ 2-2:SLB + WordPress ECS サーバー (Auto Scaling) + マルチ AZ Redis キャッシュ + RDS MySQL High Availability Edition
このフェーズでは、WordPress Web アプリを実行する複数の ECS サーバーに対して SLB と Auto Scaling グループを設定します。RDS のクロスアベイラビリティゾーン機能を使用して高可用性を実現し、Redis をデータキャッシュとして使用して Web アプリのパフォーマンスを向上させます。
1. SSH で ECS にログインします。
2. 次のコマンドを実行して、WordPress 設定ファイルを編集し、PolarDB MySQL の URL、データベース、アカウント情報を設定します。
vim /data/wwwroot/wordpress/wp-config.php
3. Web ブラウザーで次の URL にアクセスして、WordPress を初期化します。
http://ECS_EIP
注:ECS_EIP を、取得した ECS インスタンスの Elastic IP Address に置き換えてください。
4. 次のコマンドを順番に実行して、Redis オブジェクトキャッシュプラグインをダウンロードし、プラグインパッケージを解凍します。
wget https://downloads.wordpress.org/plugin/redis-cache.2.0.18.zip
unzip redis-cache.2.0.18.zip

5. 次のコマンドを順番に実行して、redis-cache フォルダを /data/wwwroot/wordpress/wp-content/plugins/ にコピーし、WordPress が ApsaraDB for Redis にアクセスできるように設定します。
cp -rf redis-cache /data/wwwroot/wordpress/wp-content/plugins/
vim /data/wwwroot/wordpress/wp-config.php

6. 次のコマンドを実行して、設定を完了します。
// Redis settings
define( 'WP_REDIS_HOST', '' );
define( 'WP_REDIS_CLIENT', 'predis' );
define( 'WP_REDIS_PORT', '6379' );
define( 'WP_REDIS_DATABASE', '0');
define( 'WP_REDIS_PASSWORD', 'wordpress:N1cetest' );

注: この Redis 設定ブロックが wp-config.php ファイルの最初の設定ブロックであることを確認してください。
7. 次のコマンドを実行して、object-cache 設定ファイルを /data/wwwroot/wordpress/wp-content/ にコピーします。
cp /data/wwwroot/wordpress/wp-content/plugins/redis-cache/includes/object-cache.php /data/wwwroot/wordpress/wp-content/
8. WordPress にログインして、Redis オブジェクトキャッシュを有効化します。その後、SLB EIP 経由で WordPress ウェブサイトにアクセスできます。
http://SLB_EIP/
9 Auto Scaling 設定ガイドの手順に従って、Auto Scaling を設定します。
フェーズ 2-3:SLB + WordPress ECS サーバー (Auto Scaling) + マルチ AZ Redis キャッシュ + クラウドネイティブ PolarDB MySQL
このフェーズでは、SLB と複数 ECS サーバー向けの Auto Scaling グループを設定し、WordPress Web アプリを運用します。クラウドネイティブデータベース PolarDB MySQL で高可用性とスケーラビリティを確保し、Redis をデータキャッシュとして利用して Web アプリのパフォーマンスを向上させます。複数のアベイラビリティゾーンにまたがる構成により、高可用性も実現します。
1. SSH で ECS にログインします。
2. 次のコマンドを実行して、WordPress 設定ファイルを編集し、PolarDB MySQL の URL、データベース、アカウント情報を設定します。
vim /data/wwwroot/wordpress/wp-config.php
3. Web ブラウザーで次の URL にアクセスして、WordPress を初期化します。
http://ECS_EIP
注: ECS_EIP を、事前に取得した ECS インスタンスの Elastic IP Address に置き換えてください。
4. WordPress のインストールと設定が完了したら、Auto Scaling 設定ガイドおよびRedis キャッシュ設定ガイドの手順に従って、Auto Scaling と Redis キャッシュを設定します。

Alibaba Cloud のエキスパートにサポートを依頼

お問い合わせ
phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.