在 Amazon Elastic Container Service (Amazon ECS) 上

Amazon Elastic Container Service (Amazon ECS) 是在可擴展叢集上執行 Docker 應用程式時所用的 Amazon Web Service。在此教學中,您將學習如何在負載平衡器後方的 Amazon ECS 叢集上執行已啟用 Docker 的範例應用程式、測試範例應用程式,以及刪除資源以避免付費。

此教學中的所有操作都可用免費方案資格來進行。

管理您的 AWS 資源

登入主控台

Amazon ECS 初次執行精靈將會引導您建立叢集並啟動範例 Web 應用程式。在此步驟中,您要進入 Amazon ECS 主控台並啟動精靈。



b. 使用 Amazon ECS,您可以選擇使用 Amazon Elastic Container Registry (Amazon ECR) 建立映像儲存庫,然後在初次執行精靈將映像推送到該映像儲存庫 (請參閱右側的螢幕擷取畫面)。這個功能目前可在特定區域使用。 

  • 如果您沒有 Amazon ECR 選項,請跳到步驟 2。
  • 如果您有 Amazon ECR 選項,取消選取 Deploy a sample application onto an Amazon ECS Cluster 旁的方塊,然後選取 Continue
deploy-docker-container-1

(按一下以縮放)

deploy-docker-container-1

任務定義就像應用程式的藍圖。在此步驟中,您要指定任務定義,讓 Amazon ECS 知道要在容器使用哪個 Docker 影像、任務要使用多少個容器,以及每個容器的資源分配。


任務定義會預先載入預設組態值。

  • 檢閱預設值,然後選取 Next Step

如果您想要修改組態或需要進一步了解,請參閱任務定義參數

deploy-docker-container-2

(按一下以縮放)

deploy-docker-container-2

您已建立任務定義,現在可以開始設定 Amazon ECS 服務。服務會在您的叢集啟動並保留任務定義副本。例如,以服務的形式執行應用程式,Amazon ECS 會自動復原任何停止的任務,並保留您指定的副本數目。


a. 設定服務選項:

  • Service Name:預設值 sample-webapp 是 AWS 所提供以 Web 為基礎的 "Hello World" 應用程式。該應用程式旨在無限期的執行,因此透過以服務的方式執行,如果任務運作狀態不佳或未預期的停止,將會重新啟動。
  • Desired number of tasks:為了繼續符合 AWS 免費方案資格,保留預設值 1。這將會為您的任務建立一份副本。
deploy-docker-container-3

(按一下以縮放)

deploy-docker-container-3

b. Elastic load balancing:您可以選擇在服務使用負載平衡器。Amazon ECS 可以建立 Elastic Load Balancing (ELB) 負載平衡器,將流量分配到啟動任務的各個容器執行個體。

  • Container name: host port:選取 Simple-app:80
  • 已針對範例應用程式設定 ELB listener protocol、ELB listener port 和 ELB health check 的預設值。如需有關負載平衡組態的詳細資訊,請參閱服務負載平衡
deploy-docker-container-3b

(按一下以縮放)

deploy-docker-container-3b

c. 將負載平衡器連接到 Amazon ECS 服務之前,您必須建立 Identity and Access Management (IAM) 角色以供服務使用。這可讓 Amazon ECS 呼叫 Amazon EC2 和 Elastic Load Balancing API,以便在負載平衡器註冊和取消註冊執行個體。

  • 如果您尚未擁有服務 IAM 角色,Amazon ECS 將會建立名為 ecsServiceRole 的角色。
  • 如果您擁有現有的 Amazon ECS 服務角色,請從下拉式清單選取。
deploy-docker-container-3c

(按一下以縮放)

deploy-docker-container-3c

d. 檢閱您的設定,然後選取 Next Step

deploy-docker-container-3d

(按一下以縮放)

deploy-docker-container-3d

您的 Amazon ECS 任務在叢集上執行,叢集是執行 Amazon ECS 容器代理的一組容器執行個體。 在此步驟中,您要設定叢集、檢閱安全設定和設定 IAM 角色。 


a. 依照以下組態設定進行:

  • Cluster name:輸入 sample-cluster
  • EC2 instance type:使用預設值 t2.micro 執行個體類型以符合免費方案的資格。擁有較多 CPU 和記憶體資源的執行個體類型可處理較多的任務。如需不同執行個體類型的詳細資訊,請參閱 Amazon EC2 執行個體類型
  • Number of instances:保留預設值 1,啟動一個 Amazon EC2 執行個體到您的叢集,以便放置任務。叢集中的執行個體越多,就能放置越多任務。
  • Key pair:需要金鑰對,以便之後使用 SSH 連接到執行個體。您可以選取 None – unable to SSH、選取現有的金鑰對,或在 Amazon EC2 主控台建立金鑰對,然後繼續。
