建立已執行負載平衡的 WordPress 網站

(在 Amazon Lightsail 中)

Amazon Lightsail 是開始使用 AWS 最簡單的方法。 其提供虛擬伺服器、儲存、資料庫和網路,外加符合成本效益的每月計劃。

本教學向您展示如何在 Amazon Lightsail 中建立已執行負載平衡的 WordPress 網站。負載平衡器是在一組伺服器上分配網路流量的伺服器。透過將網路流量分配至伺服器集區,您可以顯著提高 WordPress 網站可以處理的並行使用者數量。負載平衡器還新增容錯能力。Lightsail 負載平衡器可確保只有連接至負載平衡器的健康 WordPress 執行個體才能接收流量。

您可以透過增加連線至負載平衡器的執行個體數量,來水平擴展 WordPress 網站。此外,您還可以透過使用更大的 Lightsail 計劃 (例如,使用每月 5 USD,而非每月 3.50 USD 的計劃),取代連接至負載平衡器的執行個體,來垂直擴展 WordPress 網站。本教學不會介紹垂直擴展方案,但可使用類似的步驟來實現。

您在本教學中將完成以下步驟:

  • 在 Lightsail 中建立 MySQL 受管資料庫
  • 為您的 WordPress 執行個體建立 IAM 使用者
  • 透過 SSH 連線至 WordPress 執行個體,以設定受管資料庫和 IAM 使用者登入資料
  • 登入 WordPress 網站的儀表板,然後安裝 WP Offload Media 外掛程式
  • 複製您的 WordPress 執行個體
  • 在 Lightsail 中建立一個負載平衡器,並連接您的 WordPress 執行個體

免費開始使用 Amazon Lightsail。

關於本教學
時間 60 分鐘                                           
費用 須支付費用
使用案例 運算
產品 Amazon Lightsail
對象 開發人員
等級 中級 
上次更新日期 2020 年 4 月 16 日

已經有帳戶了嗎? 登入

1.在 Lightsail 中建立 WordPress 執行個體

本教學要求您在 Lightsail 中建立 WordPress 執行個體。其作法請依照「使用 Amazon Lightsail 啟動和設定 WordPress 執行個體」教學中的步驟進行。

2.在 Lightsail 中建立 MySQL 受管資料庫

完成以下步驟,以在 Lightsail 中建立 MySQL 受管資料庫。新的 MySQL 受管資料庫將用作所有將會執行負載平衡的 WordPress 執行個體的中央資料庫。


a. 登入 Lightsail 主控台。 


b.在 Lightsail 首頁的 Databases (資料庫) 標籤上,選擇 Create database (建立資料庫)

lb1

c.選擇您資料庫的 AWS 區域和可用區域。

注意︰您建立的資料庫必須與 WordPress 執行個體位於同一區域。

lb2

d.選擇最新版 MySQL 作為資料庫引擎。可以使用 PostgreSQL,但與 WordPress 不相容。

lb3

e.選擇資料庫計劃。

包含較低且可預測成本、機器設定 (RAM、SSD、vCPU),以及資料傳輸額度的計畫。您可以免費試用 15 USD 的 Lightsail 標準資料庫計劃一個月 (最多 750 個小時)。

lb4

f.為您的資料庫輸入名稱。

資源名稱指導方針:

  • 必須在您 Lightsail 帳戶中的每個 AWS 區域都是獨一無二的。
  • 必須包含 2 到 255 個字元。
  • 必須以英數字元或數字做為開始與結束。
  • 可包含英數字元、數字、句號、破折號和底線。
lb5

g.選擇 Create database (建立資料庫)

建立您的資料庫需要幾分鐘時間。


h.建立資料庫並且可用後,在 Lightsail 主控台的 Databases (資料庫) 標籤下選擇資料庫的名稱。


i.在資料庫管理頁面的 Connect (連線) 標籤中完成以下步驟:

  1. 記錄資料庫 DNS 名稱。在本教學的後面您會用到。
  2. 記錄資料庫使用者名稱。在本教學的後面您會用到。
  3. 選擇 Show password (顯示密碼),然後選擇 Change password (變更密碼)。輸入一個不包含特殊字元的新的強密碼。您必須變更密碼才能移除特殊字元,因為如果在密碼中使用特殊字元,本教學後面的某些命令將無法正常使用。
  4. 記錄資料庫密碼。在本教學的後面您會用到。
