簡體   English   中英

Windows服務並關閉EC2節點

[英]Windows Services and shutting down EC2 nodes

現在,我已經在測試床EC2節點上運行了一個相當簡單的Windows服務,基本上是:

  • 服務啟動時,在我們本地數據中心的計算機上調用Web服務(該服務設置為“自動啟動”,因此它在實例聯機時運行)。
  • 每分鍾一次調用另一個Web服務作為監視心跳。
  • 服務停止時調用第三個Web服務。

我們在Linux EC2實例中使用它非常好,並且Windows服務在啟動,檢測信號和手動停止時都可以正常工作。

問題在於,通過ElasticFox,Rightscale等終止節點時,該服務似乎永遠不會停止,或者至少它永遠不會進行Web服務調用。 有什么想法嗎?

[請注意,這是從我在AWS開發人員論壇上的帖子中逐字復制的,但是與SO相比,這是極低的流量。 道歉!]

編輯 :關於網絡中斷的問題,我也不是Windows服務最精通的人,如果將Netman設置為服務依賴項,是否可以保證服務終止的順序呢?

關於EBS,我們為在普通Linux實例上運行的類似系統采用的模型將應用程序服務器視為短暫的,因此EBS不會給我們帶來太多好處。 我們在EC2之上使用Rightscale,這使鈎子可以關閉Linux實例,因此我們只是將實例的日志發送到其他地方。

編輯#2 :好吧,我從AWS員工那里得到的回復比我預期的要快得多:

對於Windows,由於某些技術限制,通過API終止(這意味着通過elasticfox,rightscale等)是很難進行的。 這意味着就像用電源按鈕關閉計算機而不是關機一樣。

有趣..

我使用新的Windows EBS根卷測試了啟動和關閉組策略腳本。 當您停止和啟動這些實例時,這兩個腳本都會在適當的順序中按預期運行。 因此,一種替代方法是使用EBS根卷運行您的實例並發出stop命令,以確保Windows實例執行所有關閉序列。 實例停止后,您應該能夠終止該實例並釋放與其關聯的所有EBS卷。

Windows關閉時發生了很多事情,所以我猜想您的Web服務調用所需的東西已經停止了,首先是網絡連接。

這有點棘手,因為您無法在C或D驅動器上保留本地日志文件來檢查是否至少嘗試了一次調用,因為一旦實例停止,您將永遠無法再次調用它們。 您是否將EBS卷與可能包含日志文件的實例一起使用?

暫無
暫無

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

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