AWS CloudFront 重點整理
CloudFront = AWS 的 CDN 服務。
白話來說,CloudFront 會把網站內容先快取到離使用者比較近的節點, 讓使用者讀取更快、延遲更低。
CloudFront 解決什麼問題?
| 問題 | CloudFront 怎麼解決 |
|---|---|
| 使用者離 S3 很遠 | 讓使用者連到最近的 Edge Location |
| 圖片、影片、檔案讀取慢 | 把內容快取在全球節點 |
| Origin 壓力太大 | 重複請求直接由快取回應 |
| 全球使用者延遲高 | 不用每次都回原始伺服器拿資料 |
| 擔心 DDoS 攻擊 | 可搭配 AWS Shield、AWS WAF 加強防護 |
CloudFront 怎麼運作?
使用者 ↓ 最近的 CloudFront Edge Location ↓ 檢查有沒有快取 有快取 ↓ 直接回傳給使用者 沒有快取 ↓ 回 Origin 取資料 ↓ 存到 Edge Location ↓ 回傳給使用者
簡單講:
第一次可能比較慢,因為 CloudFront 要回原始來源拿資料。
第二次開始就快,因為資料已經快取在使用者附近的節點。
Origin 是什麼?
Origin = CloudFront 背後真正的資料來源。
| Origin 類型 | 用途 |
|---|---|
| S3 Bucket | 放圖片、影片、檔案、靜態網站內容 |
| Private ALB | 連到 VPC 裡面的私有應用程式 |
| Private NLB | 連到 VPC 裡面的私有服務 |
| EC2 | 連到後端主機 |
| Public ALB | 連到公開的 Web 服務 |
| S3 Static Website | S3 啟用靜態網站後,作為 CloudFront 來源 |
| Custom HTTP Origin | 任何公開 HTTP 後端 |
S3 搭配 CloudFront
假設你的 S3 Bucket 在澳洲,使用者在美國。
美國使用者 ↓ 美國附近的 CloudFront Edge Location ↓ 第一次回澳洲 S3 取資料 ↓ 快取在美國 Edge Location ↓ 之後美國使用者直接從美國節點讀取
| 好處 | 說明 |
|---|---|
| 速度快 | 使用者連最近的節點 |
| 降低 S3 壓力 | 不用每次都打回 S3 |
| 全球加速 | 不同地區都有節點可快取內容 |
| 更安全 | 可用 OAC 限制只有 CloudFront 能讀 S3 |
OAC 是什麼?
OAC = Origin Access Control。
白話講,就是讓 S3 不要直接公開,而是只允許 CloudFront 存取。
使用者 ↓ CloudFront ↓ OAC 控制存取 ↓ S3 Bucket
這樣使用者就不能繞過 CloudFront 直接讀取 S3,安全性會比較好。
Cache 是什麼?
Cache 不是 Bucket。
Cache 是 CloudFront 放在 Edge Location 裡面的暫存資料副本。 它的目的不是永久儲存,而是加速讀取。
S3 Bucket ↓ 放原始檔案,例如 logo.png
第一次讀取時:
使用者 ↓ CloudFront Edge Location ↓ 沒有快取 ↓ 回 S3 Bucket 拿 logo.png ↓ 存一份到 Edge Location ↓ 回傳給使用者
第二次之後:
使用者 ↓ CloudFront Edge Location ↓ 直接從 Cache 回傳 logo.png
Bucket vs Cache
| 項目 | S3 Bucket | CloudFront Cache |
|---|---|---|
| 是什麼 | 原始資料存放地 | 暫存複本 |
| 放在哪 | AWS Region | Edge Location |
| 是否自己管理 | 是 | 大多由 CloudFront 管理 |
| 資料角色 | 正本 | 副本 |
| 目的 | 儲存資料 | 加速讀取 |
S3 Bucket 像總倉庫。
CloudFront Cache 像各地門市先放一批常用商品。
CloudFront vs S3 Cross-Region Replication
Cross-Region Replication 可以理解成建立指定區域的 S3 分倉。
它不是快取,而是真的把 S3 物件複製到另一個 Region。
東京 S3 Bucket ↓ 複製 新加坡 S3 Bucket
倉庫比喻
| 概念 | 比喻 |
|---|---|
| S3 Bucket | 原始總倉庫 |
| S3 Cross-Region Replication | 在另一個國家建立分倉 |
| CloudFront Cache | 各地門市暫放熱賣商品 |
Cross-Region Replication 重點
| 重點 | 說明 |
|---|---|
| 是真的複製資料 | 不是暫存,也不是快取 |
| 要指定 Region | 例如東京複製到新加坡 |
| 要有目標 Bucket | 不是自動全球都有 |
| 接近即時複製 | 但不是同步交易 |
| 適合備援 | 原區域出問題,另一區還有資料 |
| 適合跨區讀取 | 某些地區可以讀比較近的 Bucket |
CloudFront 和 S3 Cross-Region Replication 差異
| 項目 | CloudFront | S3 Cross-Region Replication |
|---|---|---|
| 主要用途 | 全球快取,加速讀取 | 跨區複製資料 |
| 核心概念 | CDN | Bucket 複製 |
| 適合資料 | 圖片、影片、網站檔案等靜態內容 | 需要同步到其他 Region 的資料 |
| 是否快取 | 會快取 | 不快取 |
| 範圍 | 全球 Edge Location | 你指定的 Region |
| 更新方式 | 快取到期後更新 | 接近即時複製 |
| 適合情境 | 全球使用者快速讀取內容 | 多區備援、跨區低延遲讀取 |
最簡單記法
| 服務 / 名詞 | 一句話 |
|---|---|
| CloudFront | 把內容快取到全球,讓使用者讀更快 |
| S3 Bucket | 原始資料的總倉庫 |
| CloudFront Cache | 放在邊緣節點的暫存副本 |
| S3 Cross-Region Replication | 把 S3 資料複製到另一個 Region |
| OAC | 讓 S3 只允許 CloudFront 存取 |
| Edge Location | 離使用者最近的快取節點 |
| Origin | CloudFront 背後真正取資料的來源 |
一句話總結
CloudFront 是全球快取服務,讓使用者從最近的節點讀取內容; S3 Cross-Region Replication 是跨區複製資料,可以理解成建立指定區域的分倉。
沒有留言:
張貼留言