選擇 AWS 應用程式整合服務 - 選擇 AWS 應用程式整合服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

選擇 AWS 應用程式整合服務

採取第一步

用途

協助判斷哪些 AWS 應用程式整合服務最適合您的工作負載。

上次更新

2025 年 4 月 16 日

涵蓋的服務

簡介

應用程式整合是一套服務,可讓微服務、分散式系統和無伺服器應用程式內的解耦元件進行通訊。Amazon Web Services (AWS) 提供超過 50 個應用程式整合服務,以支援在雲端中執行的各種工作負載。

選擇最適合您組織和工作負載的整合服務可能會變得困難。此決策指南將協助您提出正確的問題,以探索您的需求,並提供有關如何評估和選擇適合您工作負載之整合服務的明確指引。

此 8½ 分鐘剪輯來自企業策略 AWS 總監 Gregor Hohpe 在 AWS re:Invent 2022 的簡報一小時錄音。它提供可用 AWS 應用程式整合服務的概觀。

了解

現代化的主要優點之一是能夠轉移營運責任,讓您能夠釋放資源,以執行更多附加價值和創新導向的活動。

從您在 Amazon Elastic Compute Cloud (Amazon EC2) 上託管訊息中介裝置,到管理所有基礎基礎設施的無伺服器產品,各有不同層級的現代化共同責任選項。

顯示 AWS 應用程式整合服務之間操作責任的圖表。

當您開始探索並了解您的條件、環境和 AWS 提供的整合服務套件時,我們建議您檢閱一些最佳實務。無論您選擇哪個服務 (或一套服務),這些最佳實務都適用。

了解您環境中的整合

通常,某些組織花費的時間會比他們想要的時間還長,以維護開放原始碼整合。我們建議您在進行這些投資時考慮社群來源和/或來自企業或基礎的支援。在這些專案中的投資不僅財務,還投資知識資本和潛在的技術負債,因為這些元件和相關聯的整合通常需要更新。如需詳細資訊,請參閱AWS 開放原始碼部落格

了解您的架構特性

支援各種架構的能力非常重要。我們建議您使用 AWS Well-Architected Framework 做為指南,協助您了解在建置架構時所做的決策 AWS。此外,使用 Well-Architected Framework 可讓您了解在 雲端中設計和操作可靠、可擴展、安全、高效且經濟實惠系統的架構最佳實務。

使用整合服務的組合

如果您使用專用服務,則服務組合可能最適合您的使用案例。以下列出 AWS 客戶使用 服務組合的幾種常見方式。

  • 將 Amazon EventBridge 或 Amazon Simple Notification Service (Amazon SNS) 事件路由至 Amazon Simple Queue Service (Amazon SQS) 佇列,做為下游消費者的緩衝區。

  • 直接從串流 (Amazon Kinesis Data Streams 或 Amazon Managed Streaming for Apache Kafka (Amazon MSK)) 或使用 EventBridge 管道的佇列 (Amazon SQS 或 Amazon MQ) 提取事件,並將事件傳送至 EventBridge 匯流排以推送給消費者。

  • 將 EventBridge 或 Amazon SNS 事件路由至 Kinesis Data Streams 或 Amazon MSK,以收集和檢視分析。

定義

清楚了解您的條件、環境、策略方向和可用服務 (包括部署託管和受管模式) 之後,您需要識別整合需求。如果您要遷移到現有的整合平台或訊息中介裝置,您可能已經知道一些需求。不過,如果您遷移到雲端環境,您需要確定這些要求將如何變更。

訊息或串流平台

這些平台預期可實現特定業務功能。在考慮您需要哪些功能時,請使用下列範例使用案例。

範例 1:

假設一家保險公司收到不同的索賠,做為具有不同業務規則的不同索賠類型 (自動、家庭或生活) 的訊息。這可能表示訊息消費者應該具有根據訊息中的標頭屬性將宣告路由到不同目的地的功能。

範例 2:

