本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Amazon ECS 建構您的應用程式
您可以透過為應用程式建立任務定義來建構應用程式。任務定義包含定義應用程式相關資訊的參數,包括:
-
要使用的啟動類型,決定您的任務託管所在的基礎設施。
當您使用 EC2 啟動類型時,您也可以選擇執行個體類型。對於某些執行個體類型,例如 GPU,您需要設定其他參數。如需詳細資訊,請參閱Amazon ECS 任務定義使用案例。
-
容器映像,其中包含您的應用程式程式碼和應用程式程式碼執行所需的所有相依性。
-
用於任務中容器的聯網模式
網路模式決定您的任務如何透過網路進行通訊。
對於在 EC2 執行個體上執行的任務,有多個選項,但我們建議您使用
awsvpc
網路模式。awsvpc
網路模式可簡化容器聯網,因為您更能控制應用程式如何與 VPCs中的彼此和其他服務通訊。對於在 Fargate 上執行的任務,您只能使用
awsvpc
網路模式。 -
用於任務的記錄組態。
-
與任務中的容器搭配使用的任何資料磁碟區。
如需有關任務定義參數的完整清單,請參閱 Fargate 啟動類型的 Amazon ECS 任務定義參數。
建立任務定義時,請遵循下列準則:
-
將每個任務定義系列僅用於一個業務目的。
如果您將多種類型的應用程式容器分組在相同的任務定義中,則無法獨立擴展這些容器。例如,網站和 API 不太可能都需要以相同的速率進行橫向擴展。隨著流量增加,所需的 Web 容器數量將與 API 容器不同。如果這兩個容器部署在相同的任務定義中,則每個任務都會執行相同數量的 Web 容器和 API 容器。
-
將每個應用程式版本與任務定義系列中的任務定義修訂版進行比對。
在任務定義系列中,將每個任務定義修訂視為特定容器映像設定的時間點快照集。這類似於容器是執行特定應用程式程式碼版本所需之所有內容的快照。
請確定應用程式程式碼版本、容器映像標記和任務定義修訂版本之間存在一對一的映射。典型的發佈過程涉及 git commit,該提交會轉換為使用 git commit SHA 標記的容器映像。然後,該容器映像標籤會取得自己的 Amazon ECS 任務定義修訂版。最後,Amazon ECS 服務已更新,以指示其部署新的任務定義修訂版本。
-
針對每個任務定義系列使用不同的 IAM 角色。
使用自己的 IAM 角色定義每個任務定義。此建議應與我們為每個業務組件提供自己的任務定義系列的建議一起完成。透過實作這兩個最佳實務,您可以限制每個服務對您 AWS 帳戶中資源的存取量。例如,您可以授予身分驗證服務存取權限以連線到您的密碼資料庫。同時,您還可以確保只有您的訂單服務才能存取信用卡付款資訊。