啊,擁有自己的網域名稱,這就像是在廣闊無垠的海洋中擁有一塊屬於自己的小島。在這個買不起房子的時代,擁有一個網域名稱至少告訴你:嘿,至少有個地方是真正屬於你的!

而且使用像yourname.medium.comuser123.blogspot.com這樣的二級域名,雖然也能上網,但總讓人感覺你是在別人的地盤上搭了個帳篷,不夠專業,也不夠有個性。畢竟,你不會希望自己的家園還掛著別人的招牌吧?

當然,擁有自己的網域名稱還有一個不小的優點,那就是便於記憶。說實話,你更容易記住www.awesome-sauce.com還是www.somefreewebsite.com/user=123456?我們都知道答案,對吧?

所以,這篇文章會告訴你,該怎麼從上一篇醜醜的 http://{BUCKET_NAME}.s3-website-{REGION}.amazonaws.com 換成你自己獨有的網站名稱

網域小知識

管理網域名稱其實是一個相當有秩序的過程,而網域註冊不會衝突,主要是因為全球有一個專門的系統來保證每個網域的唯一性。

當你註冊一個網域名稱時,這個過程是通過網域名稱註冊商來完成的。這些註冊商有權訪問一個全球性的數據庫,這個數據庫叫做域名系統(DNS)。DNS 像是互聯網的電話簿,它將人類可讀的網域名稱(像是“www.example.com”)映射到一串IP地址(這是互聯網上每台設備的唯一標識)。

當你試圖註冊一個網域時,註冊商會首先檢查這個名稱是否已經被其他人註冊。因為DNS系統確保每個網域名稱都是獨一無二的,所以不會有兩個相同的網域名稱被允許註冊。如果你選擇的名稱已經被別人擁有,系統會告訴你這個名稱不可用,你就需要再想一個新的名稱。

一旦網域名稱被註冊,它的管理權就屬於註冊者。網域名稱的擁有者可以控制這個網域相關的各種設置,例如它指向的IP地址,郵件服務器設置,以及其他各種網路服務的設定。這些設置通常可以通過註冊商提供的用戶界面來管理。

總之,網域名稱系統是一個精密且有組織的全球系統,它確保了網域名稱的唯一性和可管理性,讓互聯網能夠順暢運作。

建立 Cloudfront CDN

這是啥?

在這個想要一切快如閃電的時代,沒人願意等待,尤其是在網絡世界。這就是為什么我們需要 CDN(內容交付網絡)的原因。你可以把 CDN 想象成一個超級快遞員,只不過這個快遞員專門送達數字信息。

想一想,如果你在美國,而你的網站伺服器放在了澳大利亞,那麼每當有人試圖訪問你的網站時,數據就得橫跨半個地球去找到他們。這就像是你從紐約訂購了一個袋鼠,但袋鼠得從雪梨一路跳過來。當然,那可是一段漫長的旅程!

這就是 CDN 發揮作用的地方。CDN 像是在全球各地放置了一群袋鼠(好吧,其實是伺服器),這樣當有人需要你的網站上的內容時,最近的那個袋鼠(也就是伺服器)就會把信息快速送到他們手上。這不僅速度快得多,而且還減輕了你那可憐的澳洲袋鼠伺服器的負擔。

此外,CDN 不僅僅是快,還很強壯。它可以幫助你的網站抵擋流量大的時候可能出現的問題,比如當你的博客因為發布了可愛的小貓視頻而一夜爆紅時。沒有 CDN 的話,你的伺服器可能會被蜂擁而至的訪客擠垮,但有了 CDN,這些訪客就會被均勻地分配到全球的伺服器上,這樣就不會有任何伺服器因為過載而崩潰。

總之,建立 CDN 就像是在全世界各地部署你自己的小快遞隊伍,確保無論你的用戶在哪裡,都可以快速、可靠地獲取內容。這樣不僅讓用戶開心,也能讓你的伺服器舒舒服服地工作,不用擔心被突如其來的人氣壓垮。

建立 Cloudfront

在 AWS 上,CDN 的服務名稱就是 Cloudfront

  1. Create distribution
  2. Origin domain 那邊選擇你剛建的 s3 bucket
  3. 如果頁面上面說,有偵測到你有開啟 static host,他會建議你用 static host 的 url,就確認
  4. 一般來說你可以預留他原本的設定,但 Cache key and origin requests 可能為了測試方便可以先改成 CacheDisable, CORS-S3Origin ( 可以參考下方解說 ) * cache 可以在正式上線後設置回 enable, 因為測試的時候會頻繁上傳新的頁面版本,為了可以直接看到頁面更新,可以先取消

