簡單地說可以當垃圾桶也可以是百寶箱,只要是檔案都能放。例如:
什麼都能放,聽起來是很萬能沒錯。但人無完人,總是有做不到的:
這裡要講個重點了。在 AWS 的所有服務中,S3 是唯一一個 SLA(Service Level Agreement)達到 99.999999999%(11 個 9)的服務。這是什麼概念?就是一年 365 天,它只能掛機 31.5 毫秒。對,你沒看錯,是毫秒。這種可靠性已經到了什麼程度?比你的網路連線、比你的電腦、比你的咖啡機都還要穩定。如果 S3 掛了,可能世界上大半的網站都會跟著掛。
冷知識:
等等,S3 可以架網站?沒錯!你以為 S3 只能存檔案?
S3 其實有個很少人知道的功能叫做 Static Website Hosting。簡單來說,你可以把你的靜態網站直接丟到 S3 上,它就會幫你 serve 網頁,完全不需要任何伺服器。這功能就像是發現你家的冰箱其實還能煮飯一樣驚喜。
這時候可能有人會問:「阿不是有很多便宜的虛擬主機嗎?為什麼要用 S3?」
好問題!讓我們來比較一下 EC2 和 S3 做 Web hosting 的差異:
究竟是奢華的 AWS EC2 更能展現彈性與效能,還是平價的 AWS S3 更具性價比?
EC2 | S3 |
---|---|
- 最便宜的 t2.nano 實例:每月約 $4.2 ~ 4.5 USD- 加上 EBS 儲存空間費用- 流量費用另計- 7 x 24 運行,不管有沒有人訪問都在燒錢 | - 儲存費用:每 GB 約 $0.023 USD/月- 請求費用:每 1000 次 GET 請求約 $0.0004 USD- 流量費用:前 1GB 免費,之後每 GB $0.09 USD- 只有在被訪問時才收費 |
S3 完全沒有運算資源的花費,如果你的網站是靜態的(純 HTML/CSS/JS),而且流量不大,S3 可能不到 EC2 的 1/10 成本。 |
EC2 | S3 |
---|---|
- SLA:99.99%(4 個 9)- 需要你自己維護作業系統- 需要處理安全性更新- 伺服器可能因為各種原因重開機 | - SLA:99.999999999%(11 個 9)- 完全託管,不用你操心維護- 全球多個資料中心自動備份- 基本上除非世界末日,不然不會掛 |
不用一直 patch 就是爽,S3 的穩定性完勝 EC2,而且你不用半夜被監控系統吵醒。 |
EC2 | S3 |
---|---|
- 可以裝軟體,彈性高- 可以處理動態頁面- 想怎麼調就怎麼調- 負載受限於主機規格- 買的硬碟,大部份是閒置的 | - 只能放靜態檔案,但速度快- 內建 Gzip 壓縮- 無限儲存空間,用多少付多少- 不用擔心主機規格 |
這個很重要
EC2 | S3 |
---|---|
- 需要預先規劃實例大小- 流量暴增時需要手動或自動擴展- 可能遇到資源不足的問題 | - 自動擴展,無上限- 搭配 CDN 自動分流,流量再大也不怕 |
聽起來用 S3 來架站便宜、免管理,遇到大流量又有彈性。幾乎是完美啦!但如果你需要後端邏輯、資料庫操作、用戶登入等功能,還是乖乖用 EC2 或其他服務。但如果你的需求很簡單,只是想要一個穩定、便宜、快速的靜態網站,S3 絕對是你的好選擇。
工程師的價值不在於用最複雜的技術,而在於用最適合的技術解決問題。有時候,簡單就是最好的解決方案。
下一篇來介紹 S3 的使用方法及 Web Hosting 的使用方法
參考資料:Amazon S3 使用者指南官方文件 - https://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/Welcome.html