Azure App Service 建置 WordPress 完全攻略

Azure App Service 是什麼?

Azure App Service 是一個 Azure 中的 PaaS 服務,Azure 於這邊有簡單說明什麼叫做 PaaS 服務。不過在這之前,還是要先了解一下什麼是 Azure 呢? Azure 是微軟所推出的雲端運算平台,Azure 雲端運算服務,可以分成 下面四大種類:

聽起來很抽象,可參照這篇微軟官方的 Cloud Model 說明圖,用建築來做比喻, IaaS 就是跟 Azure 租一塊地,從打挖地下室、打地基、綁鋼筋、灌水泥…等,地下想要挖幾層,上面想要蓋幾層,用什麼工法都可以自己決定,只要技術上可行,其實都做得出來。

而 PaaS 則是一個半成品給你接續的著蓋下去,不用會高深的建築技術,已經有些別墅專用、大廈專用、豪宅專用…等半成品的結構給你使用,雖然無法變更梁柱這些重大設計,但是只要略懂一些建築技術,就可以接續蓋下去,省去許多時間與技術學習成本。

無伺服器運算與 SaaS 部分,則可當作用一層與一層中的一戶住家來看,彈性相對少掉不少,最多只能針對室內裝潢設計改變,或者只能改變家具上的改變,其他可以調整的空間就小上了不少,但卻也最方便,不用花太多力氣,只要直接進去入住即可。

為什麼要用 Azure App Service

Azure App Service 與一般市面上的 Web hosting 服務有些雷同,使用上雖然沒有常見的 cPanel 作為後台,但可以依據自身需求,調配出需要的環境,使用技術為客製容器化的技術,預設有許多開發人員常見的 stack ,如 php、python、ruby…等,就好像今天要蓋豪宅、大廈、別墅要用的模板,選擇模板後便能接著蓋下去,當然這邊也有 WordPress 的模板可供使用,蓋下去就直接跑 WordPress 來用了。

如果有參考過 Azure Linux VM 建置 WordPress 完全攻略,可以發現需要非常多的步驟,且如果要弄懂,得具備一定程度的技術能力,這就是 Azure App Service 的相對優點,不用懂太多高深技術,就可以比較輕鬆用滑鼠點一點,就能完成在 Azure 架設出 WordPress 網站。

App Service 與 Web hosting 的最大不同,可以參考下圖,黃色框線為系統業者如 Azure 或 Bluehost 提供的管理服務,使用者很難或不能針對黃色框線的內容,進行修改或調整。

App Service 與 Web hosting 比較

可以看到 Azure App Service 仍有一定的規格選、架構調整的權利,如我的 WordPress 要使用什麼樣的運算規格,資料庫要跟 WordPress 本身放一起,還是分開來使用 Azure Database for MySQL 都有一定的選擇,彈性比傳統的 Web hosting 服務多一些。

傳統的 Web hosting 有一些先天上的隱藏限制,以 Bluehost 為例,雖然標榜著無限流量,但資料庫卻有用量上的限制,畢竟羊毛出在羊身上,今天只付出 199元去吃到飽餐廳,要吃到真正的龍蝦、干貝的機率微乎其微,而 Azure 在使用上則是處處都需要付費,包含了流量,每 GB 約台幣 3.x 元,畢竟頻寬也是成本,天下沒有白吃的午餐。

使用 Azure App Service 相對 web hosting 優點

  • 使用彈性高
  • 操作上相對容易
  • 許多功能都包套包好,滑鼠點一點就可直接套用

使用 Azure App Service 相對 web hosting 缺點

  • 費用較為高昂,且每樣服務都幾乎要費用
  • 進入技術門檻稍高
  • 客戶服務需額外付費取得

WordPress On Azure App Service 的架構

前面提到了 Azure App Service 與市面上的 Web hosting 差異,這邊要說明 Azure App Service 的使用架構,可以說與 Azure Linux VM 建置 WordPress 完全攻略 有異曲同工之妙,不過彈性較低,本案例使用 B 方案作為示範。

WordPress on Azure App Service 架構

另外需要注意的部分,WordPress 使用 App Service 有兩種,一種為使用 Windows 系統的 App Service ,而一種則為 Linux 系統的 App Service ,兩者差異點為費用,接著是 WordPress on Linux 的 App Service 沒有 A 方案的選擇,資料庫必須分離運作,當然還是有解,但不在本篇介紹範圍內。

使用 App Service 方式建立 WordPress (Windows 版)

– 登入後點選 “Create a resource”

Azure 主畫面

– 輸入 “wordpress” 後 enter 進行搜尋

搜尋畫面

– 選擇”WordPress”

搜尋 Marketplace 畫面

– 選擇 “Create”

建立 WordPress 圖

– 基本設定

接著會出現一些基本設定的畫面

  1. 設定這個 App Service 名稱,不可以重複,如果有跟其他人重複會直接拒絕,這邊輸入”wordpress-appservice”
  2. 設定 App Service 的地理位置,預設是美國中部,我們等等要修改他的位置到亞太地區的新加坡機房
  3. 選擇資料庫設定

補充說明:為何要選擇新加坡機房?
一言以蔽之,台灣連過去比較快,連到美國的延遲會比較久,使用者體驗會相對比較差。

建立 WordPress App Service 設定

– 選擇 App Service Plan 後,再點選”Create new”

App Service Plan 圖
  1. 輸入 App Service Plan 名稱,這邊輸入”wordpress-appservice”
  2. 選擇地點,Southeast Asia 為新加坡機房
  3. 選擇價格區間(非常重要),不然看到帳單會哭出來
新增 App Service

– 選擇 Pricing Tier

