AWS ECS + Fargate Spot:打造經濟實惠的定期任務執行方案
今天要跟各位分享一個超實用的 AWS 服務組合:ECS (Elastic Container Service) + Fargate Spot。這個組合特別適合執行定期任務,而且還能大幅降低成本。不論是數據處理、系統備份,還是定期報表生成,都非常適合! 為什麼選擇這個方案? 想像一下,如果你需要一個程式每三小時執行一次,每次只需要 2 分鐘,你會怎麼做?傳統做法可能是開一台 24 小時運作的伺服器,但這樣其實浪費了大量資源。而 ECS + Fargate Spot 方案的優勢在於: 按需使用:只在需要時才啟動容器 成本優勢:使用 Spot 機制可節省高達 70% 的費用 全託管:完全無需管理伺服器 完整建置步驟 步驟一:準備 Docker 映像 首先,我們需要把應用程式打包成 Docker 映像並上傳到 ECR: # 建立 ECR 倉庫 aws ecr create-repository --repository-name my-periodic-task # 登入 ECR aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 123456789012 .dkr.ecr.ap-northeast-1.amazonaws.com # 建立並推送映像 docker build -t my-periodic-task . docker tag my-periodic-task:latest 123456789012 .dkr.ecr.ap-northeast-1.amazonaws.com/my-periodic-task:latest docker push 123456789012 .dkr.ecr.ap-northeast-1.amazonaws.com/my-periodic-task:latest 步驟二:建立 ECS 集群 接下來,建立一個使用 Fargate Spot 的 ECS 集群: aws ecs create-cluster \ --cluster-name my-periodic-cluster \ --capacity-providers FARGATE_SPOT \...