国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序

這篇具有很好參考價值的文章主要介紹了【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

實驗概覽

某團隊正在開發(fā)一款在線游戲。樂觀地認為該游戲會取得成功,并預(yù)計會有成千上萬的游戲玩家通過互聯(lián)網(wǎng)訪問這款游戲。希望減少放在基礎(chǔ)設(shè)施上的精力,更多地關(guān)注游戲開發(fā)。但不想分配任何前期基礎(chǔ)設(shè)施資本來部署這款游戲。但是,想確保該應(yīng)用程序在部署后可以針對用戶高峰期進行擴展。

這款在線游戲名為 “Web 2048”,已準備好發(fā)布。云架構(gòu)師建議在 AWS Fargate 上使用 Amazon Elastic Container Service (Amazon ECS)。

在本實驗中,您需要將基于 Web 的游戲作為 Docker 容器映像構(gòu)建,將其推送到 Amazon Elastic Container Registry (Amazon ECR),并創(chuàng)建一個在 AWS Fargate 上運行 Docker 容器的 Amazon ECS 集群。

目標

完成本實驗后,將能夠:

  • 將容器映像上傳到要用于部署 Amazon ECS 的 Amazon ECR 存儲庫
  • 將容器從存儲庫部署到 Amazon ECS Fargate 集群。
  • 創(chuàng)建 Amazon ECS 服務(wù)和任務(wù)
  • 在 Amazon ECS Fargate 集群的 Docker 容器中測試并演示基于 Web 的應(yīng)用程序。

實驗環(huán)境

在本實驗中,在實驗環(huán)境中預(yù)置了一個單獨的 Amazon Virtual Private Cloud (Amazon VPC),其中包含公有子網(wǎng)、互聯(lián)網(wǎng)網(wǎng)關(guān)、有路由的路由表、Application Load Balancer、安全組、EC2 實例以及 AWS Identity and Access Management (IAM) 角色。

下圖顯示了為本實驗預(yù)置的資源:

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

Amazon Elastic Container Service (Amazon ECS) 是一項高度可擴展的高性能容器管理服務(wù),支持 Docker 容器。它可以幫助您在 Amazon Elastic Compute Cloud (Amazon EC2) 實例托管的集群上輕松運行應(yīng)用程序。使用 Amazon ECS,您不需要安裝、運維和擴展自己的集群管理基礎(chǔ)設(shè)施。

AWS Fargate 是一種適用于容器的無服務(wù)器計算引擎,可與 Amazon ECS 和 Amazon EKS 配合使用。借助 Fargate,您可以專注于構(gòu)建自己的應(yīng)用程序。借助 Fargate,您無需預(yù)置和管理服務(wù)器,而且可以為每個應(yīng)用程序指定資源并為其付費,還能通過設(shè)計隔離應(yīng)用程序來提高安全性。

注意:在本實驗中,所有步驟都需要使用 Linux 終端的 AWS CLI。為了熟悉命令行以開始構(gòu)建過程,盡量不要復(fù)制和粘貼每個步驟中的命令,而是盡可能多地自己鍵入命令。大多數(shù)關(guān)于容器的真實場景都使用命令行方法。完成本實驗后,應(yīng)該能夠使用這些相同的命令來幫助構(gòu)建您自己的概念證明。


任務(wù) 1:連接到實驗命令主機

在此任務(wù)中,將連接到運行 Amazon Linux 2 操作系統(tǒng)的 Amazon EC2 實例,然后克隆本實驗所需的 2048 GitHub 存儲庫。

復(fù)制實驗頁面左側(cè)的 CommandHostSessionUrl 的值,并將其粘貼到新的瀏覽器標簽頁中,然后按 Enter 鍵。

https://us-east-2.console.aws.amazon.com/systems-manager/session-manager/i-0910a8d48fc80b8c2?region=us-east-2

命令:運行以下命令,檢查 Git 和 Docker 版本并驗證安裝:

docker -v && git --version

終端應(yīng)該返回類似于下面的內(nèi)容。

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

命令:Git 在運行命令的目錄內(nèi)創(chuàng)建一個目錄。使用以下命令確認您當前的工作目錄:

pwd

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

將目錄更改為主目錄并克隆 Git 存儲庫。

命令:在終端窗口中,復(fù)制并粘貼(或鍵入)以下命令:

cd ~
git clone https://github.com/gabrielecirulli/2048

命令:列出目錄內(nèi)容以確認存儲庫已克隆:

ls -l | grep 2048

預(yù)期輸出

rwxr-xr-x 6 root root 200 Sep  3 12:00 2048

附加信息

  • Docker 是一種命令行實用程序,用于在環(huán)境中創(chuàng)建和管理 Docker 容器。
  • Git 是一個分布式的開源版本控制系統(tǒng) (VCS),它允許您存儲代碼、跟蹤修訂歷史記錄、合并代碼更改,并在需要時恢復(fù)為早期代碼版本。

任務(wù) 2:將應(yīng)用程序容器化

在此任務(wù)中,將創(chuàng)建用于在 Amazon ECS 上部署容器的 Dockerfile。容器將軟件與其環(huán)境隔離開來,盡管存在開發(fā)環(huán)境與生產(chǎn)環(huán)境或云托管與本地托管等差異,仍能確保統(tǒng)一工作。這樣做可以大幅提高應(yīng)用程序的一致性和可移植性。

在命令主機會話中,請確認是否打開了 ssm_user 主目錄。

命令:使用以下命令導航到 2048 目錄:

cd 2048

使用 heredoc 創(chuàng)建 Dockerfile。heredoc 是 here document 的縮寫,這是一種在編程語言中定義多行字符串的方式。它可以創(chuàng)建跨越多行的文本塊,而不必使用轉(zhuǎn)義字符來連接多個字符串。

命令:要在此目錄中創(chuàng)建 Dockerfile,請運行以下 cat 命令以使用 heredoc:

注意Dockerfile 必須以大寫字母開頭,并且沒有文件擴展名。

cat << EOF > Dockerfile
FROM nginx:latest

COPY . /usr/share/nginx/html

EXPOSE 80
EOF

Docker 使用此文件構(gòu)建一個容器映像,將軟件打包成標準單元,用于開發(fā)、發(fā)送和部署。

示例 Dockerfile

FROM nginx:latest

COPY . /usr/share/nginx/html

EXPOSE 80

思考:查看此 Dockerfile 的組件:

  • FROM 命令定義構(gòu)建容器的基礎(chǔ)映像。您還可以使用 Nginx 等供應(yīng)商來發(fā)布、維護和支持官方供應(yīng)商容器映像,而不是使用通用的 Linux 發(fā)行版。在您的 Dockerfile 中,請注意基礎(chǔ)映像是nginx:latest 。Docker 將構(gòu)建一個基礎(chǔ)映像,其中安裝了所有 nginx 需求,并使用默認配置,從而無需冗長的 Dockerfile 和耗時的部署。這縮短了安裝時間,可以為您節(jié)省數(shù)千小時,具體取決于執(zhí)行的部署數(shù)量。

  • COPY 命令允許 Docker 將本地文件復(fù)制到容器映像中。在本實驗中,我們克隆了 2048 Git 存儲庫,現(xiàn)在正將該存儲庫的所有內(nèi)容復(fù)制到默認的 nginx 目錄中,用 Git 存儲庫中的 index.html 文件和所有應(yīng)用程序代碼替換 nginx 默認 index.html 頁面。任何額外的文件或目錄均已位于它們應(yīng)在的位置,構(gòu)成適當?shù)哪夸浗Y(jié)構(gòu),使應(yīng)用程序按預(yù)期運行。

  • EXPOSE 命令打開容器上的一個端口。創(chuàng)建 Amazon ECS 集群時,您將有機會使用端口轉(zhuǎn)發(fā)。此功能可用于混淆非默認端口的使用。在本實驗中,我們將同時使用容器中的端口 80 和 AWS Fargate 中的端口 80,由 Application Load Balancer 上的偵聽器轉(zhuǎn)發(fā)這些端口。


任務(wù) 3:構(gòu)建 Web2048 容器

在此任務(wù)中,將在命令主機上構(gòu)建和測試 Docker 容器。

返回到顯示命令主機會話的瀏覽器標簽頁。

注意:如果您關(guān)閉了堡壘主機瀏覽器標簽頁,請參考 “任務(wù) 1:連接到命令主機” 部分。

命令:要確認當前的工作目錄是 2048 目錄,請運行以下命令:

cd ~/2048
ls -l

預(yù)期輸出

total 32
-rw-r--r-- 1 root root 1970 Sep  3 12:00 CONTRIBUTING.md
-rw-r--r-- 1 root root   59 Sep  3 12:02 Dockerfile
-rw-r--r-- 1 root root 1083 Sep  3 12:00 LICENSE.txt
-rw-r--r-- 1 root root 2280 Sep  3 12:00 README.md
-rw-r--r-- 1 root root  300 Sep  3 12:00 Rakefile
-rw-r--r-- 1 root root 4286 Sep  3 12:00 favicon.ico
-rw-r--r-- 1 root root 3988 Sep  3 12:00 index.html
drwxr-xr-x 2 root root  252 Sep  3 12:00 js
drwxr-xr-x 2 root root  125 Sep  3 12:00 meta
drwxr-xr-x 3 root root   72 Sep  3 12:00 style

