(2021/02:更新 Spot instance 還有安裝過程。)
(2021/03:更新憑證更新的注意事項。)
先前用的是 Hugo 來生成靜態頁面,但覺得編輯上還是有點麻煩,心血來潮遷移到 WordPress。大概紀錄一下流程,在這之前完全沒有安裝 / 使用 WordPress 的經驗。
主機選擇
比較熟 AWS 所以就直接開了 EC2。t3a.micro
搭配三年的 Reserved instance 大概每小時 $0.005 美金、一個月大概 $3.6 美金。
對照組用了 Spot instance (persistent request) 開了 t3.micro
,從去年開始已經可以支援 stop/start,感覺費用應該跟 Reserved instance 差不多但有更多彈性。
[2021/08] Spot instance t3.micro
每 24 小時 $0.1 美金、一個月大概才 $3 美金,跑了半年都沒有被中斷,比 t3a.micro
reserved instance 還好用。
安裝過程
- 看這篇在 Amazon Linux 2 上把 LAMP 裝起來。
- 看這篇裝最新的 WordPress,我依照步驟設定起來是 5.6。裝完後可以用 HTTP 來存取 WordPress 了。
- 綁定 EIP。
- CloudFront 由於先前已經有設定,只是增加新的 Origin — 用 HTTP only 的方式指到 EC2,但發現會有 mixed content block 的問題 (https:// 連上 CloudFront 但頁面的物件用 http:// 去請求會被阻擋)。
- 為了解決此問題需要回源使用 HTTPS,於是參考這篇搭配 certbot 開啟了 TLS。這邊記得憑證的
subjectAlternativeName
要包含回源所使用的域名,這樣 CloudFront 回源不帶 Host 的時候才不會有問題。 - CloudFront 改為使用 HTTPS 回源。確定已經可以用 https:// 瀏覽及管理 WordPress。
- 在官網找一個自己喜歡的 Theme 裝起來,搭配 Additional CSS 去微調一下版面,就可以開始使用了。
- 參考這篇把 EC2 Auto Recovery 設定起來,避免 EC2 突然壞掉。
- 參考這篇在 EC2 上只放行 CloudFront 流量。
- 搭配 EBS Lifecycle Policy 設定自動備份。
- 把 Google Analytics 放到 Theme Header (header.php) 裡面。
其他小記
- 目前還不知道 WordPress 的架構,也沒裝什麼 plugins。先依據這篇文章的建議設定了 CloudFront cache behavior,之後有時間可能會想要把 static content 放在 S3 上。
- certbot 憑證更新需要放行 port 80,不然憑證會更新失敗。要再找時間看能不能走其他驗證方式,例如透過 DNS 或是 port 443。
- 怕太單調想要找圖可以去芝加哥藝術博物館找無限制使用用途的圖,也就是有標示 Public Domain (CC0) 的畫作 [1]。例如本 blog 用的就是 Snow at Akabane Bridge in Shiba。
- 寫在 Notion 上的筆記竟然可以無痛直接貼到 WordPress 編輯器真是不錯。
- 如何增加 WordPress 的安全性?
[1] https://www.artic.edu/open-access/open-access-images