hawp2i

3.為您的 WordPress 執行個體建立 Amazon S3 儲存貯體

完成以下步驟,建立一個 Amazon S3 儲存貯體,其將用於存放 WordPress 網站中的媒體。


a.登入 Amazon S3 主控台


b.在左側導覽功能表中選擇 Block public access (封鎖公有存取)


c.確保兩個用於封鎖透過存取控制清單 (ACL) 進行公有存取的選項都已關閉。如果處於開啟狀態,則選擇 Edit (編輯),取消選擇這些選項,然後選擇 Save changes (儲存變更)。 這些選項是 WordPress 存取您建立的 Amazon S3 儲存貯體所必需的。

注意:這些設定適用於所有 S3 儲存貯體,因此請確保這些設定也適用於您現有的其他 S3 儲存貯體。

update1
update2

d.在左側導覽中選擇 Buckets (儲存貯體),然後選擇 Create bucket (建立儲存貯體)

update3

e.為您的儲存貯體命名。所有 S3 儲存貯體名稱在全域都是唯一的,因此您不能使用與本教學中相同的名稱。

記錄您選擇的名稱,您在本教學的後面需要將其輸入至 WordPress 組態中。


f.為您的 S3 儲存貯體選擇 AWS 區域。您應在同一 AWS 區域建立本教學的所有資源,因此需要在與 WordPress 執行個體相同的區域建立您的 S3 儲存貯體。

update4

g.取消選取 Block all public access (封鎖所有公有存取),然後選擇 Block public access to buckets and objects granted through new public bucket or access point policies (封鎖對透過新的公有儲存貯體或存取點政策授予的儲存貯體和物件的公有存取),以及 Block public and cross-account access to buckets and objects through any public bucket or access point policies (透過任何公有儲存貯體或存取點政策封鎖對儲存貯體和物件的公有存取和跨帳戶存取)。確保兩個用於封鎖透過存取控制清單 (ACL) 進行公有存取的選項都已取消選取。


h.選擇確認您已選取的設定。

update6

i.選擇 Create bucket (建立儲存貯體)


3.為您的 WordPress 執行個體建立 IAM 政策和使用者

完成以下步驟,為您建立的 Amazon S3 儲存貯體建立政策,然後使用該政策建立可存取 S3 儲存貯體的 IAM 使用者。在本教學的後面,您將使用 IAM 使用者的登入資料設定 WordPress 執行個體。

a.登入 IAM 主控台


b.在左側導覽中選擇 Policies (政策),然後選擇 Create policy (建立政策)

c.在 Create Policy (建立政策) 頁面,選擇 JSON 標籤,然後將以下政策貼至文字方塊中。 確保將您的儲存貯體名稱取代為您在本教學前面建立的 Amazon S3 儲存貯體名稱。

結果應如下圖所示。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:GetObject",
                "s3:PutBucketAcl",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::<your bucket name>",
                "arn:aws:s3:::<your bucket name>/*"
            ]
        }
    ]
}
update7

d.選擇 Review policy (檢閱政策)

e.為您的政策命名,例如 wp-s3-policy,然後選擇 Create policy (建立政策)

現在,您已建立可套用至新的 IAM 使用者的政策。在接下來的步驟中,您將建立一個新的 IAM 使用者

update8

f. 在左側導覽中選擇 Users (使用者)。然後選擇 Add user (新增使用者)

lb7

g.輸入使用者名稱。

例如:wp-s3-user


h.選擇 Programmatic access (程式設計存取)

i.選擇 Next: Permissions (下一步:許可)

lb8

j.選擇 Attach existing policies directly (直接連接現有政策)


k.搜尋您在這些步驟中之前建立的 IAM 政策名稱,例如 wp-s3-policy

 


l. 選擇您在搜尋結果中建立的政策。

m.選擇 Next: Tags (下一步:標籤)

 

