0

現在、テストベッド EC2 ノードで実行されているかなり単純な Windows サービスがあります。基本的には次のとおりです。

  • サービスの開始時に、ローカル データ センターのマシンで Web サービスを呼び出します (サービスは [自動スタートアップ] に設定されているため、インスタンスがオンラインになると実行されます)。
  • 監視ハートビートとして、1 分に 1 回別の Web サービスを呼び出します。
  • サービスの停止時に 3 番目の Web サービスを呼び出します。

Linux EC2 インスタンスでこれを使用しており、Windows サービスは起動、ハートビート、および手動停止で正常に動作します。

問題は、ElasticFox、Rightscale などを介してノードを終了するときに、サービスが停止していないように見えるか、少なくとも Web サービスの呼び出しが行われないことです。何かご意見は?

[これは AWS 開発者フォーラムの私の投稿からそのままコピーされたものですが、SO に比べてトラフィックが非常に少ないことに注意してください。申し訳ありません! ]

編集:ネットワークがダウンするという点に関しては、私はWindowsサービスにも精通していません.Netmanをサービスの依存関係として設定した場合、サービス終了の順序はそれを尊重することが保証されますか?

EBS に関しては、従来の単純な Linux インスタンスで実行される同様のシステムに採用したモデルは、アプリ サーバーを一時的なものとして扱うため、EBS はそれほどメリットがありません。EC2 の上で Rightscale を使用しているため、Linux インスタンスへのフックがシャットダウンされるため、インスタンスのログを別の場所に出荷するだけです。

編集 #2 : 予想よりもはるかに早く AWS スタッフから返信がありました。

Windows の場合、API (elasticfox や rightscale などを使用することを意味します) を介して終了すると、いくつかの技術的な制限により、ハード シャットダウンが発生します。これは、シャットダウンではなく、電源ボタンでマシンの電源を切るようなものです。

面白い..

4

2 に答える 2

1

新しい Windows EBS ルート ボリュームを使用して、スタートアップとシャットダウンのグループ ポリシー スクリプトをテストしました。これらのスクリプトは両方とも、これらのインスタンスを停止および開始すると、適切なシーケンスで期待どおりに実行されます。したがって、別の方法として、EBS ルート ボリュームを使用してインスタンスを実行し、停止コマンドを発行して、Windows インスタンスがすべてのシャットダウン シーケンスを確実に実行するようにすることもできます。インスタンスが停止したら、インスタンスを終了し、関連付けられている EBS ボリュームを解放できるはずです。

于 2009-12-19T15:26:54.453 に答える
1

Windows がシャットダウンすると多くのことが発生するため、Web サービス呼び出しが必要とする何かが既に停止していると推測されます。最初の推測はネットワーク接続です。

C ドライブまたは D ドライブにローカル ログ ファイルを保持して、インスタンスが停止すると再度アクセスできないため、呼び出しが少なくとも試みられているかどうかを確認することはできないため、少し注意が必要です。ログファイルを保持できるインスタンスで EBS ボリュームを使用していますか?

于 2009-03-26T00:16:30.433 に答える