這邊為了使用體驗好一點,選擇Production等級中的S1規格,有興趣可以往下看看提供了那些功能,此外每個月的價格也都顯示在上面可以參考,最後選擇”Apply”。

Pricing Tier 選擇畫面

確定剛剛新增的 Pricing tier 正確後,點選”OK”

確認 App Service Plan 內容正確

回到主畫面後,可以發現 App Service plan/Location 已經有所改變,接著我們設定資料庫。

確認 Location 有沒有在 Southeast Asia

– 設定資料庫

App Service 的資料庫分兩種,一種是跟這台 App Service 主機放一起,一個是分開來獨立,選擇 Database Provider 可以進行調整以下兩個選項:

  • Azure Database for MySQL 為獨立資料庫,也就是 WordPress 主機自己獨立分開,這樣會有兩個費用產生,優點在於擴充時有彈性,且能享受到 Azure 管理資料庫帶來的便利,如好操作、容易備份、流量大需要擴充時方便,只要增加 WordPress 主機本身即可,且資料庫本身也可以擴充、調整規格。
  • MySQL in App 則是與 WordPress 程式放在一起,要擴充的時候,資料庫會出現狀況,因此只能做到 Scale up ,要做到 Scale out 會有困難。

名詞解釋:
Scale up 為垂直擴充,同一台主機,將其規格升級,如 1 GB RAM 變成 2 GB。
Scale out 為水平擴充,同一台主機,施展影分身之術,變成多台,以分散網站流量,當然前面要有一個分流機制,常見的服務為 Load Balance 或 Application Gateway,這邊只要知道有這東西,未來日後會再詳做介紹。

選擇 Database 進行設定

接下來要做的這兩件事情非常重要,首先是設定好資料庫密碼,再來是選擇資料庫的 Pricing tier。
1. 帳號密碼務必記住,密碼以大小寫英文與數字為主,不要加入特殊字元以免錯誤
2. 一定要設定 Pricing tier 不然看到帳單絕對會哭出來

Database Server 設定

選擇 Basic 後,再將核心數與儲存空間,用拖曳方式拉至最左邊,以降至最低,最後點選”OK”,可以發現一個月的費用還要一千出頭新台幣左右。

修改資料庫規格

確認無誤後,順便把 Database name 記錄下來

確認 Database Server 資訊

– 開始部署 App Service

點選”Create”後,點選小鈴鐺,會出現部署狀態,大概等個幾分鐘,喝個茶、泡杯咖啡休息一下,部署完成後則會出現綠勾勾,接著點選”Go to resource”。

初始化部署中
App Service 部署完成

– 開始安裝 WordPress

部署完成後,可以想像成在 Web hosting 平台,如 Bluehost 上開好一個帳號,並選擇使用 WordPress 模板,這邊接著要在 Azure 的 App Service 上設定好 WordPress,如語言設定、資料庫設定等。

這邊進入 Azure wordpress-appservice 後,選擇”Browse”便可開啟新網頁進行 WordPress 的設定,而網址則在”URL”上面,且很貼心的都做好 HTTPS 加密連線設定。

Azure wordpress-appservice 總覽

在新的網頁中設定 WordPress ,這邊選擇網站語言,我們選擇繁體中文後點選”繼續”

選擇網站語言
  1. 設定好網站標題、使用者名稱、密碼、電子郵件等基本資訊
  2. 點選”安裝 WordPress”
WordPress 設定

安裝完成後即可登入

完成安裝畫面
輸入帳號密碼即可登入 WordPress 的後台

– 安裝完成

完成安裝登入後台
發一篇文章順便上傳幾張圖片來測試 WordPress

使用的是 IIS 10.0 搭配 PHP 7.3.17 的組合

WordPress on Windows主機所使用之技術

使用 Google 的 Page Speed 工具來測試下,分數還不錯。

Google Page Speed 測試

– 如何刪除 Azure App Service

如果你只是用於測試,要如何刪除呢?其實非常簡單,只要依照以下幾個步驟即可完成。

回到 Azure Portal 的首頁,選擇選擇 Resource Group

選擇 Resource Group

選擇剛剛建置的 WordPress Resource group 名稱,此為 wordpress-appservice

選擇 wordpress-appservice

進入 WordPress App Service 的 Resource group 後,再點選 “Delete resource group” 刪除

選擇 Delete resource group

出現確認畫面後,再次輸入 Resource group 的名稱後,點選”Delete”即可刪除

輸入這個 resource group 的名稱,再點選 “Delete” 即可

刪除需要等幾分鐘,刪除後會出現綠色勾勾表示完成刪除作業

點選小鈴鐺可以查看 WordPress App Service 刪除狀態
刪除 WordPress App Service 完成後會出現綠勾勾

同場加映:使用 App Service 方式建立 WordPress (Linux 版)

– 於”Create a resource”搜尋時輸入”WordPress on Linux”

選擇 WordPress on Linux 建立 Azure App Service 服務

– 基本設定

基本設定與 Windows 版相同,不過資料庫部分只能分開,無法放到 App Service 中。

WordPress on Linux 設定

與 Windows 最大差異在於 Linux 費用較為低廉,”See only recommended options”展開更多選項,S1 部分便宜沒有很多,不過 P1V2 則有極大價差。

WordPress on Linux 的 App Service Pricing tier

接著步驟與 Windows 版均相同,建置完成後,需要再多等個 5-15 分鐘,等待系統部署完成,最後再開啟網頁進行設定。

使用 nginx 與 PHP 7.2.13

WordPress on Linux主機所使用之技術

使用 Google 的 Page Speed 工具來測試下,同樣規格下,分數略高於 Windows 版一點點。

WordPress on Linux PageSpeed

© 2023