[2021] 遷移 WordPress 小記

(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

January 4, 2021 · 1 分鐘 · maple

期待 CloudFront 能實現的功能

前陣子看到這個 tweet 問大家希望能在 CloudFront 實現的功能,覺得不錯的有: Managed security group (讓 AWS origin 可以直接掛載來放行 CloudFront IP,不用用很麻煩的 Lambda 去定期更新) WAF at behavior level (像是 static content 就不需要 WAF) Built-in redirection rules (像是 ALB 那樣) stale-while-revalidate header support (這篇文章解釋得很清楚)

January 4, 2021 · 1 分鐘 · maple