update10

n.您無需向 IAM 使用者新增標籤。選擇 Next: Review (下一步:檢閱)


o. 檢閱使用者詳細資訊,然後選擇 Create user (建立使用者)

lb10

p. 複製使用者的存取金鑰 ID,然後將其貼至您在本教學前面建立的登入資料文字檔案中。

lb11

q.在 Secret access key (私密存取金鑰) 欄下選擇 Show (顯示)


r.複製私密存取金鑰,並將其貼至登入資料文字檔案中。


s.將登入資料文字檔案儲存至安全位置。在本教學的後面,您會用到這些登入資料。


t.選擇 Close (關閉)

現在,您已完成 IAM 主控台的操作,可以將其關閉。

4.透過 SSH 連線至 WordPress 執行個體,以設定受管資料庫和 IAM 使用者登入資料

完成以下步驟,從 WordPress 執行個體上的 MySQL 資料庫中匯出資料,並將其匯入 Lightsail 中新的 MySQL 受管資料庫中。您還將設定 WordPress 執行個體,以連線至 MySQL 受管資料庫,並在 WordPress 執行個體中設定 IAM 使用者登入資料。


a.登入 Lightsail 主控台


b.在 Lightsail 首頁的 Instances (執行個體) 標籤上,選擇您 WordPress 執行個體的瀏覽器 SSH 用戶端圖示。

lb12

c.在瀏覽器 SSH 用戶端視窗開啟後,輸入以下命令以擷取 WordPress 執行個體上應用程式的 Bitnami 預設密碼:

cat $HOME/bitnami_application_password

        d.複製顯示的密碼,然後將其貼至存放登入資料的文字檔案中。

lb13

e.逐一輸入以下命令,以使用您複製並貼至憑證文字檔案中的資訊建立環境變數。

LSDB_USERNAME=<DatabaseUserName>
LSDB_ENDPOINT=<DatabaseEndpoint>
LSDB_PASSWORD='<DatabasePassword>'
ACCESS_KEY=<AccessKeyID>
SECRET_KEY=<SecretAccessKey>

注意:確保在 LSDB_PASSWORD 參數之前和之後加上單引號。

例如:

LSDB_USERNAME=dbmasteruser
LSDB_ENDPOINT=ls-24e932a56656a5b471398ea052a04bc32ea0703d.czowadgeezqi.us-west-2.rds.amazonaws.com
LSDB_PASSWORD='3stTVwnfJh9CnKR6'
ACCESS_KEY=AKIAIOSFODNN7EXAMPLE
SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

f.輸入以下命令,以建立 WordPress 執行個體上的 MySQL 資料庫傾印。此命令在目前目錄中建立了一個 dump.sql 檔案。

mysqldump -u root --databases bitnami_wordpress --single-transaction --order-by-primary -p > dump.sql

g.當提示輸入密碼時,輸入 Bitnami 預設密碼。這是 WordPress 執行個體上應用程式的 Bitnami 預設密碼,您在這些步驟前面已獲取。


h.輸入以下命令,以將 dump.sql 檔案匯入 Lightsail 中的 MySQL 受管資料庫。

cat dump.sql | mysql --user $LSDB_USERNAME --host $LSDB_ENDPOINT -p

i.當提示輸入密碼時,輸入 MySQL 受管資料庫密碼。這是您在本教學前面所述 Lightsail 主控台獲取的 MySQL 受管資料庫密碼。


j.在下一組步驟中,我們將修改 wp-config.php 檔案。在繼續之前,輸入以下命令,以建立 wp-config.php 檔案備份,以免發生問題。

cp /home/bitnami/apps/wordpress/htdocs/wp-config.php /home/bitnami/apps/wordpress/htdocs/wp-config.php.bak

k.輸入以下命令,以從 wp-config.php 檔案獲取執行個體上 MySQL 資料庫的密碼,並將其設定為 WPDB_PASSWORD 環境變數。

WPDB_PASSWORD=`cat /home/bitnami/apps/wordpress/htdocs/wp-config.php | grep DB_PASSWORD | cut -d \' -f 4`