解說

CORS S3 Origin 是什麼?

CORS(跨源資源共享)和 S3(Amazon Simple Storage Service)Origin 的組合涉及到兩個主要概念:一是跨域請求的處理機制,二是指 Amazon 的 S3 服務作為資源的來源。

  1. CORS (跨源資源共享)

    • CORS 是一種安全功能,允許一個網域(源)的網頁訪問另一個網域的資源。默認情況下,瀏覽器出於安全考慮,不允許跨域請求,這意味著只有來自同一來源(即相同的協議、域名和端口)的請求才被允許。
    • 然而,在實際應用中,網頁經常需要從不同的來源獲取資源,比如圖片、字體、CSS 文件或者 API 數據。CORS 通過在 HTTP 標頭中添加特定的標識,允許開發者指定哪些跨域請求是允許的。
  2. S3 Origin

    • 這裡的“Origin”指的是資源的來源位置。在這個上下文中,它特指 Amazon S3,這是一個廣泛使用的雲存儲服務,可以存儲和檢索任意數量的數據。
    • 當你在網頁應用中使用存儲在 S3 桶(bucket)中的資源(如圖片、視頻、或其他文件)時,這些資源的“來源”就是 S3。

結合這兩點,當談到“CORS-S3 Origin”,它通常意味著你需要配置你的 S3 桶以允許從不同來源的網頁進行跨域請求。例如,你可能有一個在 S3 上托管的圖片,你希望在其他不同的網站上顯示。為此,你需要在 S3 的設置中配置 CORS 規則,以允許這些跨域請求。這樣,當其他網站試圖加載這個 S3 桶中的圖片時,它們將不會被瀏覽器的同源政策所阻止。

建好了嗎?太棒了,不過 CDN 的建立要花費一些時間,因為建立 cdn 等於是要讓 aws 在全球部署一堆伺服器節點。你目前會看到應該正在 deploying

趁這段時間我們先來為網站取個名字,這可能會花掉你一個下午的時間 XD

建立 Route53

步驟 1: 購買域名

  1. 打開 Route 53 控制台

    • 在 AWS 管理控制台中尋找並打開 Route 53 服務。
  2. 購買域名

    • 在 Route 53 控制台中,選擇“Domain Registration”(域名註冊)。
    • 打上你想要的名字,並確認是否可以用,這是世界上獨一無二的,就像 google.com, facebook.com 一樣,以我的例子我打上 ivan-lin.net
    • 點擊“Register Domain”(註冊域名),然後搜索你想要的域名,看看它是否可用。
    • 遵循指示完成購買過程。這可能包括提供聯絡信息和付款。
  3. 確認域名註冊

    • 完成購買後,你的域名將會出現在你的 Route 53 控制台的“Registered Domains”(已註冊域名)列表中。

步驟 2: 連接 Route 53 和 CloudFront

  1. 創建 DNS 記錄

    • 回到 Route 53 控制台,選擇“Hosted Zones”(託管區域)。
    • 選擇剛才註冊的域名對應的託管區域。
    • 點擊“Create Record Set”(創建記錄集)。
  2. 配置 DNS 記錄

    • 在“Name”(名稱)欄位,你可以保留它為空,這樣記錄會直接指向你的域名,或者你可以指定一個子域名,例如“www”。
    • 在“Type”(類型)欄位,選擇“A – IPv4 address”。
    • 在“Alias”(別名)選項中,選擇“Yes”。
    • 在“Alias Target”(別名目標)中,選擇你的 CloudFront distribution ( 應該可以選了 )。
    • 保存記錄集。
  3. 等待 DNS 變更生效

    • DNS 變更可能需要一些時間(通常是幾分鐘到幾小時)來全球生效。

完成這些步驟後,你的域名應該已經成功連接到了 CloudFront Distribution,並且可以通過 HTTPS 來安全訪問。這樣,你就為你的網站設置了一個可靠且高效的 CDN 服務。

SSL

什麼是 SSL?

想象一下,你在一家熱鬧的咖啡館裡,用著筆電瀏覽網絡,或許正在網購,或是查看銀行帳戶。但哎呀,這咖啡館裡可不只有你和咖啡的香味,還有好奇的目光,隨時準備偷窺你的私密信息。這時候,SSL 就像一位穿梭於數位世界的超級英雄,隨時準備保護你的敏感數據。