考慮一家航空公司,其中航班狀態更新需要使用進階訊息佇列通訊協定 (AMQP) 等通訊協定通知所有連接的系統,例如包機或大門操作。功能和業務使用案例基本概念的大問題是,什麼構成最適合的訊息平台。我們有多種選擇可以根據使用案例來判斷平台的適用性。

  • 市場採用:這個平台被巨大的客戶社群廣泛採用,非常適合大多數的使用案例。它透過活躍的支援社群來嘗試和測試可能遇到的任何問題。這是低風險的決策,具有足夠的訓練可供開發資源使用。

  • 最適合使用案例:這些平台將針對特定產業使用案例量身打造,例如航空公司、物流或醫療保健。它們可能最適合具有現成範本可供採用的使用案例。這些平台很容易入門,但可能缺乏市場採用程度和靈活性。採用這種類型的平台可能需要大量的時間和資源來驗證和建置內部專業知識。

  • 現代:這些平台使用新一代架構建置,以解決雲端規模部署、多租戶、災難復原和無伺服器定價類型的問題。使用此類型的平台可能需要對工作負載進行一些重構,以獲得長期可行性。它使用雲端原生平台,並著重於使用現代應用程式架構良好的原則。

範例 3:

如果簡訊平台是需要多區域的大型貸款處理工作流程的一部分,則簡訊平台也需要支援相同的業務需求。如果企業在下雨日情況下需要復原和回復至先前狀態的能力,基礎訊息或串流平台也需要具備一些快照或重播功能來重新建立系統狀態的能力。

您選擇的整合平台應有助於非同步處理貸款應用程式,或做為多步驟媒體處理工作流程的存放和轉送管道。業務流程的關鍵性將決定傳訊或串流平台所需的功能。

考慮

在考量雲端中的主要應用程式整合架構時,有不同的方法來判斷每個整合點的功能需求。

以下是選擇應用程式整合服務時需要考慮的一些條件。

Managed service and operation overhead

考慮移至雲端,透過標準化轉移營運負擔的受管服務來降低營運成本 AWS。較高的抽象程度可讓開發人員和運算子專注於自己的唯一附加價值活動,而不是未區分的任務。

Open source

考慮開放原始碼技術的標準化。開放原始碼可讓組織找到正確的技能,並避免鎖定的一些風險。

在開放原始碼生態系統中進行錯誤的選擇,可能會導致鎖定在抽象和原生整合中。此外,讓不同的開放原始碼元件一起運作的責任通常取決於做出選擇的組織。這可能會導致組織花費大量時間來維護開放原始碼整合。

Workload characteristics

選擇正確的整合服務時,請務必了解應用程式之間需要傳送的訊息特性。訊息格式、大小、保留和優先順序等關鍵特性可以推動整合服務的決策。

有些整合服務更適合小型文字型訊息,有些則設計為支援多種格式,例如文字和二進位,並提供更大的訊息大小。在某些情況下,除了排序訊息之外,需要具有重播功能也可能是重要的因素。

例如,可以使用 Amazon SNS 和 Amazon SQS 提供的 FIFO 功能來實作訊息排序。還考慮採用提取或推送型架構,例如 EventBridge 或 Amazon SNS 以非同步方式叫用 Lambda 函數。

提取型架構可以使用 Amazon SQS 或 Kinesis Data Streams 等服務,其中訊息存放在佇列或串流上,然後可由取用系統擷取。Amazon MQ 等傳訊服務提供更大的訊息承載相關功能,並具有無限的保留。不過,它們不提供重播功能。

Rapid iteration and feature velocity

如果您的主要重點是快速建置和反覆運算,則無伺服器服務可能會提供最佳價值。無伺服器服務可讓您建置應用程式,而無需管理基礎設施。它們提供受管功能和整合,以減少撰寫鍋盤程式碼所花費的時間。

測試新想法時無伺服器的另一個好處是這些服務提供以用量為基礎的定價。您的程式碼只會在叫用服務時執行,因此實驗不需要預先投資。

Application portability

許多應用程式使用某些通訊協定 - 例如進階訊息佇列通訊協定 (AMQP) 或 MQ 遙測傳輸 (MQTT) - 來連線至簡訊服務。或者,它們有一些使用特定簡訊通訊協定的程式庫相依性。這類程式庫或架構的範例包括 Spring Boot、Celery 或 MassTransit。

您可能因為不同的原因而想要保留這類應用程式。在這些情況下,整合服務的選擇也取決於對必要通訊協定的支援,讓您的應用程式具有可攜性。

Automation portability

您可能需要擁有提供與基礎設施和部署工具相容性的服務 - 並執行與內部部署託管相同的整合系統 (例如 Apache ActiveMQ、RabbitMQ 和 Apache Kafka)。

受管開放原始碼服務 (例如 Amazon MQ 和 Amazon MSK) 提供雲端的優勢,同時與許多用於內部部署的熱門部署工具相容。

