簡體   English   中英

如何在AWS EC2實例上擴展Tomcat?

[英]How to scale out Tomcat on AWS EC2 instance?

關於自動縮放有很多問題。 但是沒有一個談論擴展這些服務器上安裝的軟件堆棧。 AWS Auto Scaling僅擴展資源。 不是它上面的軟件。 就我而言,我期待將第一個實例上安裝的Tomcat服務器(和Apache HTTPD服務器)擴展為AWS Scaling Service創建的新實例的一部分。

我按照常規流程在Amazon Web Services EC2實例上為我的應用程序建立擴展。

  1. 使用正在運行的實例的精確配置從現有實例創建快照 - 成功
  2. 從上面的快照創建AMI - 成功
  3. 創建了自動縮放組並啟動配置 - 成功
  4. 擴展策略是在CPU> = 65%時創建一個新實例2次。 - 成功

上述過程僅創建一個新實例,但不會復制圖像上的軟件堆棧。

如何以這樣的方式完成自動縮放:當AWS自動縮放發生時,AMI的Tomcat服務器部分也會被復制並在新的擴展實例中啟動。

我必須使用Puppet / Chef或任何此類工具來實現這一目標嗎? 或者AWS中是否有使用命令行的選項?

請注意,Elastic Load Balancer會根據啟動配置自動添加新實例,但由於新擴展實例上沒有安裝Apache服務器,因此顯示“停止服務”。

您可以直接從EC2實例創建AMI,而不是從快照創建AMI。 快照適用於EBS卷。 檢查您是否正在運行已安裝並運行Apache / Tomcat的運行EC2實例(並配置為在重新啟動時自動啟動)正確創建了AMI。

不,您不必使用Puppet / Chef或任何其他CM工具。 你可以通過以下幾種方式做你想做的事:

  1. 最簡單的方法是從正在運行的EC2實例創建AMI,然后將Auto Scaling組配置為根據某個指標從該AMI啟動新實例。
  2. 使用不帶Apache / Tomcat的基礎AMI或您的軟件,然后在啟動時引導新實例以下載和配置所需的一切。

#1的缺點是您的AMI會很快過時。 #2的缺點是您的實例需要更長時間才能投入使用。 我建議使用#1和#2的組合,特別是每隔幾個月捕獲一個新的AMI,這將成為您啟動的基礎AMI,並在啟動時通過userdata init腳本更新實例。

暫無
暫無

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

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