SSL 就好比是你的私人保鏢,但不是那種大塊頭、墨鏡遮面的,而是一位擁有隱形斗篷的神秘人物。當你的數據從筆電發出,要穿越茫茫網絡大海到達目的地時,SSL 就會給這些數據穿上隱形斗篷。這樣一來,就算有不速之客試圖窺探,他們也只能看到一串無法解讀的神秘符號。

每當你在網址列看到「https」而不是平淡無奇的「http」,或者看到一個小鎖頭標誌時,那就是SSL正在默默地發揮作用。這個小小的「s」和鎖頭,代表著你的數據像坐在一輛防彈豪華轎車里,即使穿越最危險的數位街區,也能安然無恙。

所以,下次當你安心地在網上購物、瀏覽或分享時,記得感謝這位神秘的數位守護者——SSL。它就像是一位不眠不休的守夜人,確保你的網絡冒險旅程既安全又順利。

為什麼要 SSL?

讓我們用一點幽默來談談 SSL 對 SEO(搜索引擎優化)的好處。

想象一下,搜索引擎(像是 Google 大佬)是一位非常、非常挑剔的美食評論家,而每個網站都像是一家爭取好評的餐廳。在這個比喻中,SSL 證書就好比是餐廳門口懸掛的那塊「衛生合格」牌匾。當 Google 大佬走進你的餐廳(也就是你的網站)時,首先他會看這塊牌匾。如果看到了 SSL 的「衛生合格」牌匾,他就會心情愉快地坐下,準備享用你精心準備的美食(也就是你的網站內容)。

在 SEO 的世界裡,Google 喜歡那些能提供安全、可靠用餐體驗的餐廳。有了 SSL,就意味著你的網站能保護用戶的數據安全,不會讓他們在享受你網站的美味內容時還得擔心個人信息泄露的食物中毒風險。因此,Google 更有可能將你的網站推薦給其他飢餓的網路遊客(也就是用戶),這就意味著更高的排名和更多的流量。

此外,就像顧客更傾向於選擇乾淨、安全的餐廳一樣,網絡用戶也更喜歡安全的網站。一個帶有 SSL 證書的網站就像是對顧客說:“來吧,放心地在這裡用餐,我們有最好的數位衛生條件!”這提升了用戶信任,降低了跳出率,而這些都是提升 SEO 排名的好東西。

所以,有了 SSL,就像給你的網站戴上了一頂閃亮的安全帽,既吸引了搜索引擎,也贏得了顧客的信任,這在網絡世界的美食競賽中可是極大的優勢哦!

開始設置

步驟 1: 申請公開證書

  1. 打開 AWS Certificate Manager

    • 在控制台中尋找並打開 AWS Certificate Manager (ACM)。
  2. 開始申請過程

    • 在 ACM 控制台中,點擊“Request a certificate”(申請一個證書)。
  3. 選擇公開證書類型

    • 選擇“Request a public certificate”(申請一個公開證書),然後點擊“Next”(下一步)。
  4. 添加域名

    • 輸入你想要保護的域名。也就是你剛剛申請的 Domain
    • 可以添加多個域名或子域名。
  5. 選擇驗證方法

    • 通常有兩種方法:DNS 驗證或郵件驗證。DNS 驗證通常更加方便快捷。
  6. 完成申請

    • 根據你選擇的驗證方法完成驗證過程。
    • 對於 DNS 驗證,你需要在域名的 DNS 記錄中添加一個 CNAME 記錄。
  7. 等待證書發行

    • 一旦完成驗證,ACM 將會發行證書。這過程可能需要一些時間。

步驟 2: 將證書設置到 Amazon CloudFront

  1. 打開 CloudFront 控制台

    • 返回 AWS 管理控制台,尋找並打開 CloudFront 服務。
  2. 編輯 Distribution

    • 點擊“Distribution Settings”( Distribution 設置 )來編輯它。
  3. 配置 SSL 證書

    • 在“SSL Certificate”(SSL 證書)選項中,選擇你剛剛在 ACM 中創建的證書。
    • 確保你選擇的是“Custom SSL Certificate”(自定義 SSL 證書)。
  4. 保存設置並部署

    • 保存你的配置,然後等待 CloudFront 更新你的 Distribution。這可能需要一些時間來生效。
  5. 測試配置

    • 一旦 CloudFront Distribution 更新完成,你可以通過訪問你的域名來測試 SSL 證書是否正常工作。

就是這樣!你現在已經成功地使用 AWS Certificate Manager 申請了一個公開證書,並將其與 AWS CloudFront 結合起來,為你的網站提供了 SSL 加密。這將幫助提升你網站的安全性和可信度,同時對於 SEO 也是一大加分點!

Have fun