本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 上執行 Blu Age 現代化工作負載的解決方案架構 AWS
解決方案會在 Amazon Elastic Container Service (Amazon ECS) 協調的 Docker
容器內的 Java 應用程式程式碼超出本指南的範圍。在高階,包裝函式 shell 指令碼會做為容器的進入點,並協調各種任務。在執行時間,ECS 任務定義透過使用原生整合搭配 AWS Secrets Manager和 參數存放區,提供環境中繼資料,例如 Amazon Simple Storage Service (Amazon S3) 儲存貯體 AWS Systems Manager。
下列架構旨在使用無伺服器執行現代化大型主機工作負載 AWS 服務,無需管理和維護內部部署基礎設施。

圖表顯示下列程序:
-
在 Amazon Elastic Container Registry (Amazon ECR) 中建立和存放容器映像。Amazon ECS 任務定義會使用映像標籤來參考映像。
-
使用下列其中一種 Elastic Load Balancing 資源來提供請求的進入點:
-
對於 HTTP 型服務,請使用 Application Load Balancer。這可讓 TLS 憑證在傳輸和應用程式運作狀態檢查時提供加密。
-
對於其他 服務,例如 IBM CICS,請使用 Network Load Balancer。這可透明地建立代理 TCP 連線 (第 4 層) 到 Amazon ECS 叢集中的容器。
注意
對於 Network Load Balancer,容器運作狀態檢查需要建立 TCP 連線。
-
-
在 Secrets Manager 或 參數存放區中存放環境組態,例如資料庫端點和登入資料。使用 Secrets Manager,您可以根據儲存的秘密數量和 API 呼叫來支付 。此服務最適合任何敏感資料,例如資料庫登入資料。使用 參數存放區時,標準參數和 API 互動的標準輸送量無需額外費用。此服務最適合其他非敏感資料,例如 Java 記錄參數。
-
使用 Amazon S3 存放任務輸入和輸出。堡壘包裝函式中的 AWS Command Line Interface (AWS CLI) 會處理容器與 Amazon S3 的整合。
PutObject
請求等 Amazon S3 事件可用來觸發工作流程,例如執行批次任務的 Amazon ECS 任務,或將輸出交付給下游消費者。 -
使用 Amazon Aurora PostgreSQL 相容版本取代大型主機資料庫引擎,例如 IBM Db2 或 IBM IMS。連線詳細資訊,例如端點和登入資料,會在執行時間提供給任務。現代化大型主機工作負載時最具挑戰性的層面之一,就是確保大型主機與應用程式現代化版本之間的輸入相符。很少有即時變更資料擷取 (CDC) 解決方案,可將資料從大型主機複寫到 PostgreSQL 等現代資料庫引擎。確保您充分了解現代化應用程式所需的資料,以及如何提供資料。
-
即時服務的任務定義包含容器映像的詳細資訊、哪些 TCP/IP 連接埠應呈現給負載平衡資源,以及在任何指定時間所需的容器數量。內建 Amazon ECS 部署斷路器
(AWS 部落格文章) 提供受管、滾動更新的部署機制,可消除管理服務部署的操作開銷。 -
批次任務的任務定義包含容器映像的詳細資訊,以及組態所需的任何環境變數。這些可以包括可用的資源 (例如 CPU、RAM 或暫時性儲存)、輸入、輸出和其他設定。
-
使用 Amazon S3 事件通知或 Amazon EventBridge 啟動工作流程。這些服務可以根據 Amazon S3 中的事件啟動 AWS Step Functions 工作流程或處理物件,例如任務將輸出物件寫入儲存貯體時。
-
使用 AWS Step Functions 包裝 Amazon ECS 中的批次任務操作。工作流程可以啟動批次任務、監控其進度,以及處理任何錯誤。
對於大型主機工作負載,可能需要一定程度的自訂。此架構旨在與常見使用案例相容,您可以將其擴展以支援許多需求。