iT邦幫忙

2025 iThome 鐵人賽

DAY 13
1
Build on AWS

AWS 雲原生,學起來比泡咖啡還快系列 第 13

DAY13 - Task Definition:演員分配劇本

  • 分享至 

  • xImage
  •  

建立 Task Definition

任務名稱可自行定義
Task Definition


ECS Task 設定選項介紹

1️⃣ 基礎設施需求

基礎設施需求

啟動類型

  • AWS Fargate:無伺服器計算,AWS 自動管理基礎設施,無需管理 EC2 實例。
  • Amazon EC2 執行個體:使用自我管理的 EC2 執行個體來運行容器,需要管理底層的 EC2。

建議:若不想管理底層基礎設施,選擇 AWS Fargate;如果需要更多控制權或使用現有 EC2,選擇 Amazon EC2 執行個體。

作業系統 / 架構

  • Linux / x86_64:在 Linux 操作系統上運行容器,並使用 x86_64 架構的主機。

網路模式

  • awsvpc:每個任務有自己的 ENI(Elastic Network Interface),容器網路獨立,Fargate 唯一支援網路模式。
  • bridge:容器共享 EC2 執行個體的網路介面,適用於 EC2。
  • host:容器直接使用 EC2 網路堆疊,提升性能,但容器間無隔離。
  • none:容器無網路連接,完全隔離。
  • default:ECS 根據啟動類型自動選擇,通常適用於基本需求。

小提示

  • awsvpc:適合高安全性需求和獨立網路連接
  • bridge:簡單配置容器間網路共享
  • host:最佳性能
  • none:完全隔離
  • default:自動選擇模式

任務尺寸

  • 指定每個任務的 CPU記憶體(例如 1 vCPU + 3 GB 記憶體)。

建議:依應用需求選擇適當 CPU 與記憶體配置,負載重選更多資源。

IAM 角色

  • 任務 IAM 角色:授權容器向 AWS 發送 API 請求。
  • 任務執行 IAM 角色:容器代理使用此角色讀取映像或推送日誌,若未創建,AWS 會自動生成 ecsTaskExecutionRole

任務放置(可選)

  • 設定任務如何放置在 EC2 主機上。

注意:Fargate 不支援自訂放置策略,只能使用 awsvpc 網路模式。


2️⃣ 容器設定選項介紹

https://ithelp.ithome.com.tw/upload/images/20250915/20145462YkiBbqpWJs.png

基本容器

  • 容器名稱:最多 255 字元,用於識別容器。
  • 容器映像 URI:指定容器映像位置,如 docker.io/nginx:latest
  • 私有登錄檔:使用 Secrets Manager 儲存憑證進行私有登錄認證。
  • 連接埠映射:設定容器端口與主機或其他容器通信。
  • 唯讀根檔案系統:提升安全性,避免修改系統檔案。

資源配置限制(條件式)

  • 硬性限制:超過限制容器會被終止。
  • 軟性限制:容器在限制內運行,但不會強制終止。

小提示

  • 唯讀根檔案系統可增加安全性
  • 資源配置限制可防止資源爭用或容器崩潰

3️⃣ 環境變數設定選項(選用)

https://ithelp.ithome.com.tw/upload/images/20250915/2014546285au3gBEE1.png

  • 個別新增:手動新增索引鍵/值組
  • 從檔案新增:從 S3 檔案批量新增
  • 記錄設定:設定容器日誌目的地,通常是 CloudWatch Logs
    • awslogs-group:日誌組名稱
    • awslogs-region:區域
    • awslogs-stream-prefix:日誌流前綴
    • awslogs-create-group:是否自動建立日誌組
    • mode:非阻塞模式
    • max-buffer-size:最大緩衝大小

小提示

  • 使用環境變數存儲配置或密鑰
  • 日誌設定使容器日誌集中管理

4️⃣ 容器進階設定選項(選用)

https://ithelp.ithome.com.tw/upload/images/20250915/201454621W1D2c7JZE.png

  • 重新啟動政策:容器失敗後自動重啟
  • 忽略的結束代碼:設定哪些代碼不觸發重啟
  • 嘗試重設期間:容器在重啟前等待時間(60-1800 秒)
  • 運作狀態檢查:Health Check,確保容器健康
  • 啟動相依性排序:設定容器啟動順序
  • 容器逾時:啟動或停止超時強制終止
  • 容器網路設定:設定 awsvpc/bridge/host
  • Docker 組態:登錄設定、掛載點等
  • 資源限制 (Ulimits):如打開檔案數量、進程數量
  • Docker 標籤:標示容器或映像版本

小提示

  • 重新啟動政策提升高可用性
  • 運作狀態檢查與啟動相依性排序確保健康運行

5️⃣ 儲存設定選項(選用)

https://ithelp.ithome.com.tw/upload/images/20250915/20145462LMIT0rEhN4.png

  • 磁碟區:為容器新增儲存空間
  • 磁碟區名稱:最多 255 字母、數字、連字號或底線
  • 組態類型:Docker、EFS、FSx for Windows
  • 磁碟區類型:綁定掛載
  • 來源路徑與容器掛載點:指定容器內儲存位置
  • 唯讀選項:防止容器修改資料
  • 來源磁碟區與來源容器:實現容器間磁碟共享

小提示

  • 磁碟區可支援多種存儲方案
  • 唯讀選項增強資料穩定性與安全性

6️⃣ 監控設定選項(選用)

https://ithelp.ithome.com.tw/upload/images/20250915/20145462rc0QhEjfvx.png

  • ECS 支援 OpenTelemetry(ADOT)收集應用追蹤與指標
  • 附屬資源配置:自動加入 Sidecar 容器,建議 CPU/記憶體
  • 追蹤集合(Tracing):將追蹤資料送到 X-Ray
  • 指標集合(Metrics):將指標送到 CloudWatch 或 Prometheus

小提示

  • 啟用後 ECS 自動部署 Sidecar
  • X-Ray 與 CloudWatch 會產生額外費用,依數據量計算

上一篇
DAY12 - 打造 ECS Cluster:先有舞台才有表演
下一篇
DAY14 - ALB 入場:觀眾終於能看到服務
系列文
AWS 雲原生,學起來比泡咖啡還快20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言