

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

# 什麼是 AWS App Mesh？
<a name="what-is-app-mesh"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

AWS App Mesh 是一種服務網格，可讓您輕鬆監控和控制服務。服務網格是專門處理service-to-service通訊的基礎設施層，通常透過與應用程式程式碼一起部署的一系列輕量型網路代理。App Mesh 將服務通訊方式標準化，為您提供端對端可見性，並有助於確保應用程式的高可用性。App Mesh 對應用程式中的每個服務提供一致的可見性和網路流量控制。



## 將 App Mesh 新增至範例應用程式
<a name="example-application"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

請考慮以下不使用 App Mesh 的簡單範例應用程式。這兩個服務可以在 Amazon Elastic Container Service (Amazon ECS) AWS Fargate、Amazon Elastic Kubernetes Service (Amazon EKS)、Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的 Kubernetes，或使用 Docker 的 Amazon EC2 執行個體上執行。

![\[Diagram showing client service connecting to servicea.apps.local, which connects to serviceb.apps.local.\]](http://docs.aws.amazon.com/zh_tw/app-mesh/latest/userguide/images/simple-app-diagram.png)


在此圖中， `serviceA`和 `serviceB` 都可以透過 `apps.local` 命名空間探索。例如，假設您決定部署`serviceb.apps.local`名為 的新版本`servicebv2.apps.local`。接著，您想要將一定百分比的流量從 引導`servicea.apps.local`至 ，`serviceb.apps.local`並將一定百分比引導至 `servicebv2.apps.local`。當您確定 `servicebv2` 效能良好時，您想要將 100% 的流量傳送至其中。

 App Mesh 可協助您執行此操作，而無需變更任何應用程式碼或註冊的服務名稱。如果您搭配此範例應用程式使用 App Mesh，則網格看起來可能會如下圖所示。

![\[Diagram showing App Mesh architecture with virtual services, nodes, and router in a mesh network.\]](http://docs.aws.amazon.com/zh_tw/app-mesh/latest/userguide/images/simple-app-with-mesh-diagram.png)


在此組態中，服務不會再直接彼此通訊。相反地，它們會透過代理彼此通訊。使用 `servicea.apps.local`服務部署的代理會讀取 App Mesh 組態，並根據組態`servicebv2.apps.local`將流量傳送至 `serviceb.apps.local`或 。

## App Mesh 的元件
<a name="app_mesh_components"></a>

App Mesh 由下列元件組成，如先前範例所示：
+ **服務網格** – 服務網格是位於其中之服務之間的網路流量邏輯界限。在此範例中，網格名為 `apps`，其中包含網格的所有其他資源。如需詳細資訊，請參閱[服務網格](meshes.md)。
+ **虛擬服務** – 虛擬服務是由虛擬節點直接或間接透過虛擬路由器提供的實際服務抽象。在圖中，兩個虛擬服務代表兩個實際服務。虛擬服務的名稱是實際服務的可探索名稱。當虛擬服務和實際服務具有相同的名稱時，多個服務可以使用在實作 App Mesh 之前使用的相同名稱彼此通訊。如需詳細資訊，請參閱[虛擬服務](virtual_services.md)。
+ **虛擬節點** – 虛擬節點可做為可探索服務的邏輯指標，例如 Amazon ECS 或 Kubernetes 服務。對於每個虛擬服務，您至少會有一個虛擬節點。在圖中，`servicea.apps.local`虛擬服務會取得名為 之虛擬節點的組態資訊`serviceA`。`serviceA` 虛擬節點是以服務探索`servicea.apps.local`的名稱設定。`serviceb.apps.local` 虛擬服務設定為透過名為 的`serviceBv2`虛擬路由器，將流量路由到 `serviceB`和虛擬節點`serviceB`。如需詳細資訊，請參閱[虛擬節點](virtual_nodes.md)。
+ **虛擬路由器和路由** – 虛擬路由器會處理網格中一或多個虛擬服務的流量。路由與虛擬路由器相關聯。此路由用於比對虛擬路由器的請求，並將流量分配到其相關聯的虛擬節點。在上圖中，`serviceB`虛擬路由器具有將一定百分比的流量導向`serviceB`虛擬節點的路由，以及將一定百分比的流量導向`serviceBv2`虛擬節點。您可以設定路由到特定虛擬節點的流量百分比，並隨時間變更。您可以根據 HTTP 標頭、URL 路徑或 gRPC 服務和方法名稱等條件路由流量。如果回應中發生錯誤，您可以設定重試政策以重試連線。例如，在圖中，路由的重試政策可以指定 的連線會重試五次，如果 `serviceb.apps.local`傳回特定類型的錯誤，則重試嘗試之間的間隔`serviceb.apps.local`為十秒。如需詳細資訊，請參閱[虛擬路由器](virtual_routers.md)及[路由](routes.md)。
+ **Proxy** – 您可以在建立網格及其資源後，將服務設定為使用 Proxy。代理會讀取 App Mesh 組態，並適當地引導流量。在圖中，從 `servicea.apps.local` 到 的所有通訊`serviceb.apps.local`都會經過與每個服務一起部署的代理。服務會使用與導入 App Mesh 之前相同的服務探索名稱彼此通訊。由於代理會讀取 App Mesh 組態，因此您可以控制兩個 服務如何互相通訊。當您想要變更 App Mesh 組態時，您不需要自行或代理變更或重新部署服務。如需詳細資訊，請參閱[Envoy 影像](envoy.md)。

## 如何開始
<a name="how_to_get_started"></a>

若要使用 App Mesh，您必須擁有執行於 的現有服務 AWS Fargate、Amazon ECS、Amazon EKS、Amazon EC2 上的 Kubernetes 或 Amazon EC2 搭配 Docker。

若要開始使用 App Mesh，請參閱下列其中一個指南：
+ [App Mesh 和 Amazon ECS 入門](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ecs.html)
+ [App Mesh 和 Kubernetes 入門](https://docs.aws.amazon.com/eks/latest/userguide/appmesh-getting-started.html)
+ [App Mesh 和 Amazon EC2 入門](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ec2.html)

## 存取 App Mesh
<a name="accessing_app_mesh"></a>

您可以透過下列方式使用 App Mesh：

**AWS 管理主控台**  
主控台是瀏覽器型界面，可用來管理 App Mesh 資源。您可以在 https：//[https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh) 開啟 App Mesh 主控台。

**AWS CLI**  
為廣泛的 AWS 產品提供命令，並支援 Windows、Mac 和 Linux。若要開始使用，請參閱《[AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/)》。如需 App Mesh 命令的詳細資訊，請參閱《 [AWS CLI 命令參考](https://docs.aws.amazon.com/cli/latest/reference/)》中的 [appmesh](https://docs.aws.amazon.com/cli/latest/reference/appmesh/index.html#)。

**AWS Tools for Windows PowerShell**  
為在 PowerShell 環境中編寫指令碼的人員提供廣泛的 AWS 產品命令。若要開始使用，請參閱《[AWS Tools for PowerShell 使用者指南](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html)》。如需 App Mesh Cmdlet 的詳細資訊，請參閱[AWS 《 Tools for PowerShell Cmdlet Reference](https://docs.aws.amazon.com/powershell/v4/reference/)》中的 [App Mesh](https://docs.aws.amazon.com/powershell/v4/reference/items/AppMesh_cmdlets.html)。

**AWS CloudFormation**  
可讓您建立範本，描述您想要的所有 AWS 資源。使用 範本，為您 CloudFormation 佈建和設定 資源。若要開始使用，請參閱《[AWS CloudFormation 使用者指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)》。如需 App Mesh 資源類型的詳細資訊，請參閱 範本[參考中的 App Mesh 資源類型](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AppMesh.html)[AWS CloudFormation 參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html)。

**AWS SDKs**  
我們也提供 SDKs，可讓您從各種程式設計語言存取 App Mesh。SDKs會自動處理下列任務：  
+ 加密簽署服務請求
+ 重試請求
+ 處理錯誤回應
如需可用 SDK 的詳細資訊，請參閱 [Amazon Web Services 適用工具](https://aws.amazon.com/tools/)。  
如需 App Mesh APIs的詳細資訊，請參閱 [AWS App Mesh API 參考](https://docs.aws.amazon.com/app-mesh/latest/APIReference/Welcome.html)。