l.輸入以下命令,以將連接埠新增至您的 Lightsail 資料庫端點環境變數。

LSDB_ENDPOINT=$LSDB_ENDPOINT:3306

m.輸入以下命令,以使用 WordPress 命令列將 MySQL 受管資料庫的使用者名稱、密碼和端點新增至 wp-config.php 檔案。

wp config set DB_USER $LSDB_USERNAME && wp config set DB_PASSWORD $LSDB_PASSWORD && wp config set DB_HOST $LSDB_ENDPOINT

n.輸入以下命令,以建立 credfile.txt,其中包含您在本教學前面建立的 IAM 使用者登入資料。

cat <<EOT >> credfile.txt
define( 'AS3CF_SETTINGS', serialize( array (
    'provider' => 'aws', 
    'access-key-id' => '$ACCESS_KEY', 
    'secret-access-key' => '$SECRET_KEY',
) ) );
EOT

o.輸入以下命令,以將 credfile.txt 的內容插入 wp-config.php 檔案。

sed -i "/define( 'WP_DEBUG', false );/r credfile.txt" /home/bitnami/apps/wordpress/htdocs/wp-config.php

p. 輸入以下命令,以刪除 credfile.txt,因為您不再需要。此時,您還可以刪除包含您在本教學前面複製並貼上的所有登入資料的登入資料檔案。

sudo rm –r credfile.txt

q.上一組命令將重設 wp-config.php 檔案的許可。輸入以下命令,以更正 wp-config.php 檔案以及您建立的備份的許可。

sudo chown bitnami:daemon /home/bitnami/apps/wordpress/htdocs/wp-config.php && sudo chown bitnami:daemon /home/bitnami/apps/wordpress/htdocs/wp-config.php.bak

r.輸入以下命令,以重新啟動執行個體上的服務。

sudo /opt/bitnami/ctlscript.sh restart

您可以關閉瀏覽器 SSH 用戶端視窗。現在,您的 WordPress 執行個體已設定為在 Lightsail 中連線至 新的 MySQL 受管資料庫。當您將新張貼發佈到 WordPress 網站時,這些張貼的資料將寫入 Lightsail 中的 MySQL 受管資料庫,而非執行個體上的 MySQL 受管資料庫。

5.登入 WordPress 網站的儀表板,然後安裝 WP Offload Media 外掛程式

完成以下步驟,在 WordPress 網站上安裝 WP Offload Media 外掛程式。WP Offload Media 外掛程式使用本教學上一部分設定的 IAM 登入資料,在您的 AWS 帳戶中建立 Amazon S3 儲存貯體。它還會將您的 WordPress 連線至新的 S3 儲存貯體,以便將上傳至您網站的媒體檔案儲存至新的 S3 儲存貯體。新的 S3 儲存貯體將用作負載平衡的所有 WordPress 執行個體的中央媒體檔案位置。


a.瀏覽您的執行個體。例如,http://192.0.2.0

您可以從 Lightsail 主控台取得您執行個體的公有 IP 地址,如下圖所示:

lb14

b. 選擇頁面右下角的 Bitnami 管理圖示

lb15

c.選擇 Login (登入)

lb16

d.在 Username text box (使用者名稱文字方塊) 中輸入 user,然後在 Password text box (密碼文字方塊)中輸入 Bitnami 預設密碼。然後,選擇 Log in (登入)

lb17

e.將游標懸停在左側導覽欄中的 Plugins (外掛程式) 上,然後選擇 Add new (新增)

lb18

f.在搜尋文字方塊中輸入 WP Offload Media,然後按 Enter

lb19

g.在搜尋結果中,選擇 WP Offload Media Lite 外掛程式旁邊的 Install Now (立即安裝)

lb29

h.安裝外掛程式後,選擇 Activate (啟動)

lb21

i.啟動外掛程式後,將游標懸停在左側導覽的 Settings (設定) 上,然後選擇 Offload Media Lite

lb22

j.在 Offload Media Lite 設定頁面,將您在本教學前面建立的 S3 儲存貯體名稱輸入 Bucket (儲存貯體) 文字方塊。