Web2048 是一款簡單的 2048 游戲,可在 Web 瀏覽器中運行。

注意:開發(fā)人員通常會遇到的一個問題是:在不使用 sudo 的情況下運行 docker命令,會出現(xiàn) permission denied(權(quán)限被拒絕)錯誤。將用戶放置在docker 組中,您就可以在沒有 sudo 權(quán)限的情況下運行 docker 命令,使本地用戶權(quán)限與最低權(quán)限訪問控制保持一致。有一個簡單的解決辦法,您可以自己試試。

命令:運行以下命令修復(fù)此錯誤:

sudo usermod -aG docker ssm-user
newgrp docker

現(xiàn)在可以使用 sudo 來運行 docker 命令。

命令:首先,檢查庫存中當前有哪些容器映像(應(yīng)該一個也沒有):

docker images

命令:要為網(wǎng)站構(gòu)建 Docker 容器,請運行以下命令:[警告:確保在代碼塊末尾處加上句點 (.)。]

docker build -t web2048 .

預(yù)期輸出

[root@ip-10-0-0-185 2048]# docker build -t web2048 .
Sending build context to Docker daemon  1.369MB
Step 1/3 : FROM nginx:latest
latest: Pulling from library/nginx
52d2b7f179e3: Pull complete
fd9f026c6310: Pull complete
055fa98b4363: Pull complete
96576293dd29: Pull complete
a7c4092be904: Pull complete
e3b6889c8954: Pull complete
da761d9a302b: Pull complete
Digest: sha256:104c7c5c54f2685f0f46f3be607ce60da7085da3eaa5ad22d3d9f01594295e9c
Status: Downloaded newer image for nginx:latest
 ---> eea7b3dcba7e
Step 2/3 : COPY . /usr/share/nginx/html
 ---> 9a7887c7a397
Step 3/3 : EXPOSE 80
 ---> Running in 1edf79febd20
Removing intermediate container 1edf79febd20
 ---> 096cafd2808b
Successfully built 096cafd2808b
Successfully tagged web2048:latest

構(gòu)建只需幾秒鐘即可完成。滾動到終端窗口底部,直到您看到一條表明構(gòu)建成功的如下類似消息:

Successfully built 096cafd2808b
Successfully tagged web2048:latest

命令:接下來,使用以下命令再次檢查映像列表,查看新的容器映像:

docker images

預(yù)期輸出

[root@ip-10-0-0-185 2048]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
web2048      latest    096cafd2808b   59 seconds ago   188MB
nginx        latest    eea7b3dcba7e   2 weeks ago      187MB

命令:接下來,要查看已經(jīng)構(gòu)建了哪些容器(應(yīng)該沒有),請運行以下命令:

docker container ls

命令:現(xiàn)在,您已經(jīng)構(gòu)建了 Docker 映像,接著運行以下命令,在命令主機上測試映像:

docker run -d -it -p 80:80 web2048

思考run 命令啟動該容器。命令中的 -d 標記以分離模式運行容器。根據(jù)設(shè)計,當用于運行容器的根進程退出時,容器也會退出分離模式。這樣,您可以在容器運行時繼續(xù)使用終端。命令中的 -p 80:80 參數(shù)將命令主機上的 80 端口綁定到 Docker 容器上的 80 端口。

注意:對于交互式進程(如 shell),您必須一起使用 -i -t(通常用作 -it),用于為容器進程分配一個 TTY。這些標記不是本實驗必需的;但是它們對排除容器故障非常有用。

[root@ip-10-0-0-185 2048]# docker run -d -it -p 80:80 web2048
e854ba65535e8380affccaef49b398baf9458e0c5a204182a2af0570656b2099

命令:您現(xiàn)在可以通過運行以下命令查看容器:

注意:可以使用鍵盤上的向上和向下箭頭查看以前使用的命令,無需復(fù)制和粘貼已經(jīng)運行的命令。還可以使用history 命令查看在一個會話中運行的所有命令。還可以結(jié)合使用 history 命令與 grep 和 pipe out 關(guān)鍵字搜索詞。

history | grep container

對于高級用戶,可以借助ctrl + r擊鍵來利用遞歸反向索引搜索。鍵入您要查找的關(guān)鍵字,按 Enter 鍵,終端將再次運行該命令。

命令:您可以嘗試使用以下命令:

ctrl + r

命令:現(xiàn)在鍵入要搜索的關(guān)鍵字(即 container)。按 Enter 鍵。

預(yù)期輸出