如果重構應用程式是選項,您可以受益於使用無伺服器服務以原生方式提供此功能,以及與各種 AWS 服務進行豐富的整合。

Organization size and skills

在決定正確的整合服務時,組織的技能是主要因素。如果您的團隊熟悉自我管理產品,且符合您的需求,則擁有相同 的受管服務可提供影響最小的路徑。這樣做可協助您套用服務的最佳實務,並專注於增加價值的活動。

選擇

現在您知道將用於評估應用程式整合需求的條件,您就可以選擇適合您環境中工作負載的 AWS 服務或 服務。

服務類型 您會何時使用它? 它針對什麼進行最佳化? 相關聯的 服務

容量

當您需要解耦發佈者和訂閱者,並將事件同時傳送給多個訂閱者時,請使用 。

針對發佈者和訂閱者之間的非同步、鬆散耦合通訊進行最佳化。事件在訊息路由和交付方面提供靈活性,非常適合事件驅動型架構,其中事件在啟動動作或工作流程中扮演了核心角色。

Amazon EventBridge

Amazon SNS

簡訊

當您需要 pub/sub 訊息同時將訊息廣播給多個收件人時,請使用 ;當您需要在元件之間進行可靠且非同步的通訊時,請使用 point-to-point

針對分散式元件之間的高輸送量、可擴展性和可靠的非同步 pub/sub point-to-point傳訊進行最佳化。

Amazon SNS

Amazon SQS

Amazon MQ

串流

在涉及處理和處理即時串流資料的案例中,使用串流服務,例如 Amazon Kinesis Data Streams 和 Amazon Managed Streaming for Apache Kafka (MSK)。

針對需要即時分析、即時監控、資料探勘和其他需要處理高速資料串流的應用程式的使用案例,最佳化了大量即時串流資料的擷取、處理和分析。

Amazon Kinesis Data Streams

Amazon MSK

工作流程

當您需要以有條不紊且可擴展的方式設計、協調和管理工作流程或任務序列時,請使用 。

針對業務流程管理、應用程式協同運作、資料管道自動化和微服務協調等使用案例進行最佳化。工作流程抽象基礎基礎設施的複雜性,可讓您專注於有效設計和管理工作流程。它們能夠處理相依性和排序,允許平行處理和條件式分支,同時提供容錯能力、錯誤處理和重試,以確保可靠的工作流程執行。

AWS Step Functions

Amazon MWAA

排程

當您需要自動化資料處理、備份或系統運作狀態檢查等例行任務時,請使用排程。任務通常需要在特定時間或間隔執行,例如每天晚上、每小時或每分鐘。

針對具有內建重試邏輯的可靠時間型任務進行最佳化。適合需要精確排程以及與各種 AWS 服務整合的工作流程。

Amazon EventBridge

使用

您現在應該清楚了解每個 AWS 應用程式整合服務的功能,以及哪個服務可能適合您。為了探索如何使用和進一步了解每個可用的 AWS 應用程式整合服務,我們提供了途徑來探索每個服務的運作方式。下一節提供深入文件、實作教學課程和資源的連結,協助您開始使用。

Amazon SNS
  • 使用 Amazon SNS 和 Amazon SQS 篩選發佈至主題的訊息

    了解如何使用 Amazon SNS 的訊息篩選功能。

    教學課程入門

  • Amazon SNS - 故障診斷

    了解如何檢視組態資訊、監控程序,以及收集有關 Amazon SNS 的診斷資料。

    探索指南

  • 使用 Amazon DynamoDB 和 Amazon SNS 建置輪換遊戲

    了解如何使用 Amazon DynamoDB 和 Amazon Amazon SNS 建置多玩家輪換遊戲。

    教學課程入門

  • 建置事件驅動型架構

    了解如何使用 Amazon SNS 做為我們的發佈服務,並以訂閱者身分使用 Amazon SQS 建置簡單的 pub/sub 實作。

    探索指南

  • 使用 Amazon SNS FIFO 封存和重播訊息

    了解如何封存和重播發佈至 Amazon SNS FIFO 的訊息,這在故障復原和狀態複寫案例中非常有用。

    閱讀部落格文章

Amazon SQS
  • Amazon SQS 入門

    本指南說明如何使用 Amazon SQS 主控台管理佇列和訊息。

    探索指南

  • 傳送散發事件通知

    了解如何使用 Amazon SNS 和 Amazon SQS 實作廣發訊息案例。

    教學課程入門

  • 協調佇列型微服務

    了解如何設計和執行無伺服器工作流程,以協調以訊息佇列為基礎的微服務。

    教學課程入門

  • 在分散式應用程式之間傳送訊息

    使用 Amazon SQS 主控台建立和設定訊息佇列、傳送訊息、接收和刪除該訊息,然後刪除佇列。

    教學課程入門

