在 AWS ECS 服務上部署示例應用程式作為概念驗證
按照以下步驟在 AWS ECS 服務上試用示例應用程式作為概念驗證
- 登入 AWS 管理控制檯並轉至 AWS 服務目錄 - >計算 - > Ec2
- 使用 amazon linux 64 位作業系統建立 VM(EC2 例項),我們將使用它來配置 docker,git,AWS ECS 代理工具和其他工具。我們還將使用相同的 VM 作為 ECS 群集中的節點來部署基於容器的應用程式。按照以下步驟建立 VM。
a)按照常規步驟建立 EC2 例項,在 EC2 例項建立期間的後續步驟中給出特別的含義。
b)選擇具有最少許可權的 IAM 角色 -
AmazonEC2ContainerServiceforEC2Role
c)確保在 VM 上安裝了 Java
- 安裝 docker [執行以下命令]
首先更新 yum 軟體包儲存庫
sudo yum update –y
現在要安裝 docker 執行 yum install
sudo yum install -y docker
- 啟動 docker 服務
sudo service docker start
- 將 ec2-user 新增到 docker 組,這樣就可以在不使用 sudo 的情況下執行 Docker 命令。
sudo usermod -a -G docker ec2-user
- 從 EC2 登出並再次重新登入以獲取新的 docker 組許可權。
- 驗證 ec2 使用者可以在沒有 sudo 的情況下執行 Docker 命令。
docker info
- 安裝 Git
sudo yum install -y git
- 從 git 克隆 Ec2 例項上的示例 PHP 應用程式。我們將此應用程式用於我們的 POC。
git clone https://github.com/awslabs/ecs-demo-php-simple-app
cd ecs-demo-php-simple-app
通過列出目錄內容來驗證 Dockerfile 是否存在
ls
- 轉到 AWS 服務目錄 - >計算 - > Ec2 容器服務
- 單擊開始
- 點選取消
- 單擊左側儲存庫選單中的儲存庫
- 單擊開始
- 輸入儲存庫名稱並單擊下一步
- 配置 Ec2 工具
aws configure
根據你的帳戶提供 AWS Access 金鑰 ID,祕密訪問金鑰,預設區域名稱
- 構建,標記和推送 Docker 映象
a)檢索 docker login 命令,該命令可用於向登錄檔驗證 Docker 客戶端:
aws ecr get-login --region us-east-1
b)執行命令 return 作為上一步的輸出
- 從 Dockerfile 構建 Docker 映象。 (回想一下你下載了一個示例泊塢窗應用程式的步驟 9)
a)
docker build -t amazon-ecs-sample .
(注意“。”代表當前目錄)
b)執行 docker 映象以驗證影象是否已正確建立,並且影象名稱包含可將更改推送到 docker 映象的儲存庫
docker images
c)執行新構建的影象。 -p 80:80 選項將容器上的公開埠 80 對映到主機系統上的埠 80(在本例中為 Ec2 例項)。
docker run -p 80:80 amazon-ecs-sample
忽略警告“apache2:無法可靠地確定伺服器的完全限定域名,使用 172.17.0.2 for ServerName”
- 嘗試在瀏覽器上訪問示例應用程式網頁,確保在與該例項關聯的安全組中開啟埠 80
http://<ec2-instance-dns-address>
- 按 ctrl + c 鍵,這將停止泊塢窗影象。應該無法訪問示例應用程式。
- 現在,在成功驗證我們的示例 docker 應用程式之後,我們將嘗試配置一個叢集以自動執行示例應用程式。此外,出於演示目的,我們將嘗試將現有的 ec2 例項用作群集中的節點。這可以通過在 ec2 例項上安裝代理程式來實現。
- 在 ec2 例項上安裝 Amazon ECS 容器代理
a)
sudo yum install -y ecs-init
b)重啟 docker 守護程序
sudo service docker restart
c)啟動 ecs-init upstart 工作
sudo start ecs
d)(可選)你可以使用代理內省 API 驗證代理是否正在執行並檢視有關新容器例項的一些資訊。確保埠 51678 在安全組中已開啟。
curl http://localhost:51678/v1/metadata
- 轉到 AWS 服務目錄 - >計算 - > Ec2 容器服務 - >群集並驗證是否已建立預設群集
- 現在我們繼續建立一個任務組並新增我們的 docker 映象作為在叢集上執行的任務
a)檢查 ecs-demo-php-simple-app 資料夾中的 simple-app-task-def.json 檔案。
b)編輯 simple-app-task-def.json 並重新編寫 momeory,以便它可以在符合條件的免費層例項上執行(假設有人使用符合條件的免費套餐 ec2 例項進行此 POC,否則無需減少記憶體限制)
c) 在 simple-app-task-def.json 檔案中的所有事件中更新記憶體= 250
d) 使用 simple-app-task-def.json 檔案註冊任務定義。
aws ecs register-task-definition --cli-input-json file://simple-app-task-def.json
e)轉到 ec2 容器服務頁面中的任務定義,你將找到已註冊的任務定義
f)使用以下 AWS CLI 命令執行具有 console-sample-app 任務定義的任務。
aws ecs run-task --task-definition console-sample-app
g)在瀏覽器中開啟示例 Web 應用程式,它應該是可訪問的(參見步驟 19)
感謝你的閱讀,請分享你的意見和查詢,以便進行後續討論。