簡體   English   中英

如何在多個實例Amazon EC2 Autocaling組上部署代碼?

[英]how to deploy code on multiple instances Amazon EC2 Autocaling group?

因此,我們正在建立一個基於magento的電子商務商店。 我們希望使用RDS作為數據庫服務,並在需要時使用Amazon自動縮放和彈性負載平衡器來將其部署在Amazon EC2實例上。

我不明白的是:我已經在EC2實例(數據庫位於RDS中)上安裝並配置了生產magento環境。 這樣很好。 但是現在當我想動態擴展實例數時

  • 每次如何在動態生成的實例上部署代碼?
  • 將aws復制整個實例,為它分配一個新的ip,並將其作為新實例生成,還是我必須編寫一些代碼來自動化該過程?
  • 加上每次生成新實例時從git中提取代碼並進行部署都不會產生開銷嗎?

對於該主題的一些資源的詳細解釋或方向將不勝感激。

您可以在AutoScalingGroup啟動配置中執行此操作。 CloudFormation中的LaunchConfiguration中有一個UserData部分,您可以在其中編寫一個腳本,該腳本在ASG擴大規模並部署新實例時運行。

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-userdata

這與EC2實例中的UserData部分相同。 您可以使用LifeCycle掛鈎,該掛鈎將告訴ASG在您要配置的所有內容都設置好之前不要將EC2實例加載。

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html

我鏈接了所有CloudFormation頁面,但是您可能正在使用其他CI / CD工具來部署基礎架構,但是希望可以幫助您入門。

首先,請檢查AWS CloudFormation 您將創建模板來設計應用程序的基礎結構的工作方式〜基礎結構作為代碼。 有了這些模板后,您可以通過推送對模板和/或應用程序代碼的更改來向基礎結構推出更新。

在我當前的項目中,我們有一個專用於這些基礎結構模板的github存儲庫,以及一個用於我們的應用程序代碼的單獨存儲庫。 創建用於創建AWS資源的管道,該管道將在您每次推送到特定分支上的存儲庫時將更新發布到AWS。

  • 創建基礎架構管道
  • 每當基礎結構模板的代碼發生更改時,您就可以在管道的第一階段觸發構建。 請參閱AWS CodePipeline ,也請參閱AWS CodeBuild 這些不是您唯一需要的AWS資源,但它們可能是主要的資源,當然,除了前面提到的在cloudformation模板中完成的工作之外。

每次如何在動態生成的實例上部署代碼?

  • 檢查containers工作方式,這樣會更好,並且將大大補充您對啟動新版本應用程序的工作方式的學習。 首先,請參閱docker ,但請隨時檢查可用的任何資源
  • 繼續我當前的項目:我們確實有一個專用於我們應用程序的單獨管道,但也會在我們的基礎結構管道更新后觸發。 我們的應用程序管道旨在通過AWS Codebuild構建應用程序的新版本,這將創建一個image ,該image將成為docker文檔中的一個容器。
  • 我們有兩個觸發器或兩個源將觸發對應用程序管道的更新部署,一個是對基礎結構管道的更改成功建立,第二個是通過AWS CodeBuild連接的github存儲庫上的代碼更改時。
  • 選中AWS AutoScaling ,該區域涵蓋了新實例的動態啟動,在需要時關閉實例,在需要時替換不正常的實例。 另請參閱AWS CloudWatch ,您可以使用它設計標准以觸發縮小/放大和/或放大/縮小。

將aws復制整個實例,為它分配一個新的ip,並將其作為新實例生成,還是我必須編寫一些代碼來自動化該過程?

  • 請參閱AWS ElasticLoadBalancing,並進一步了解AWS AutoScaling。 在自動化過程中,如果您將繼續使用CloudFormation,實例和/或容器(取決於您的設計)將得到優雅的管理。

加上每次生成新實例時從git中提取代碼並進行部署都不會產生開銷嗎?

  • 如前所述,前面有一個通過CodeBuild推出應用程序新版本的管道,這將創建一個具有新代碼更改的映像,當一切准備就緒時,它將被部署為容器。 在新版本的應用程序啟動並運行之后,舊的EC2實例或舊的容器(取決於您希望如何部署應用程序)將正常關閉。 這將使您的停機時間為零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM