· 2019鐵人賽
前言
在之前的文章都有將 Notify、LINE Login所需要的靜態頁面放在 S3 上面,讓其他使用者去點,雖然把前端放在程式裡面用 render template 比較好,可是在求快的情況下我把靜態頁面寫完就扔上去了(被拖走),其實也可以透過這個方法去幫忙轉址,不過接下來我會用我的臉書做個範例提供參考~
實作
照著之前的範例來建立一個名為 facebook.nijialin.com 來做 S3 轉址的範例
建立完之後因為我們需要把網址公開給其他使用者點選,在第三個分頁中先把第一個選項的 Block all public access 更換成 off 狀態
到第二個按鈕選項選擇 Public access,暴力一點把所有選項都打開 🤣
前面都已經把權限開完,選擇Static Website hosting這個選項,這個是 S3 提供來讓他有另一種功能,不過我是覺得這功能在這邊有點奇怪 XD

接著就來到 Route 53,點選左欄的 Hosted Zone
點選上面藍色的按鈕,右邊會出現輸入的地方讓你填
這邊我會輸入跟 S3 bucket 的名字一樣,然後 Alias 選擇 Yes,下面輸入框點下去會看到自己剛剛輸入的 S3 website endpoints
建立完之後就可以在瀏覽器上輸入網址,他就會導去你預設的網站囉!向我這邊就是拿我的 facebook 來做示範。
結論
我透過這個方法幫我把 medium 的部落格網址重新導向,因為我想之後若是有獨立建立部落格的話網址會是一樣的,當有點粉絲的話至少他們認得的網址會是一樣的 😁。
參考
Route 53+靜態網址
繼續閱讀
· 2019鐵人賽
簡介
繼上一篇 warm-up 機制之後來了解一下如何使用 AWS 的 CDN 服務 - cloudfont,CDN 顧名思義就是要讓使用者可以到最接近的主機上去拉到對應的資料,透過撒點的方式讓主機去挑選離自己近的服務據點,藉此加速服務。
像我之前部署在 ohio,想想光網路的時間 + Cold start 的時間就已經去了一大半,即便我們有熱開機,服務沒有 Timeout 我該慶幸了,既然如此就不得不認識一下 CDN 服務,而 AWS 的 CDN 服務就是 cloudfont 啦!
只是說原本的 domain 已經有 SSL 了,但是代理沒有這個東西,所以我們要 ban 出一個 Certificate,那在在建立 cloudfont 以前需要先到 Certificate Manager,接著會用圖片帶大家一步一步做

開始之前
我已經有先在 Route53 註冊了一個 nijialin.com 的 domain,.com大概 10 美金左右,若是有在其他地方註冊域名的話要找一下相關文章把它導進 Route53 哦!
註冊 Certificate
- 先來到 Certificate Manager 頁面,按下左下角的這個

- 接著就直接按右下角啦,但是要確定是不是 public

- 這裡輸入你在 route53 註冊的 domain,這邊我是輸入 *.nijialin.com

- 到第四部之後就會看到申請的 SSL Pending

- 最後回首頁之後就會看到 SSL 簽證正在送簽中

最後就等他完成嚕!將將
接著我們到 API Gateway 找到左邊的 Custom Domain Name,我們要來建立屬於這個 API 的 Domain 了
按下藍色的按鈕之後,輸入Domain name以及選擇剛剛註冊的 Certificate 後按下 Save
他就會開始初始化剛剛的設定,這邊大概需要等 15 分鐘左右
在此同時我們就去新增專案裡的套件 Domain-Manager
npm install serverless-domain-manager --save-dev
並且在plugin下加入套件
plugins:
- serverless-domain-manager
在custom底下加入
custom:
domainName:
default:
domainName: line.nijialin.com
certificateName: "*.nijialin.com"
createRoute53Record: true
endpointType: edge
等待前面初始化成功之後部署這個專案sls deploy之後就會看到剛剛註冊的域名啟動囉!

結論
在建立 Certificate 那邊倒沒什麼問題,畢竟需要一個 SSL,只是到了建立 domain 這邊遇到了很怪的問題,一般來說使用 serverless 框架來跑的話只要照的文件裡說的 serverless create_domain就會幫忙註冊,而且可以依照自己開發環境去自動設定,在公司的專案中這樣使用是沒問題的,在是在寫這篇文章時卻只能使用以上的方法來替代使用,雖然結果是一樣的,但是用起來實在是很不符合邏輯,google 也沒找到類似的問題,或許這個問題還要多實測幾次才夠...😭
繼續閱讀