您好,登錄后才能下訂單哦!
AWS的負載均衡器工具如何部署codedeploy ,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Elastic Load Balancing 提供了三種可用于 CodeDeploy 部署的負載均衡器:Classic Load Balancer、Application Load Balancer 和 Network Load Balancer。
路由和負載均衡在應用程序層 (HTTP/HTTPS) 進行,并支持基于路徑的路由。它可以將請求路由到您的 Virtual Private Cloud (VPC) 中每個 EC2 實例或容器實例上的端口。
應用程序負載均衡器 目標組必須有一個目標類型 instance;
Network Load Balancer
路由和負載均衡在傳輸層(TCP/UDP 層,即第 4 層)進行,依據是從 TCP 數據包標頭中而非從數據包內容中提取的地址信息。Network Load Balancer 可以處理突發流量、保留客戶端的源 IP 以及在負載均衡器的使用壽命內使用固定 IP
在 CodeDeploy 部署期間,負載均衡器會阻止 Internet 流量路由到未就緒的實例,目前正在部署的實例,或環境不再需要的實例。但是,負載均衡器的具體作用取決于它是用于藍/綠部署還是就地部署。
注意
Elastic Load Balancing 負載均衡器的使用在藍/綠部署中為必需,在就地部署中為可選。
依托于 Elastic Load Balancing 負載均衡器來重新路由實例流量是 CodeDeploy 藍/綠部署的基礎。
在藍/綠部署期間,負載均衡器根據您指定的規則,允許將流量路由到已部署最新應用程序修訂的部署組中的新實例 (替換環境),然后阻止運行較早應用程序修訂的舊實例的流量 (原始環境)。
替換環境中的實例注冊負載均衡器后,將取消注冊原始環境中的實例,并根據您的需要終止。
對于藍/綠部署,您可以在部署組中指定 傳統負載均衡器、應用程序負載均衡器 或 Network Load Balancer。您可以使用 CodeDeploy 控制臺或 AWS CLI 將負載均衡器添加到部署組。
在就地部署的過程中,負載均衡器可以防止 Internet 流量路由到要部署的實例;實例部署完成后,可恢復對該實例的流量路由。
如果就地部署期間未使用負載均衡器,Internet 流量在部署過程中可能仍會引向該實例。因此,您的客戶可能會遇到中斷、不完整或過時的 Web 應用程序。在將 Elastic Load Balancing 負載均衡器用于就地部署時,部署組中的實例將從負載均衡器取消注冊,更新為最新的應用程序修訂,并在部署成功后向負載均衡器重新注冊同一部署組。
對于就地部署,您可以指定 傳統負載均衡器、應用程序負載均衡器 或 Network Load Balancer。您可以在配置部署組的過程中指定負載均衡器,或使用 CodeDeploy 提供的腳本實施負載均衡器。
可以使用 CodeDeploy 控制臺或 AWS CLI 將負載均衡器添加到部署組;
通過執行以下過程中的步驟,使用部署聲明周期腳本為就地部署設置負載均衡。
注意
您應該僅在使用腳本為就地部署設置負載均衡器時使用 CodeDeployDefault.OneAtATime 部署配置。不支持并發運行,并且 CodeDeployDefault.OneAtATime 設置可確保腳本的順序執行;
在 GitHub 上的 CodeDeploy 示例存儲庫中,我們提供了說明和示例,您可進行調整以使用 CodeDeploy Elastic Load Balancing 負載均衡器。這些存儲庫包含三個示例腳本 — register_with_elb.sh
、deregister_from_elb.sh
和 common_functions.sh
— 這些腳本提供了開始操作所需的全部代碼。只需編輯這 3 個腳本中的占位符,然后從 appspec.yml
文件中引用這些腳本。
要使用已注冊到 Elastic Load Balancing 負載均衡器的 Amazon EC2 實例設置 CodeDeploy 中的就地部署,請執行以下操作:
下載要用于就地部署的負載均衡器的類型的示例:
傳統負載均衡器
應用程序負載均衡器 或 Network Load Balancer(同一腳本可用于任一類型)
確保每個目標 Amazon EC2 實例均已安裝 AWS CLI。
確保每個目標 Amazon EC2 實例均已附加至少一個 IAM 實例配置文件,并且具有 elasticloadbalancing:* 和 autoscaling:* 權限。
將部署生命周期事件腳本 (register_with_elb.sh
、deregister_from_elb.sh
和 common_functions.sh
) 包含在應用程序的源代碼目錄中。
在應用程序修訂的 appspec.yml
中,提供有關 CodeDeploy 在 ApplicationStart 事件期間運行 register_with_elb.sh
腳本以及在 ApplicationStop 事件期間運行 deregister_from_elb.sh
腳本的說明。
如果實例屬于某個 Amazon EC2 Auto Scaling 組,則可跳過此步驟。
在 common_functions.sh
腳本中:
如果您使用的是 傳統負載均衡器,請在 ELB_LIST=""
中指定 Elastic Load Balancing 負載均衡器的名稱,并對文件中的其他部署設置進行所需的任何更改。
如果您使用的是 應用程序負載均衡器 或 Network Load Balancer,請在 TARGET_GROUP_LIST=""
中指定 Elastic Load Balancing 目標組的名稱,并對文件中的其他部署設置進行所需的任何更改。
將應用程序的源代碼、appspec.yml
和部署生命周期事件腳本綁定到一個應用程序修訂中,然后上傳該修訂。將該修訂部署到 Amazon EC2 實例。在部署期間,部署生命周期事件腳本將向負載均衡器取消注冊 Amazon EC2 實例,等待連接耗盡,然后在部署完成后向負載均衡器重新注冊 Amazon EC2 實例。
要將應用程序修訂從 GitHub 存儲庫部署到實例,請執行以下步驟:
創建與 CodeDeploy 和將部署到的 Amazon EC2 實例類型兼容的修訂。
要創建兼容版本,請按照計劃 CodeDeploy 的修訂和將應用程序規范文件添加到 CodeDeploy 的修訂中的說明執行操作。
使用 GitHub 賬戶將您的修訂添加到 GitHub 存儲庫。
使用 CodeDeploy 控制臺中的創建部署頁或使用 AWS CLI create-deployment 命令將修訂從 GitHub 存儲庫部署到已配置為在 CodeDeploy 部署中使用的目標實例。
如果您需要調用 create-deployment 命令,則必須先使用此控制臺的創建部署頁,針對指定應用程序為 CodeDeploy 授予代表您的首選 GitHub 賬戶與 GitHub 交互的權限。每個應用程序只需進行一次這樣的操作。
GitHub 對 CodeDeploy 中的應用程序進行的身份驗證
在向 CodeDeploy 提供與 GitHub 交互的權限后,GitHub 賬戶和應用程序之間的關聯將存儲在 CodeDeploy 中。您可以將應用程序鏈接到其他 GitHub 賬戶。也可以撤消 CodeDeploy 與 GitHub 交互的權限。
將 GitHub 賬戶鏈接到 CodeDeploy 中的應用程序
Sign in to the AWS 管理控制臺 and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.
注意
使用您在 CodeDeploy 入門中使用的相同賬戶或 IAM 用戶信息登錄。
在導航窗格中,展開 Deploy (部署),然后選擇 Applications (應用程序)。
選擇要鏈接到其他 GitHub 賬戶的應用程序。
如果應用程序沒有部署組,請選擇創建部署組來創建一個部署組
從部署中,選擇創建部署。
注意
無需創建新的部署。這是目前將其他 GitHub 賬戶鏈接到應用程序的唯一方式。
在部署設置中,對于修訂類型,選擇我的應用程序將存儲在 GitHub 中。
執行以下操作之一:
要為 CodeDeploy 應用程序創建與 GitHub 賬戶的連接,在單獨的 Web 瀏覽器選項卡中注銷 GitHub。在 GitHub 令牌名稱中,鍵入一個名稱來標識此連接,然后選擇連接到 GitHub。該網頁將提示授權 CodeDeploy 與應用程序的 GitHub 進行交互。繼續執行步驟 10。
要使用已創建的連接,請在 GitHub 令牌名稱中,選擇其名稱,然后選擇連接到 GitHub。繼續執行步驟 8。
要創建與其他 GitHub 賬戶的連接,在單獨的 Web 瀏覽器選項卡中注銷 GitHub。在 GitHub 令牌名稱中,鍵入一個名稱來標識此連接,然后選擇連接到 GitHub。該網頁將提示授權 CodeDeploy 與應用程序的 GitHub 進行交互。繼續執行步驟 10。
如果尚未登錄 GitHub,請按照 Sign in 頁上的說明執行操作以使用要將應用程序鏈接到的 GitHub 賬戶進行登錄。
選擇 Authorize application。GitHub 向 CodeDeploy 提供代表所選應用程序的已登錄 GitHub 賬戶與 GitHub 交互的權限。
如果您需要創建部署,請選擇 Cancel
撤消 CodeDeploy 的與 GitHub 交互的權限
使用要撤消 CodeDeploy 權限的 GitHub 賬戶的憑證登錄到 GitHub。
打開 GitHub 應用程序頁,在已授權應用程序列表中找到 CodeDeploy,然后按照用于撤消應用程序授權的 GitHub 過程執行操作。
CodeDeploy 與私有和公有 GitHub 存儲庫進行交互
CodeDeploy 支持從私有和公有 GitHub 存儲庫部署應用程序。當您向 CodeDeploy 授予代表您訪問 GitHub 的權限后,CodeDeploy 針對您的 GitHub 賬戶有權訪問的所有私有 GitHub 存儲庫都將擁有讀寫訪問權。不過,CodeDeploy 只能從 GitHub 存儲庫進行讀取。它將不會對任何私有 GitHub 存儲庫進行寫入。
CodeDeploy 與組織托管的 GitHub 存儲庫進行交互
默認情況下,組織托管的 GitHub 存儲庫(與賬戶自己的私有或公有存儲庫相對)未授予對第三方應用程序(包括 CodeDeploy)的訪問權。如果在 GitHub 中啟用組織的第三方應用程序限制,并且您嘗試從其 GitHub 存儲庫中部署代碼,則部署將失敗。可通過兩種方式解決此問題。
作為組織成員,您可以要求組織所有者批準對 CodeDeploy 的訪問權。請求此訪問權的步驟取決于您是否已授權單個賬戶訪問 CodeDeploy
當源代碼發生更改時,您可以觸發從 CodePipeline 進行的部署
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。