情境
某家公司有一個可讓使用者上傳短影片的網路應用程式。
影片目前儲存在 Amazon EBS 磁碟上,並由客製化的辨識軟體進行分類分析。
網站包含靜態內容,流量有季節性尖峰。整體架構使用 Amazon EC2 Auto Scaling 群組作為前端 Web Application,以及另一組 EC2 Auto Scaling 群組處理 SQS 佇列中的影片分析工作。
公司希望重新打造架構以降低維運負擔,盡可能改採 AWS 受管服務,並移除對第三方軟體的依賴。
知識點
- Amazon S3 作為靜態網站或檔案儲存服務
- Amazon S3 Event Notifications → SQS / SNS 事件觸發
- AWS Lambda 的無伺服器運算
- Amazon Rekognition 的影像/影片分類能力
- SQS 佇列與 Lambda 的整合
- 降低維運負擔的架構設計原則(Serverless / Managed Services)

Amazon S3 靜態網站託管
Amazon S3 靜態網站代管功能允許您將僅包含靜態內容(HTML、CSS、JavaScript、影像等)的網站檔案直接存放在 S3 儲存貯體中,並透過專門的 S3 網站端點 (Website Endpoint) 提供服務。
靜態網站的特點是網頁內容在用戶請求時不會改變,所有處理都在用戶的瀏覽器(客戶端)進行,無需依賴伺服器端的應用程式(如 PHP、Python 或 Java)或資料庫。
Amazon S3 Event Notifications
Amazon S3 事件通知允許您在 S3 儲存貯體中發生特定事件時,接收即時通知。這項功能使您無需持續對儲存貯體進行輪詢(polling),即可自動觸發下游應用程式、服務或工作流程來響應資料變更,從而提高效率、降低延遲並減少營運成本。
事件通知是通過在儲存貯體上配置一個通知配置 (notification configuration) 來設定的,該配置指定了要監控的事件類型和訊息的發送目的地。
Amazon SQS
Amazon SQS 是一種安全、持久且高度可用的代管訊息佇列 (hosted queue) 服務。它的主要目的是解耦 (decouple) 分佈式軟體系統及其元件,使它們能夠獨立運行和擴展。
在一個分佈式訊息系統中,主要有三個部分:
- 生產者 (Producers):將訊息發送到佇列的元件。
- 佇列 (Queue):由 Amazon SQS 伺服器冗餘存儲訊息。
- 消費者 (Consumers):從佇列接收和處理訊息的元件。
SQS 透過將元件之間的資料傳輸和處理任務非同步化,從而提高系統的可靠性 (Reliability)、彈性 (Scalability) 和可用性 (Availability)。
AWS Lambda
AWS Lambda 是一種運算服務 (compute service),它允許您執行程式碼而無需管理伺服器。您的程式碼以 Lambda 函數 (Lambda functions) 的形式運行,AWS 會負責所有運算資源的管理,包括伺服器和作業系統維護、容量佈建、自動擴展和日誌記錄。
Lambda 的核心特性是事件驅動 (event-driven)。這意味著您的函數會被事件源和 AWS 服務所觸發,例如:
- 上傳檔案到 Amazon S3 時。
- 資料流 (Data Stream) 發生變化時(如 Amazon Kinesis)。
- 收到 Amazon API Gateway 的 HTTP 請求時。
您只需專注於編寫您的業務邏輯程式碼,Lambda 會根據需求自動且精準地擴展或縮減。
Amazon Rekognition 文字偵測簡介與功能
Amazon Rekognition 的文字偵測功能能夠在圖像和影片中識別出文字,並將其轉換為機器可讀 (machine-readable) 的格式。這使得您可以利用圖像和影片中的視覺資訊來增強應用程式的功能。
該服務採用深度學習技術,支援大多數字體,包括高度風格化的字體,並且能夠處理影像中旋轉或扭曲的文字。
使用到的AWS服務
- Amazon S3(靜態網站託管、影片儲存)
- Amazon SQS(影片處理佇列)
- AWS Lambda(無伺服器影片分析)
- Amazon Rekognition(影片分析)
結論
S3 託管 Web App + S3 儲存影片 + Event 通知 → SQS → Lambda → Rekognition
完全符合需求:
- S3 靜態網站不需維運伺服器
- S3 儲存影片是雲端原生最佳做法
- Event + SQS + Lambda 是 Serverless pipeline
- Lambda 呼叫 Rekognition 移除第三方軟體
- 幾乎零維運負擔
參考連結
- Amazon S3 靜態網站託管
https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html - Amazon S3 Event Notifications
https://docs.aws.amazon.com/AmazonS3/latest/userguide/NotificationHowTo.html - Amazon SQS
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html - AWS Lambda
https://docs.aws.amazon.com/lambda/latest/dg/welcome.html - Amazon Rekognition
https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html
S3 → Lambda → Rekognition 範例
https://docs.aws.amazon.com/rekognition/latest/dg/text-detection.html