Amazon EventBridge
  • 開始使用 Amazon EventBridge

    EventBridge 的基礎是建立將事件路由至某個目標的規則。在本指南中,您會建立基本規則。

    探索指南

  • Amazon EventBridge 入門教學課程

    這些教學課程將協助您探索 EventBridge 的功能,以及如何使用這些功能。

    開始使用教學課程

  • 與其他 整合 AWS 服務

    下列教學課程說明如何將 EventBridge 與其他 整合 AWS 服務。

    開始使用教學課程

  • 建置事件驅動型架構

    了解事件驅動設計的基本概念、如何選擇 AWS 服務 適合任務的方式,以及如何針對成本和效能進行最佳化。

    教學課程入門

  • 使用 Amazon EventBridge 建置事件驅動型應用程式

    了解如何透過連接多個應用程式來建置事件驅動型應用程式,包括 SaaS 應用程式 AWS 服務,以及使用 Amazon EventBridge 提供的無伺服器事件匯流排。

    教學課程入門

  • 適用於 Amazon EventBridge 的 Kafka 連接器

    此連接器可讓您將記錄從一或多個 Kafka 主題轉換為事件,並將這些事件傳送至您選擇的事件匯流排。

    探索指南

  • 介紹 Amazon EventBridge Event Buss 的跨帳戶目標

    了解如何使用事件匯流排將事件直接傳送到其他 中的目標 AWS 帳戶,例如 Amazon SQS、Amazon SNS 和 AWS Lambda。

    閱讀部落格文章

Amazon MQ
  • 建立連線的訊息代理程式

    了解如何設定 Amazon MQ 訊息代理程式並連接 Java 應用程式,而無需重寫程式碼。

    教學課程入門

  • 遷移至雲端中的訊息中介裝置

    Amazon MQ 可讓您輕鬆遷移至雲端中的訊息中介裝置,例如 Apache ActiveMQ 和 RabbitMQ。

    閱讀指南

  • 建立並連線至 RabbitMQ 代理程式

    了解如何使用 AWS 管理主控台 來建立 RabbitMQ 代理程式,並將您的應用程式連接到該代理程式。

    教學課程入門

  • RabbitMQ 研討會

    本研討會是實驗室的集合,涵蓋使用 RabbitMQ 的不同層面和傳訊模式。

    研討會入門

  • 在 Amazon MQ for RabbitMQ 中介紹規定人數佇列

    探索搭配 RabbitMQ 使用規定人數佇列如何提供更高的可用性和資料安全性。

    閱讀部落格文章

  • 建立並連線至 ActiveMQ 代理程式

    了解如何使用 AWS 管理主控台 建立基本代理程式。

    教學課程入門

  • ActiveMQ 研討會

    探索 Amazon MQ 的佇列、主題和功能等傳訊概念,例如容錯移轉、中介裝置網路。

    研討會入門

  • 使用 AWS 無伺服器部署和發佈至 Amazon MQ 代理程式

    我們會逐步引導您使用 SAM 在單一步驟中部署無伺服器後端和 Amazon MQ AWS 代理程式。

    閱讀部落格文章

  • 使用 Maven 2 基準和 測量 Amazon MQ 輸送量 AWS CDK

    了解如何使用 ActiveMQ Classic Maven Performance 測試外掛程式評估 Amazon MQ 的輸送量。 ActiveMQ

    閱讀部落格文章

Amazon Kinesis Data Streams
  • Amazon Kinesis Data Streams 入門

    了解基本 Kinesis Data Streams 資料流程原則,以及從 Kinesis 資料串流放置和取得資料所需的步驟。

    探索指南

  • 使用 Amazon Kinesis Data Streams 建置高可用性串流

    我們比較和對比在主要操作區域中服務中斷、延遲或中斷時建立高可用性 Kinesis 資料串流的不同策略。

    閱讀部落格文章

  • Amazon Kinesis Data Streams 的範例教學課程

    這些教學課程旨在進一步協助您了解 Amazon Kinesis Data Streams 概念和功能。

    教學課程入門

  • AWS Lambda 搭配 Amazon Kinesis 使用

    了解如何建立 Lambda 函數以取用來自 Kinesis 串流的事件。

    教學課程入門

  • 使用 Amazon Kinesis 即時串流

    探索一系列實驗室練習,協助使用者建置串流分析應用程式 AWS。

    開始使用教學課程