deploy-docker-container-5a

(按一下以縮放)

deploy-docker-container-5a

b. (選用) Security Group:預設值 (Anywhere) 可從整個網際網路進行存取。您也可以選擇 CIDR 區塊,以限制對執行個體的存取。

deploy-docker-container-5b

(按一下以縮放)

deploy-docker-container-5b

c. 容器執行個體 IAM 角色:

  • 如果沒有 IAM 角色,Amazon ECS 精靈將會為您建立一個。
  • 如果您有現有的容器執行個體 IAM 角色,請從下拉式清單選取。
deploy-docker-container-5c

(按一下以縮放)

deploy-docker-container-5c

d. 選取 Review and Launch

deploy-docker-container-5d

(按一下以縮放)

deploy-docker-container-5d

在之前的步驟中,您已設定任務定義 (就像是應用程式藍圖)、Amazon ECS 服務 (可啟動並保留您的任務定義副本),以及您的叢集 (執行容器代理的一組容器執行個體)。在此步驟中,您將檢閱、啟動和檢視所建立的資源。


a. 啟動之前,您有最後一次機會可以檢閱任務定義、任務組態和叢集組態。

  • 選取 Launch instance & run service。 
deploy-docker-container-6

(按一下以縮放)

deploy-docker-container-6

b. 您位於 Launch Status 頁面,該頁面顯示啟動的狀態,以及每個程序步驟的說明。

  • 啟動完成之後,選取 View service
deploy-docker-container-7

(按一下以縮放)

deploy-docker-container-7

在此步驟中,您要透過將瀏覽器指向負載平衡器 DNS 名稱,以確認範例應用程式可正常啟動和執行。


a. 在 sample-webapp 頁面,按一下您的負載平衡器名稱。

deploy-docker-container-10

(按一下以縮放)

deploy-docker-container-10

b. 您現在可以測試範例應用程式:

  • 複製 ELB DNS 名稱。
  • 將它貼到新的瀏覽器視窗。
  • 按鍵盤上的 Enter,以檢視範例應用程式 (在這個案例中,是一個靜態網頁)。
deploy-docker-container-12a

(按一下以縮放)

deploy-docker-container-12a

在這整個教學中,您已啟動三個資源:Amazon ECS 叢集、Amazon EC2 執行個體和負載平衡器。在此步驟中,您將清除所有資源以避免支付不必要的費用。


a. 導覽回到 Amazon ECS 主控台頁面 

  • 按一下叢集名稱 (sample-cluster)。
deploy-docker-container-13

(按一下以縮放)

deploy-docker-container-13

b. 選取 sample-webapp 旁的核取方塊,然後按一下 Update

deploy-docker-container-15

(按一下以縮放)

deploy-docker-container-15

c. 為了確保不會意外刪除含有作用中任務的服務,您必須停止所有任務,Amazon ECS 才會刪除服務。 

  • 將任務數目設成 0,並選取 Update Service
  • 更新服務之後,選取 Delete
deploy-docker-container-14

(按一下以縮放)

deploy-docker-container-14

d. 刪除叢集啟動的 Amazon EC2 執行個體:

  • 進入 Amazon EC2 主控台
  • 在左側面板選取 Instances
  • 選取 ECS Instance – EC2ContainerService-default 執行個體旁的核取方塊。
  • 選取 Actions > Instance State > Terminate

 

 

deploy-docker-container-17

(按一下以縮放)

deploy-docker-container-17

e. 刪除您的負載平衡器:

  • 在左側面板選取 Load Balancers
  • 選取您為服務建立之負載平衡器旁的核取方塊 (開頭應為 EC2Contai-EcsElast)。
  • 使用滑鼠右鍵按一下,然後選取 Delete

 

deploy-docker-container-19a

(按一下以縮放)

deploy-docker-container-19a

恭喜您!您已學會如何在 Amazon Elastic Container Service (Amazon ECS) 設定、部署和刪除已啟用 Docker 的應用程式。Amazon ECS 是可高度擴展、高效能的容器管理服務,可支援 Docker 容器,並讓您在 Amazon EC2 執行個體受管的叢集上輕鬆執行應用程式。

您已學會如何將已啟用 Docker 的應用程式部署到 Amazon ECS,現在可以繼續下個教學,學習如何建立 Docker 登錄檔以存放容器映像。您將建置 Docker 影像,將它推送到儲存庫,然後使用該影像在 Amazon ECS 上部署應用程式。

建立 Docker 登錄檔