然後,選擇 Save Bucket Setting (儲存好儲存貯體設定)

update11

Offload Media Lite 頁面確認您的設定已儲存。

現在,您的 WordPress 網站已設定為將媒體檔案上傳至 Amazon S3 儲存貯體。用於儲存 WordPress 媒體檔案的新的中央 S3 儲存貯體,以及 Lightsail 中新的中央 MySQL 受管資料庫,意味著您現在可以復制 WordPress 執行個體,並且該執行個體的每個重複版本都將參考 S3 儲存貯體和 MySQL 受管資料庫。繼續下一步,在 Lightsail 中複製您的 WordPress 執行個體。

Picture1

6.複製您的 WordPress 執行個體

完成以下步驟,以建立 WordPress 執行個體的快照,然後使用該快照建立執行個體的複本。


a.登入 Lightsail 主控台


b.在 Lightsail 首頁的 Instances (執行個體) 標籤上,選擇 WordPress 執行個體的名稱。

lb26

c.在您的執行個體管理頁面中,選擇 Snapshots (快照) 標籤。 

d.選擇 Create snapshot (建立快照),然後選擇 Create (建立)

lb28

e.快照建立完成後,選擇省略號 (⋮) 圖示,然後選擇 Create new instance (建立新的執行個體)

lb29real

f.在 Create an instance from a snapshot page (從快照頁面建立執行個體) 中,請勿變更預設選擇。捲動至頁面底部,然後選擇 Create instance (建立執行個體)

這會建立與原始 WordPress 執行個體完全相同的複本,其已設定為連線至 MySQL 受管資料庫和本教學前面建立的 Amazon S3 儲存貯體。

重複教學本節中的步驟,以建立需要平衡負載的盡可能多的執行個體。繼續本教學的下一部分,在 Lightsail 中建立負載平衡器並連接您的執行個體。

lb30
lb31

7.在 Lightsail 中建立一個負載平衡器,並連接您的 WordPress 執行個體

完成以下步驟,在 Lightsail 中建立負載平衡器,並連接您的 WordPress 執行個體。


a.登入 Lightsail 主控台


b.在 Lightsail 首頁上,選擇 Networking (聯網) 標籤。


c.選擇 Create load balancer (建立負載平衡器)

lb32

d.在 Create a load balancer (建立負載平衡器) 頁面上,為您的負載平衡器命名,然後選擇 Create load balancer (建立負載平衡器)


e.選擇您的負載平衡器名稱。

lb33

f.在頁面的 Target instances (目標執行個體) 標籤中,頁面的 Target instances (目標執行個體) 區段下,選擇下拉式功能表,然後選擇其中一個 WordPress 執行個體。選擇 Attach (連接),以連接執行個體。

lb34

g.選擇 Attach another (連接另一個),以將另一個執行個體連接至負載平衡器。

將所有重複的 WordPress 執行個體連接至負載平衡器。

lb35

h.在 Load balancer management (負載平衡器管理) 頁面頂部,複製負載平衡器的 DNS 名稱。

lb36

i.開啟一個新的瀏覽器視窗,將 DNS 名稱貼至地址文字方塊中,然後按 enter

您的請求將透過負載平衡器路由,並且 WordPress 網站將會載入。載入的網站來自連接至您負載平衡器的其中一個 WordPress 執行個體。此時,您的負載平衡器已設定為路由至其中一個重複的 WordPress 執行個體。若要完成此程序,請將負載平衡器的 DNS 名稱作為地址 (A) 記錄,新增至註冊網域的 DNS 中。

恭喜您!

您已在 Lightsail 中建立已執行負載平衡的 WordPress 網站。

Amazon Lightsail 最適合開發人員、WebPros,以及想要在 AWS 上以快速且實惠的方式開始使用的任何人。您可以受管的方式啟動執行個體、資料庫、SSD 儲存裝置,傳輸資料,監控資源等等。

本教學對您有幫助嗎?

感謝您
請告訴我們您喜歡的部分。
關閉
抱歉,讓您失望
是有內容過時、令人困擾,或不準確嗎? 請提供意見回饋,協助我們改進此教學課程。
關閉