私は、デプロイメントファイルでカスタムタスクを使用して、自動拡張環境にRailsアプリケーションをデプロイしています(基本的に、Ruby aws sdkを使用して、これらのインスタンスは、実際のターゲットグループの下に登録して、私のアプリは、私カピストラーノの展開中にアプリケーションのLoad Balancer(ELBv2)Capistrano - ALBターゲットグループへのデプロイ時にインスタンスが保留中であるとマークする
からこれらのTGにトラフィックを分散している
環境およびそれらのインスタンスにデプロイ)は、deploy:restart
タスクが再起動するように求められます新しいアプリケーションを使用するためのサーバー(私はPhusion Passengerを使用しています)。再起動は非常に長くなる可能性があるので(最大1分)、カスタム再起動wait
オプションを60秒追加して、サービスを継続的に使用できるようにサーバーを1つずつ再起動するようにしました。
しかし、欠落して上記の遅延を無駄にする唯一の事は、私のターゲットグループに「不健全」または「保留中」としてマークされていないため、この時間中にALBがこれらのインスタンスに要求を送信し続けることです。
私は情報の最後のピース
一つをhttps://github.com/thattommyhall/capistrano-elbのようないくつかのライブラリが、残念ながら彼らは非常に古くなっているとALBsで動作するように作られていない見てのTG
ている:私カピストラーノのdeployタスクが実際に異なる役割をマッチング複数のマシンにデプロイします。- APIサーバー(ALB + TG前後フェーシング、上述したように)
- 労働ANS SC hedulers(それらのいずれかのALB特別な注意の後ろではありませんが取られなければならない)
だから私の(サブ)質問(s)がされて(いる)
がフラグにそれが可能ですTGの背後にあるインスタンスは手動で「保留中」ですか?そうでない場合は、の直後に
register
と同じことを達成するでしょうか?インスタンスが
:api
ロールのインスタンスに対して上記のことを行うには、インスタンスがすべてAWSクラウドにあり、IAMロールを持つものが1つのターゲットグループの下にあるとします(実際には役に立ちます私はいくつかのトリックは、同じインスタンスのために、いくつかのTGをサポートするために得ることができれば)