自我介紹
大家好~我Ducky,現在在一家雲端公司擔任技術支援工程師,平時就和各種雲、CDN產品服務打交道,連ChatGPT都覺得我是個稱職的客服唷(?)

不過呢,雖然 AWS 的問題在我工作中經常被客戶問起,但它對我來說卻像一位「熟悉的陌生人」—— 我們常擦肩而過,卻沒真正坐下來好好聊過天(因為我只和AWS的support人員聊聊天,把問題解決後,我就沒事了)。
趁著這次鐵人賽,我決定帶著大家一起多多認識這位不熟悉卻眼熟的老朋友!
放心,這趟學習的旅程不會用死板的技術文件開場,而是用輕鬆愉快的故事方式展開旅程,在接下來的每個篇章裡,總會出現一些「麻煩角色」—— 機車的老闆、雞婆的同事、或是挑剔的客戶 —— 他們會丟出各種任務和難題,就像遊戲裡的關卡與怪物。
哲學家弗里德里希.尼采(Friedrich Nietzsche):「凡殺不死我的,必使我更強大」
對,雖然你可能會更加強大,但你也會被那些「殺不死你的事務」搞得精疲力勁,所以我們先一起闖關一次,再來你一定能對這些常用的概念更得心應手!
這一次,我們不用獨自升級,而是一起打怪、一起升級,邊玩邊學,把 AWS 變成熟悉的好夥伴! :3(雖然它還是會跟你收$$)
使用的工具總覽:
在這 30 天的雲端冒險中,我們將使用到超過 15 種 AWS 服務,涵蓋運算、儲存、網路、資料庫、自動化與監控等領域,包括:
-
運算與執行 (Compute & Execution):Lambda、API Gateway
-
儲存與資料管理 (Storage & Data Management):S3、DynamoDB
-
網路與流量管理 (Networking & Traffic Management):Route 53、CloudFront(CDN)
-
安全與身分驗證 (Security & Identity):IAM、WAF、Cognito、ACM(SSL 憑證)
-
自動化與事件驅動 (Automation & Event-Driven):Step Functions、EventBridge、SES、CodePipeline、CodeBuild
-
監控與追蹤 (Monitoring & Tracking):CloudWatch、CloudWatch Logs
-
分析與報告 (Analytics & Reporting):Athena(SQL 查詢 S3 上的檔案,進行數據分析)、QuickSight(將 Athena 的分析結果可視化,生成報表)
你能得到什麼?
在這30天裡,我們會用AWS的各種服務,來組合一個具有各種自動化功能的網頁,在這趟旅程結束後,你可以得到下面的知識:
-
一個好用的小網站:
- 從靜態頁面開始架構,到具備登入、資料處理、自動通知、防禦與監控的完整系統
-
理解 AWS 架構設計思維:
- 知道每個服務的角色、彼此的串接方式,並能手繪系統架構圖(這要自己練習唷)
-
掌握自動化流程設計:
- 用 Lambda + Step Functions 實現資料處理、防禦、定時任務與成本最佳化
-
★具備雲端除錯與 Troubleshooting 能力:
- 能讀懂錯誤訊息、追蹤資料流、找出瓶頸並修正設定(Log排查或是思路檢查的部分,可能會放在後話,不會在主篇章內)
-
有能力用 AWS 工具打造「可用、可擴充、可維運」的系統
--------------------- 來囉 來囉 以下開始進入正題 ---------------------
一、前言
首先,我們這次的旅程要使用的是「Serverless架構」,那什麼是Serverless呢?
想像你現在開了一家飲料店:
- 傳統架構就像是「**自己買原料、自己煮茶、自己清洗設備、清潔打掃」**→ 所有事都自己來,除了很累之外、要規劃的事情也超級多。
- Serverless 架構就像是**「租了一台咖啡機、洗碗機、掃地/拖地機器人」**,你只要倒入茶葉和糖,按下按鈕,機器會自動沖泡、出杯,客戶自取,飲用完後,客戶使用完後自助放進洗完機內清洗;然後掃除機器人們會主動把環境打掃乾淨 → 總之就是「輕輕鬆鬆地開店」!
導入Srverless架構後,你只要專心「調配飲料的口味」(寫業務邏輯),做一些「創造價值」的工作內容就好;日常的「煮茶洗杯」(伺服器維運)都由AWS 幫你處理好。
二、什麼樣的網站適合Serverless架構?
項目 |
傳統做法(EC2為主) |
Serverless 做法 |
架設成本 |
要買 EC2、EBS、自己安裝 Web Server、維護系統 |
S3 + CloudFront 幾分鐘就能上線 |
擴展性 |
遇到流量高峰要自己加台 EC2、改 LB 設定 |
API Gateway / Lambda / DynamoDB 自動水平擴展 |
備份策略 |
自己寫 Cron Job 備份、設定 Snapshots |
AWS Backup + S3 Lifecycle 一鍵搞定 |
高可用性 |
要自己建多 AZ 架構、設監控、寫自動修復 |
天生高可用,服務分散式架構,CloudFront 全球節點加速 |
成本模式 |
無論有沒有人來訪問,EC2 一直計費 |
Serverless 按量付費,沒有人訪問幾乎零成本 |
運維壓力 |
系統升級、Patch、安全更新自己處理 |
AWS 全權代管,不用關心伺服器 |
範例場景 |
會員系統、需要登入驗證的網站、大型電商、網站遊戲伺服器、金融 / 醫療 / 高合規需求的網站、傳統 CMS(WordPress, Joomla)、ERP / CRM 企業內部系統 |
靜態官網 / 作品集 / 部落格、Landing Page / 行銷活動網站、文件網站(Docs / API Docs)、小型 API 系統 / Serverless API、全球性內容分發(新聞、媒體播放)、個人簡歷 / Side Project |
三、要使用的服務
注意:Serverless 並不是「不用伺服器」,而是「不需要你管理伺服器」。
在這個旅程中,我們會使用到以下AWS的服務,來幫我們做Serverless架構:
-
S3 (Simple Storage Service): 存放靜態網站檔案、會員上傳的檔案、以及作為後端資料處理的儲存空間。
-
CloudFront: 作為 CDN,將網站內容分發到全球邊緣節點,提供網頁加速與快取,並保護網站。
-
API Gateway: 建立 RESTful API 和 WebSocket,作為應用程式的統一入口,接收前端請求並轉發給後端服務。
-
Lambda: 執行後端程式碼,負責資料處理、會員流程、檔案壓縮、通知發送等所有無伺服器邏輯。
-
DynamoDB: 儲存會員資料、偏好設定、活動紀錄和即時聊天訊息等非關聯式數據。
-
Cognito: 提供會員註冊、登入、身分驗證和權限管理功能,確保只有授權使用者能存取。
-
SES (Simple Email Service): 寄送會員驗證信、註冊完成通知信和活動更新郵件。
-
Step Functions: 協調和編排多個 Lambda 函數,將獨立步驟整合成一個可監控、具備容錯能力的自動化工作流。
-
CloudWatch: 監控應用程式的運行狀態,收集效能指標(例如 API 呼叫次數、Lambda 執行時間)和日誌。
-
CloudTrail: 記錄所有 AWS 帳號活動,用於安全審計、合規性檢查和故障排除。
-
WAF (Web Application Firewall): 保護網站和 API,抵禦常見的網路攻擊,例如 SQL 注入和跨站腳本攻擊。
-
ACM (Amazon Certificate Manager): 建立和管理 SSL/TLS 憑證,用於保護網域和網站的通訊安全。
-
Route 53: 建立和管理網站的 DNS 紀錄,將網域名稱轉換為 IP 位址。