(reverse-i-search)`container': docker container ls

# press enter and the "list containers" command runs again.

[root@ip-10-0-0-185 ~]# docker container ls
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
e854ba65535e   web2048   "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   amazing_goodall

命令:如果遇到問題,或者不想使用遞歸搜索,只需鍵入以下命令:

docker container ls

命令:接下來,通過從 Web 瀏覽器訪問命令主機來測試容器。要獲取 EC2 實例的公有 IP 地址,請運行以下命令:

curl http://169.254.169.254/latest/meta-data/public-ipv4 -w "\n"

預(yù)期輸出

[root@ip-10-0-0-185 ~]# curl http://169.254.169.254/latest/meta-data/public-ipv4 -w "\n"
3.141.202.174

復(fù)制輸出中的公有 IP 值。

打開一個的瀏覽器標簽頁,在其中粘貼您剛剛復(fù)制的公有 IP 地址,然后按 Enter 鍵。

應(yīng)該能夠看到 2048 應(yīng)用程序。

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

返回到終端會話

要停止此 Docker 容器,請運行以下命令??梢栽俅问褂?docker container ls 命令,獲取容器 ID 和名稱。雖然容器 ID 是唯一的,但容器的每個實例化都有一個唯一的規(guī)范名稱。在運行命令期間,還可以使用 –name 標記命名每個容器。

命令:找到您的容器 ID 并運行以下命令,將 CONTAINER ID 替換為 web2048 容器的容器 ID:

docker stop CONTAINER ID

任務(wù) 4:創(chuàng)建 Amazon ECR 存儲庫并推送 Docker 映像

現(xiàn)在已構(gòu)建了一個工作容器映像,接下來需要將該映像存儲在其他人和資源可以訪問的位置。Amazon ECR 是滿足該使用案例要求的理想解決方案。使用 AWS CLI,將創(chuàng)建一個 Amazon ECR 存儲庫,并將剛剛測試過的映像推送到 Amazon ECR 中進行存儲。

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

之前已經(jīng)創(chuàng)建了 Web2048 Docker 映像。使用 docker images 命令再次查看映像。記下類別名稱(即 REPOSITORY、TAG、IMAGE ID、CREATED 和 SIZE),特別是 REPOSITORY。存儲庫是具有不同版本和名稱標簽的同一 Docker 映像的邏輯組。到目前為止,存儲庫名稱只能在本地訪問。要在共享映像存儲庫(如 Amazon ECR)中共享容器映像,必須將容器映像與中央映像存儲庫相關(guān)聯(lián)。

命令:要獲取有關(guān)所有已創(chuàng)建 Docker 映像的信息,請運行以下命令:

docker images

預(yù)期輸出

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
web2048      latest    096cafd2808b   11 minutes ago   188MB
nginx        latest    eea7b3dcba7e   2 weeks ago      187MB

在輸出中,IMAGE ID 是一個唯一標識符,可用于引用特定版本的 Docker 映像。也可以通過與映像關(guān)聯(lián)的存儲庫來引用該映像。

命令:運行aws configure 并將區(qū)域變量設(shè)置為實驗所在的區(qū)域。

AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name []: <YOUR_REGION>
Default output format [json]: json

注意:將 <YOUR_REGION> 替換為的所在的區(qū)域。

命令:要為 Docker 映像創(chuàng)建 Amazon ECR 存儲庫,請運行以下命令。

aws ecr create-repository --repository-name web2048

預(yù)期輸出

[root@ip-10-0-0-185 ~]# aws ecr create-repository --repository-name web2048
{
    "repository": {
        "repositoryUri": "654948215222.dkr.ecr.us-east-2.amazonaws.com/web2048",
        "imageScanningConfiguration": {
            "scanOnPush": false
        },
        "encryptionConfiguration": {
            "encryptionType": "AES256"
        },
        "registryId": "654948215222",
        "imageTagMutability": "MUTABLE",
        "repositoryArn": "arn:aws:ecr:us-east-2:654948215222:repository/web2048",
        "repositoryName": "web2048",
        "createdAt": 1693743822.0
    }
}

命令:運行以下命令,查看剛剛創(chuàng)建的 Amazon ECR 存儲庫:

aws ecr describe-repositories --query 'repositories[].[repositoryName, repositoryUri]' --output table

預(yù)期輸出

[root@ip-10-0-0-185 ~]# aws ecr describe-repositories --query 'repositories[].[repositoryName, repositoryUri]' --output table
---------------------------------------------------------------------
|                       DescribeRepositories                        |
+---------+---------------------------------------------------------+
|  web2048|  654948215222.dkr.ecr.us-east-2.amazonaws.com/web2048   |
+---------+---------------------------------------------------------+

稍后需要在本實驗中使用該 URI??梢詫⒃?URI 的值設(shè)置為一個環(huán)境變量,而不是將其復(fù)制到文本編輯器或記事本中供以后使用。這樣就可以重用該命令而不必查找 URI 值。

命令:要將存儲庫 URI 的值導出到一個環(huán)境變量中,請運行以下命令:

export REPOSITORY_URI=$(aws ecr describe-repositories --query 'repositories[].[repositoryUri]' --output text)
echo ${REPOSITORY_URI}

echo 命令應(yīng)當顯示當前 ECR 存儲庫 URI。

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

必須先登錄 Amazon ECR,然后才能將 Docker 映像推送到存儲庫。get-login 命令返回一個有效期為 12 小時的 docker login 令牌。您可以將此命令的輸出轉(zhuǎn)發(fā)到 shell,以運行 docker login 命令并完成身份驗證。

命令:要對 Amazon ECR 進行身份驗證,請運行以下命令:

export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account)

export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')

aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com

預(yù)期輸出

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

現(xiàn)在,使用 Docker 映像所在的存儲庫的 URI 標記該映像,并使用 latest 標簽表明它是最新構(gòu)建版本。

命令:運行以下命令:

docker tag web2048:latest ${REPOSITORY_URI}:latest

命令:要驗證是否已應(yīng)用標簽,請重新運行 docker images 命令。存儲庫 URI 會顯示在輸出中。

docker images

預(yù)期輸出

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

使用 docker push 命令,將 Docker 映像推送到存儲庫。

命令:運行以下命令:

docker push ${REPOSITORY_URI}:latest

預(yù)期輸出

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

命令:運行以下命令,查看映像元數(shù)據(jù)并確認推送成功:

aws ecr describe-images --repository-name web2048

預(yù)期輸出

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算


任務(wù) 5:創(chuàng)建 ECS 集群

在此任務(wù)中,將創(chuàng)建一個 Amazon ECS 集群、一個 ECS 集群任務(wù)定義,以及一個包含容器部署任務(wù)的 ECS 集群服務(wù)

Amazon ECS 容器代理將代表您調(diào)用 AWS API,因此為了讓服務(wù)知道代理屬于您,它需要 IAM 策略和角色。此 IAM 角色稱為任務(wù)執(zhí)行 IAM 角色。在預(yù)置作為先決條件的實驗資源時,為您創(chuàng)建了任務(wù)執(zhí)行 IAM 角色。如果創(chuàng)建集群的用戶具有這些 IAM 權(quán)限,則將自動創(chuàng)建該角色。如果沒有,則必須手動創(chuàng)建該角色。

命令:運行以下命令,創(chuàng)建 Amazon ECS 集群,并將集群名稱 web2048 作為參數(shù)傳遞:

aws ecs create-cluster --cluster-name web2048

預(yù)期輸出

[root@ip-10-0-0-185 ~]# aws ecs create-cluster --cluster-name web2048
{
    "cluster": {
        "status": "ACTIVE",
        "defaultCapacityProviderStrategy": [],
        "statistics": [],
        "capacityProviders": [],
        "tags": [],
        "clusterName": "web2048",
        "settings": [
            {
                "name": "containerInsights",
                "value": "disabled"
            }
        ],
        "registeredContainerInstancesCount": 0,
        "pendingTasksCount": 0,
        "runningTasksCount": 0,
        "activeServicesCount": 0,
        "clusterArn": "arn:aws:ecs:us-east-2:654948215222:cluster/web2048"
    }
}

在 ECS 集群上運行任務(wù)之前,必須先注冊任務(wù)定義。任務(wù)定義是分組在一起的容器的列表。注冊新任務(wù)定義分為兩個部分:一部分是傳遞到命令行的任務(wù)定義文件(這種方式更干凈、更容易),另一部分是使用標志和參數(shù)值注冊新任務(wù)的 AWS CLI 命令。本實驗使用第一個選項。

命令:創(chuàng)建任務(wù)定義文件。導航到主目錄。

cd ~

命令:獲取 Amazon ECR 存儲庫 URI,并將其復(fù)制到文本編輯器。將在下一步中需要用到此值。

echo ${REPOSITORY_URI}

654948215222.dkr.ecr.us-east-2.amazonaws.com/web2048

命令:為任務(wù)定義創(chuàng)建文件。

vim web2048_task_definition.json

將以下內(nèi)容添加到任務(wù)定義文件中。將 image: 鍵的存儲庫 URI 替換為上一步的值,并將 executionRoleArntaskRoleArn 的值替換為executionRoleArn 值:arn:aws:iam::654948215222:role/LabStack-2848353a-a5d2-4c70-b-ECSTaskExecutionRole-1VLGSX361UAJV

請勿刪除各行的"executionRoleArn": 、 taskRoleArn:image:部分,只刪除冒號后的值。另外,映像值應(yīng)以 “https://” 開頭。它應(yīng)當以 AWS 賬戶 ID 開頭,以標簽:latest 結(jié)尾。這些值是字符串,因此應(yīng)使用雙引號括起來。

{
    "family": "web2048",
    "networkMode": "awsvpc",
    "taskRoleArn": "arn:aws:iam::654948215222:role/LabStack-2848353a-a5d2-4c70-b-ECSTaskExecutionRole-1VLGSX361UAJV",
    "executionRoleArn": "arn:aws:iam::654948215222:role/LabStack-2848353a-a5d2-4c70-b-ECSTaskExecutionRole-1VLGSX361UAJV",
    "containerDefinitions": [
        {
            "name": "web2048",
            "image": "654948215222.dkr.ecr.us-east-2.amazonaws.com/web2048:latest",
            "portMappings": [
                {
                    "containerPort": 80,
                    "hostPort": 80,
                    "protocol": "tcp"
                }
            ],
            "essential": true
        }
    ],
    "requiresCompatibilities": [
        "FARGATE"
    ],
    "cpu": "256",
    "memory": "512"
}

完成文件編輯后,關(guān)閉 vim 編輯器。

命令:運行以下命令,注冊新的任務(wù)定義:

aws ecs register-task-definition --cli-input-json file://web2048_task_definition.json

成功創(chuàng)建后,應(yīng)該會獲得包含任務(wù)定義詳細信息的 JSON 輸出。

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

接下來,創(chuàng)建一個服務(wù)。該服務(wù)運行并維護指定任務(wù)定義中所需數(shù)量的任務(wù)。如果服務(wù)中運行的任務(wù)數(shù)量降到 desiredCount 以下,則 Amazon ECS 將在指定的集群中運行該任務(wù)的另一個副本。要創(chuàng)建服務(wù),可以將參數(shù)傳遞給 AWS CLI,也可以傳遞 --cli-input-json 標記(與任務(wù)定義的方法相同)。本實驗室使用 json 文件方法。

命令:為服務(wù)創(chuàng)建新的輸入文件:

vim web2048_service.json

復(fù)制下面的文本并粘貼到文件編輯器中。

{
    "cluster": "web2048",
    "serviceName": "web2048",
    "taskDefinition": "web2048",
    "loadBalancers": [
        {
            "targetGroupArn": "arn:aws:elasticloadbalancing:us-east-2:654948215222:targetgroup/ECS-Target-Group/69261bec57f1aaa4",
            "containerName": "web2048",
            "containerPort": 80
        }
    ],
    "desiredCount": 2,
    "launchType": "FARGATE",
    "platformVersion": "LATEST",
    "networkConfiguration": {
        "awsvpcConfiguration": {
            "subnets": [
                "subnet-0cf27533f0902b9e9",
                "subnet-04a7886526e89872e"
            ],
            "securityGroups": [
                "sg-058441d03931d04d1"
            ],
            "assignPublicIp": "ENABLED"
        }
    }
}

targetGroupArn 值、PublicSubnet1PublicSubnet2ecsSecurityGroup 替換為在實驗說明左側(cè)顯示的值。

  • arn:aws:elasticloadbalancing:us-east-2:654948215222:targetgroup/ECS-Target-Group/69261bec57f1aaa4

  • subnet-0cf27533f0902b9e9

  • subnet-04a7886526e89872e

  • sg-058441d03931d04d1

完成文件編輯后,關(guān)閉 vim 編輯器。

命令:創(chuàng)建服務(wù):

aws ecs create-service --cli-input-json file://web2048_service.json

成功創(chuàng)建后,您應(yīng)該會獲得包含服務(wù)詳細信息的 JSON 輸出。服務(wù)創(chuàng)建任務(wù)僅需數(shù)秒;但是,創(chuàng)建服務(wù)后,就會預(yù)置所需數(shù)量的任務(wù),任務(wù)將進入待處理狀態(tài),最終任務(wù)狀態(tài)將變?yōu)?RUNNING(正在運行)。

命令:您可以通過運行以下命令來查看任務(wù)狀態(tài):

aws ecs describe-clusters --cluster web2048

預(yù)期輸出

[root@ip-10-0-0-185 ~]# aws ecs describe-clusters --cluster web2048
{
    "clusters": [
        {
            "status": "ACTIVE",
            "defaultCapacityProviderStrategy": [],
            "statistics": [],
            "capacityProviders": [],
            "tags": [],
            "clusterName": "web2048",
            "settings": [],
            "registeredContainerInstancesCount": 0,
            "pendingTasksCount": 2,
            "runningTasksCount": 0,
            "activeServicesCount": 1,
            "clusterArn": "arn:aws:ecs:us-east-2:654948215222:cluster/web2048"
        }
    ],
    "failures": []
}

記下 active ServiceCount 的值,這表示與處于 ACTIVE(活躍)狀態(tài)的集群關(guān)聯(lián)的服務(wù)數(shù)。還要記下 pendingTasksCountrunningTaskCount 的值。創(chuàng)建服務(wù)時,您將看到待處理任務(wù)的數(shù)量變化,當任務(wù)完成時,它們的狀態(tài)變?yōu)?RUNNING(正在運行),并且 runningTasksCount 的值會反映 desiredCount 的值。

在本實驗中,服務(wù)中定義了兩個任務(wù)。幾分鐘后,任務(wù)應(yīng)當進入 RUNNING(正在運行)狀態(tài)。您可以重復(fù)前面的命令來監(jiān)控進度。當 runningTaskCount 值等于 2 時,繼續(xù)下一步。

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

下圖顯示了自己創(chuàng)建的資源以及我們?yōu)槟鷦?chuàng)建的資源:

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算


任務(wù) 6:測試應(yīng)用程序

從實驗說明屏幕的左側(cè)復(fù)制 albPublicDnsUrl 值,并將其粘貼到 Web 瀏覽器的新標簽頁中。Lab-3-ALB-1477954992.us-east-2.elb.amazonaws.com

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算

隨后系統(tǒng)將為您顯示 web2048 應(yīng)用程序。使用電腦上的箭頭鍵玩游戲,以便測試應(yīng)用程序。此方法應(yīng)該與在命令主機上測試容器相同。

【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序,亞馬遜云,aws,云計算文章來源地址http://www.zghlxwxcb.cn/news/detail-706445.html

總結(jié)

  • 了解構(gòu)建 Docker 映像所需的步驟
  • 將容器映像上傳到 Amazon ECR 存儲庫,以便用于部署 Amazon ECS
  • 將存儲庫中的容器部署到 AWS Fargate 集群
  • 使用在 Amazon ECS Fargate 集群上運行的 AWS CLI 和容器來部署示例應(yīng)用程序

到了這里,關(guān)于【AWS實驗 】在 AWS Fargate 上使用 Amazon ECS 部署應(yīng)用程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 使用 Amazon AppFabric 提高 SaaS 應(yīng)用程序的安全可觀察性

    使用 Amazon AppFabric 提高 SaaS 應(yīng)用程序的安全可觀察性

    : [Amazon Web Services re:Invent 2023, Amazon AppFabric, Audit Logs, Security Teams, Sas Applications, Appfabric, Splunk] 本文字數(shù): 1800, 閱讀完需: 9 分鐘 如視頻不能正常播放,請前往bilibili觀看本視頻。 https://www.bilibili.com/video/BV1uc411D7Wc 軟件即服務(wù) (SaaS) 應(yīng)用程序用戶數(shù)量大幅增加,這為 IT 和安

    2024年01月24日
    瀏覽(19)
  • [ 云計算 | AWS ] Java 應(yīng)用中使用 Amazon S3 進行存儲桶和對象操作完全指南

    [ 云計算 | AWS ] Java 應(yīng)用中使用 Amazon S3 進行存儲桶和對象操作完全指南

    本文收錄于【#云計算入門與實踐 - AWS】專欄中,收錄 AWS 入門與實踐相關(guān)博文。 本文同步于個人公眾號:【 云計算洞察 】 更多關(guān)于云計算技術(shù)內(nèi)容敬請關(guān)注:CSDN【#云計算入門與實踐 - AWS】專欄。 本系列已更新博文: [ 云計算 | AWS 實踐 ] Java 應(yīng)用中使用 Amazon S3 進行存儲桶

    2024年02月11日
    瀏覽(47)
  • [ 云計算 | AWS 實踐 ] Java 應(yīng)用中使用 Amazon S3 進行存儲桶和對象操作完全指南

    [ 云計算 | AWS 實踐 ] Java 應(yīng)用中使用 Amazon S3 進行存儲桶和對象操作完全指南

    本文收錄于【#云計算入門與實踐 - AWS】專欄中,收錄 AWS 入門與實踐相關(guān)博文。 本文同步于個人公眾號:【 云計算洞察 】 更多關(guān)于云計算技術(shù)內(nèi)容敬請關(guān)注:CSDN【#云計算入門與實踐 - AWS】專欄。 本系列已更新博文: [ 云計算 | AWS 實踐 ] Java 應(yīng)用中使用 Amazon S3 進行存儲桶

    2024年02月08日
    瀏覽(25)
  • 【Terraform學習】使用 Terraform 創(chuàng)建應(yīng)用程序負載均衡器(Terraform-AWS最佳實戰(zhàn)學習)

    【Terraform學習】使用 Terraform 創(chuàng)建應(yīng)用程序負載均衡器(Terraform-AWS最佳實戰(zhàn)學習)

    前提條件 安裝 Terraform :?地址 下載倉庫代碼模版 本實驗代碼 位于? task_elb ?文件夾中 。 變量文件? variables.tf ??? ?? 在上面的代碼中,您將 聲明 , aws_access_key , aws_secret_key 和? 區(qū)域變量 。 terraform.tfvars ?? ?? 在上面的代碼中,您將 定義變量的值 。 main.tf ?? ? ? 在

    2024年02月10日
    瀏覽(28)
  • 將 Spring Boot 應(yīng)用程序與 Amazon DocumentDB 集成

    將 Spring Boot 應(yīng)用程序與 Amazon DocumentDB 集成

    Amazon DocumentDB(與 MongoDB 兼容)是一種可擴展、高度持久和完全托管的數(shù)據(jù)庫服務(wù),用于操作任務(wù)關(guān)鍵型 MongoDB 工作負載。在 Amazon DocumentDB 上,您可以使用相同的 MongoDB 應(yīng)用程序代碼、驅(qū)動程序和工具來運行、管理和擴展工作負載,無需關(guān)心管理底層基礎(chǔ)設(shè)施。? Spring Boot?提

    2024年02月10日
    瀏覽(29)
  • 【小白】使用 Amazon SageMaker 構(gòu)建機器學習應(yīng)用【附全程部署視頻】

    【小白】使用 Amazon SageMaker 構(gòu)建機器學習應(yīng)用【附全程部署視頻】

    全程部署視頻看這里,原視頻30分鐘左右為了觀看體驗剪掉了等待時間: 小白使用Amazon SageMaker 構(gòu)建機器學習應(yīng)用 Amazon SageMaker: https://aws.amazon.com/cn/sagemaker/ 輸入名稱、選擇實例類型、配置磁盤大小,具體如下圖 創(chuàng)建新角色,選擇任意S3存儲桶,點擊創(chuàng)建角色 配置VPC網(wǎng)絡(luò),選

    2023年04月18日
    瀏覽(28)
  • 【aliyun ECS】CentOS 7/8使用kubeadm部署kubernets(k8s)集群【附阿里云實驗室】內(nèi)有福利

    【aliyun ECS】CentOS 7/8使用kubeadm部署kubernets(k8s)集群【附阿里云實驗室】內(nèi)有福利

    好消息好消息,阿里云全線降價,大量服務(wù)提供免費甚至永久的試用,趕緊來薅大廠羊毛吧,坐電梯即可直達! 送福利!阿里云熱門產(chǎn)品免費領(lǐng)(含ECS),點擊進入 :https://click.aliyun.com/m/1000370359/ 送福利!阿里云熱門產(chǎn)品免費領(lǐng)(含ECS),點擊進入 :https://click.aliyun.com/m/

    2023年04月27日
    瀏覽(24)
  • 基于aws構(gòu)建一個web應(yīng)用程序

    基于aws構(gòu)建一個web應(yīng)用程序

    經(jīng)驗帖以及個人總結(jié)。 一. 在創(chuàng)建EC2主機前,可先行創(chuàng)建密匙以及安全組。 關(guān)于安全組: 1. 入站規(guī)則(別人訪問你做的一些限制) :開放ssh 端口。是為了可以進行l(wèi)inux相關(guān)的連接。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?開放http端口。

    2024年02月08日
    瀏覽(29)
  • 深入了解在 AWS 中存儲應(yīng)用程序參數(shù)的最佳方式

    許多應(yīng)用程序現(xiàn)在托管在公共云平臺上,因此必須利用云來存儲其數(shù)據(jù)和應(yīng)用程序參數(shù)。在最受歡迎的云提供商中,亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)是使用最廣泛的。雖然 AWS 提供了許多用于存儲應(yīng)用程序參數(shù)的解決方案,但了解哪個選項最適合您的應(yīng)用程序和使用案例可能很困難。

    2024年02月02日
    瀏覽(27)
  • Spark 部署與應(yīng)用程序交互簡單使用說明

    Spark 部署與應(yīng)用程序交互簡單使用說明

    本文將講解 Spark 的部署,并通過三個簡單的步驟來編寫一個獨立應(yīng)用程序。 我們將使用本地模式,其中所有的處理都是在Spark shell中的一臺機器上完成的——這是學習框架的一種簡單方法,迭代執(zhí)行的方式可以及時反饋直接結(jié)果。使用Spark shell,可以在編寫復(fù)雜的Spark應(yīng)用程

    2024年04月12日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包