在 AWS ECS 服務上部署示例應用程式作為概念驗證

按照以下步驟在 AWS ECS 服務上試用示例應用程式作為概念驗證

  1. 登入 AWS 管理控制檯並轉至 AWS 服務目錄 - >計算 - > Ec2
  2. 使用 amazon linux 64 位作業系統建立 VM(EC2 例項),我們將使用它來配置 docker,git,AWS ECS 代理工具和其他工具。我們還將使用相同的 VM 作為 ECS 群集中的節點來部署基於容器的應用程式。按照以下步驟建立 VM。
    a)按照常規步驟建立 EC2 例項,在 EC2 例項建立期間的後續步驟中給出特別的含義。
    b)選擇具有最少許可權的 IAM 角色 -
    AmazonEC2ContainerServiceforEC2Role
    c)確保在 VM 上安裝了 Java
    StackOverflow 文件
  3. 安裝 docker [執行以下命令]
    首先更新 yum 軟體包儲存庫
sudo yum update –y

現在要安裝 docker 執行 yum install

sudo yum install -y docker
  1. 啟動 docker 服務
sudo service docker start
  1. 將 ec2-user 新增到 docker 組,這樣就可以在不使用 sudo 的情況下執行 Docker 命令。
sudo usermod -a -G docker ec2-user
  1. 從 EC2 登出並再次重新登入以獲取新的 docker 組許可權。
  2. 驗證 ec2 使用者可以在沒有 sudo 的情況下執行 Docker 命令。
docker info
  1. 安裝 Git
sudo yum install -y git
  1. 從 git 克隆 Ec2 例項上的示例 PHP 應用程式。我們將此應用程式用於我們的 POC。
git clone https://github.com/awslabs/ecs-demo-php-simple-app  

cd ecs-demo-php-simple-app  

通過列出目錄內容來驗證 Dockerfile 是否存在

ls
  1. 轉到 AWS 服務目錄 - >計算 - > Ec2 容器服務
  2. 單擊開始
    StackOverflow 文件
  3. 點選取消
    StackOverflow 文件
  4. 單擊左側儲存庫選單中的儲存庫
    StackOverflow 文件
  5. 單擊開始

StackOverflow 文件

  1. 輸入儲存庫名稱並單擊下一步
    StackOverflow 文件
  2. 配置 Ec2 工具
aws configure

根據你的帳戶提供 AWS Access 金鑰 ID,祕密訪問金鑰,預設區域名稱

  1. 構建,標記和推送 Docker 映象
    a)檢索 docker login 命令,該命令可用於向登錄檔驗證 Docker 客戶端:
aws ecr get-login --region us-east-1

b)執行命令 return 作為上一步的輸出

  1. 從 Dockerfile 構建 Docker 映象。 (回想一下你下載了一個示例泊塢窗應用程式的步驟 9)
    a)
docker build -t amazon-ecs-sample .

(注意“。”代表當前目錄)
b)執行 docker 映象以驗證影象是否已正確建立,並且影象名稱包含可將更改推送到 docker 映象的儲存庫

docker images

StackOverflow 文件

c)執行新構建的影象。 -p 80:80 選項將容器上的公開埠 80 對映到主機系統上的埠 80(在本例中為 Ec2 例項)。

docker run -p 80:80 amazon-ecs-sample

忽略警告“apache2:無法可靠地確定伺服器的完全限定域名,使用 172.17.0.2 for ServerName”

  1. 嘗試在瀏覽器上訪問示例應用程式網頁,確保在與該例項關聯的安全組中開啟埠 80
http://<ec2-instance-dns-address>

StackOverflow 文件

  1. 按 ctrl + c 鍵,這將停止泊塢窗影象。應該無法訪問示例應用程式。
  2. 現在,在成功驗證我們的示例 docker 應用程式之後,我們將嘗試配置一個叢集以自動執行示例應用程式。此外,出於演示目的,我們將嘗試將現有的 ec2 例項用作群集中的節點。這可以通過在 ec2 例項上安裝代理程式來實現。
  3. 在 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
  1. 轉到 AWS 服務目錄 - >計算 - > Ec2 容器服務 - >群集並驗證是否已建立預設群集
    StackOverflow 文件
  2. 現在我們繼續建立一個任務組並新增我們的 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)

感謝你的閱讀,請分享你的意見和查詢,以便進行後續討論。