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

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

為 Amazon 建構您的應用程式 ECS

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

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

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

  • 容器映像,其中會存放您的應用程式程式碼,以及應用程式程式碼執行所需的所有相依性。

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

    網路模式會決定任務透過網路的通訊方式。

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

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

  • 要用於任務的記錄組態。

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

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

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

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

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

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

    在任務定義系列中,將每個任務定義修訂視為特定容器映像設定的時間點快照集。這類似於容器是執行特定應用程式程式碼版本所需之所有內容的快照。

    請確定應用程式程式碼的版本、容器映像標籤和任務定義修訂之間有 one-to-one映射。典型的發行程序涉及 git 遞交,該遞交會變成以 git 遞交 標記的容器映像SHA。然後,該容器映像標籤會取得自己的 Amazon ECS任務定義修訂版本。最後,Amazon ECS服務會更新,以告知其部署新的任務定義修訂版本。

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

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