使用 AWS Copilot、Amazon ECS、Docker 和 AWS Fargate 將整合型應用程式分解為微型服務

教學課程

簡介

概觀

在本教學中,您會將整合型 Node.js 應用程式部署至 Docker 容器,然後再將應用程式縮減為微型服務而無須停機。Node.js 應用程式會託管簡單的訊息佈告欄,其中包含使用者之間的討論串和訊息。

為什麼這很重要

傳統巨型架構難以擴展。當應用程式的程式碼庫擴增時,更新和維護會變得很複雜。引進新功能、語言、架構和技術會變得非常困難,因而限制了創新和新的構想。

在微型服務架構當中,每個應用程式元件皆是以專屬服務方式運作,並透過完善定義的 API 來與其他服務通訊。微型服務係針對商業功能所建立,且每項服務皆可執行單一功能。您可使用不同的架構和程式設計語言來撰寫微型服務,並可將其獨立部署為單一服務或是服務群組。

要完成的內容

在本教學當中,將說明如何在 Docker 容器中執行單一整合型應用程式、將同個應用程式部署為微型服務,然後再將流量切換回微型服務而無須停機。完成後,您可使用本教學以及其中的程式碼做為範本,以在 AWS 上建立和部署專屬容器化微型服務。

整合型架構

整個 Node.js 應月程式是以單一服務形式在容器中執行,而且每個容器與所有其他容器都具有相同的功能。如果某個應用程式功能發生需求激增,則必須擴展整個架構。

微型服務架構

Node.js 應用程式的每個功能會以個別服務形式在其自己的容器內執行。這些服務可以獨自擴展與更新,而與其他服務無關。

先決條件

  • AWS 帳戶:如果您還沒有帳戶,請按照設定您的 AWS 環境教學中的簡要概觀進行操作。
  • 安裝並設定 AWS CLI
  • 安裝並設定 AWS Copilot
  • 安裝並設定 Docker
  • 文字編輯器。在本教學課程中,我們將使用 VS Code,但您可以使用您偏好的 IDE。

 AWS 體驗

中級

 最短完成時間

110 分鐘

 完成成本

符合免費方案資格

 要求

  • AWS 帳戶:如果您還沒有帳戶,請按照設定您的 AWS 環境教學中的簡要概觀進行操作。
  • 安裝並設定 AWS CLI。
  • 安裝並設定 AWS Copilot。
  • 安裝並設定 Docker。
  • 文字編輯器。在本教學課程中,我們將使用 VS Code,但您可以使用您偏好的 IDE。 

 程式碼

在 GitHub 上的 AWS 實驗室提供

 上次更新日期

2023 年 3 月 31 日

模組

本教學分為以下模組。您必須完成每一個單元,然後才能繼續進行下一個單元。

  1. 設定 (20 分鐘):在本單元中,您將安裝並設定 AWS CLI、安裝 AWS Copilot 以及安裝 Docker。
  2. 容器化並部署整合型應用程式 (30 分鐘):在本單元中,您將容器化應用程式,使用 AWS Copilot 具現化 EC2 運算執行個體的受管叢集,並將映像部署為在叢集上執行的容器。
  3. 分解整合型應用程式 (20 分鐘)︰在本單元中,您會將 Node.js 應用程式分解成數個互連服務,並將每個服務的映像推送至 Amazon Elastic Container Registry (Amazon ECR) 儲存庫。
  4. 部署微型服務 (30 分鐘):在本單元中,您將學習將 node.js 應用程式部署為 Application Load Balancer (ALB) 之後的一組互連服務。接著會使用 ALB,將流量從巨型應用程式順暢轉換至微型服務。
  5. 清理 (10 分鐘):在本單元中,您將終止在本教學中建立的資源。您將停止在 Amazon ECS 上執行的服務、刪除 ALB,然後刪除 AWS CloudFormation 堆疊以終止 Amazon ECS 叢集,包括所有基礎 EC2 執行個體。

本頁面對您是否有幫助?