為 Amazon ECS 建構您的應用程式 - Amazon Elastic Container Service

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

為 Amazon ECS 建構您的應用程式

您可以透過為應用程式建立任務定義來建構應用程式。任務定義包含定義應用程式相關資訊的參數,包括:

  • 要使用的啟動類型,決定您的任務託管所在的基礎設施。

    當您使用 EC2 啟動類型時,您也可以選擇執行個體類型。對於某些執行個體類型,例如 GPU,您需要設定其他參數。如需詳細資訊,請參閱Amazon ECS 任務定義使用案例

  • 容器映像,其中包含您的應用程式程式碼和應用程式程式碼執行所需的所有相依性。

  • 用於任務中容器的聯網模式。

    網路模式會決定您的任務如何透過網路進行通訊。

    對於在 EC2 執行個體上執行的任務,有多個選項,但我們建議您使用 awsvpc 網路模式。awsvpc 網路模式可讓您進一步控制應用程式如何與 VPCs 中的彼此和其他服務通訊,進而簡化容器聯網。

    對於在 Fargate 上執行的任務,您必須使用 awsvpc 網路模式。

  • 用於任務的記錄組態。

  • 與任務中的容器搭配使用的任何資料磁碟區。

如需有關任務定義參數的完整清單,請參閱 Fargate 啟動類型的 Amazon ECS 任務定義參數

建立任務定義時,請遵循下列準則:

  • 將每個任務定義系列僅用於一個業務目的。

    如果您在相同的任務定義中將多種類型的應用程式容器分組在一起,則無法獨立擴展這些容器。例如,網站和 API 通常需要不同的擴展模式。隨著流量增加,您可能需要與 API 容器不同的 Web 容器數量。如果這兩個容器部署在相同的任務定義中,則每個任務都會執行相同數量的 Web 容器和 API 容器。

  • 將每個應用程式版本與任務定義系列中的任務定義修訂版進行比對。

    在任務定義系列中,每個任務定義修訂都代表特定容器映像設定的point-in-time快照。這類似於容器是執行應用程式程式碼特定版本所需的所有元件快照。

    在應用程式碼版本、容器映像標籤和任務定義修訂之間建立one-to-one映射。典型的發佈過程涉及 git commit,該提交會轉換為使用 git commit SHA 標記的容器映像。然後,該容器映像標籤會取得自己的 Amazon ECS 任務定義修訂版。最後,Amazon ECS 服務會更新以部署新的任務定義修訂版。

  • 針對每個任務定義系列使用不同的 IAM 角色。

    使用自己的 IAM 角色定義每個任務定義。實作此實務,並提供每個業務元件自己的任務定義系列。透過實作這兩個最佳實務,您可以限制每個服務對您 AWS 帳戶中資源的存取量。例如,您可以授予身分驗證服務存取權限以連線到您的密碼資料庫。同時,您可以確保只有訂單服務可以存取信用卡付款資訊。