Amazon MSK
  • 開始使用 Amazon MSK

    本教學課程將示範如何建立 MSK 叢集、產生和取用資料,以及使用指標監控叢集的運作狀態。

    教學課程入門

  • 開始使用 MSK Serverless 叢集

    本教學課程將說明如何建立 MSK Serverless 叢集、建立可存取叢集的用戶端機器、使用用戶端在叢集上建立主題,以及將資料寫入這些主題的相關範例。

    教學課程入門

  • Amazon MSK 實驗室

    這些實驗室可以在個人或公司 AWS 帳戶 或 AWS 帳戶團隊為使用研討會工作室的活動佈建的帳戶上執行。

    實驗室入門

  • 推出適用於 Amazon MSK 的 Express 代理程式,為您的 Kafka 叢集提供高輸送量和更快的擴展

    了解 Express 代理程式如何降低成本、提供更高的彈性,以及降低 Kafka 工作負載的操作開銷。

    閱讀部落格文章

AWS Step Functions
  • 入門 AWS Step Functions

    這些教學課程會逐步引導您建立處理信用卡應用程式的基本工作流程。

    開始使用教學課程

  • Step Functions 簡介

    本課程介紹 Step Functions 的關鍵元件,協助您開始管理應用程式中的工作流程。

    課程入門

  • 使用 進行大規模資料處理 AWS Step Functions

    了解如何使用 Step Functions 建置大規模資料處理應用程式。

    研討會入門

  • 的設計模式 AWS Step Functions

    了解如何在 Step Functions 狀態機器中實作設計模式,以及為什麼要使用每個模式。

    課程入門

  • 使用 AWS Step Functions 和 Amazon EventBridge 排程器排程無伺服器工作流程

    我們會示範如何根據您定義的排程,使用 EventBridge 排程器叫用狀態機器。

    教學課程入門

  • AWS Step Functions 研討會

    了解如何 AWS Step Functions 透過一系列互動式模組使用 的主要功能。

    研討會入門

  • 使用 PrivateLink、VPC Lattice、EventBridge 和 Step Functions 安全地跨 VPC 和帳戶邊界共用 AWS 資源

    了解如何跨 Amazon VPC 和 AWS 帳戶 邊界共用 AWS 資源,例如 EC2 執行個體和 Amazon EKS 容器服務 AWS Step Functions。

    閱讀部落格文章

  • 使用 中的變數和 JSONata 簡化開發人員體驗 AWS Step Functions

    探索使用變數和 JSONata,這是一種開放原始碼查詢和轉換語言,可簡化跨狀態的資料共用,並減少資料處理的複雜性。

    閱讀部落格文章

Amazon MWAA
  • 開始使用適用於 Apache Airflow 的 Amazon Managed Workflows

    本指南說明開始使用 Amazon MWAA 所需的先決條件和必要 AWS 資源。

    探索指南

  • 在 CD 管道aws-mwaa-local-runner中設定

    本教學課程會引導您使用 Amazon Managed Workflows for Apache Airflow 在 GitHub 中建置持續交付 (CD) 管道的程序aws-mwaa-local-runner,以在本機測試您的 Apache Airflow 程式碼。

    教學課程入門

  • 限制 Amazon MWAA 使用者對 DAGs子集的存取

    我們說明如何限制個別 Amazon MWAA 使用者僅檢視特定 DAG 或一組 DAGs 並與之互動。

    教學課程入門

  • Amazon MWAA for Analytics 研討會

    了解如何建置和協調包含許多上述服務的資料和 ML 管道,並使用 ,您將熟悉並進一步了解 Airflow 中可用的勾點和運算子,以管理管道/工作流程 AWS。

    研討會入門

探索

一旦您確定哪種方法最適合您的環境工作負載,我們建議您檢閱這些資源,以協助您開始實作您的方法。您可以在上一節中找到服務特定的資源,並在下一節中找到一般事件驅動型架構資源。

  • 架構圖

    探索參考架構圖,協助您建立高度可用、安全、靈活且符合成本效益的架構。

    探索架構圖

  • 白皮書

    探索白皮書以協助您開始使用,並了解事件驅動型架構的最佳實務。

    探索白皮書

  • 部落格

    探索部落格,協助您掌握最新技術,並現代化您的應用程式。

    探索部落格