前面跟大家介紹 AWS ACM(SSL 憑證那位小天使),都還在說什麼 CloudFront、ALB、API Gateway 自動更新憑證超方便。結果你心裡默默冒出一個問號:
「可是我的網站根本不是架在 AWS 上,這樣還能爽爽用嗎?」
答案是 —— 當然可以。
AWS 最厲害的地方,就是讓你乍看覺得「不行吧」,結果再看文件才發現:「嗶~消音~,還真的可以欸。」
我們用的 SSL 憑證是沒有實體檔案的,地端 Server 也能用?! 真都!假都!
簡單來說,ACM 憑證本來就是綁 CloudFront、ALB、API Gateway 等 AWS 自家服務。要是你服務架在自家地下室的 NAS,或是公司 IT 室那台不知道幾百年的 Linux Server,直接用?不好意思,沒門。
但聰明的工程師會想到:
「那我就用 CloudFront 當作前排肉盾啊!」
這樣一來,CloudFront 幫你接前面所有流量,後端 Origin 指到你家 NAS 或地端機器,你就能順便吃到 ACM 憑證 + 自動更新的 buff。
想像一下,這招就像把你家巷口的小麵攤包裝成五星級餐廳:客人訂位都是透過高級飯店的櫃台(CloudFront),最後吃到的麵還是老闆娘現炒的牛肉炒麵(地端 Server)。
是不是很有畫面?
示意架構圖如下:
不過要上這套 combo,還是有幾個前置條件,不然 CloudFront 也是幫不了你:
有這兩個至少其一,就能開始玩。
第一步:進 CloudFront 建立一個 Distribution,名稱自己取一個,不要跟我一樣啦!我亂取的啦!
第二步:
在 Origin type
選「Other」,因為後端不是 AWS 的東西嘛。接著在 Custom origin
輸入你地端網站的域名或 IP。
如果你是用 NAS 架站,那就乖乖填 NAS 的固定 IP。
其他設定?不用想太多,先放預設就好 —— 畢竟八成工程師的哲學是「能動就好,出事再 debug」。
第三步:
WAF 要不要開?這就跟「要不要買防毒軟體」一樣,看公司有沒有錢。建議如果你的地端主機是拿來收集會員資料的,還是開一下,不然等哪天被駭了,老闆只會問一句:
「為什麼沒先防堵?」
而不是:「為什麼 Server 被駭了?」
這裡做範例先以不啟用做說明,先用簡單的起手式讓小夥伴可以先用起來,之後進階的設定可以再補上,正所謂師父領進門,修行看個人。
最後檢查一遍設定,按下 Create distribution
,恭喜你 —— CloudFront + 地端的 combo 就組合成功啦。
接下來的步驟跟前一篇「CloudFront 當你網站前排最肉的坦克」一模一樣,設定 ACM 憑證、綁定你的域名,這邊就不重複啦。
唯一的差別就是,這次坦克後面不是 EC2,而是你家機房那台永遠風扇狂轉的鐵箱。
CloudFront 還有個超爽的小技巧 —— 地理位置過濾(Geographic restriction)。
舉個例子:
你做的是台灣限定的服務(像是手搖飲外送 API 🤣),根本不需要讓全世界都能訪問。這時候就能設定成「只有台灣的使用者能連到網站」,其他國家直接送一個 403 錯誤訊息回去。
設定流程簡單到爆:
Security
→ Geographic restrictions
。Countries(國家)
右邊的 Edit
用滑鼠左鍵點一下,進入國家的設定。Allow list
,挑 Taiwan
,存檔。當然,還有 Block list
模式,反過來把某些國家踢出去,適合有「黑名單」需求的專案。
這招 CloudFront + ACM combo 的精隨就是:
SSL 憑證自動更新?有。
資安防護?有(如果你有開 WAF 的話) 。
省錢?嗯…至少流量有被過濾啦。
所以,下次有人問你:「ACM 可以在地端用嗎?」
你就可以裝逼回一句:
「在我的環境裡是可以的呀。」