【ぐれーすふるしゃっとだうん】
グレースフルシャットダウン とは?
最終更新:
💡 閉店前に、今いるお客さんの対応と後片付け
アプリケーションの停止時に、新しい仕事の受付を止め、処理中の仕事や後片付けを行ってから終了する方法。強制終了による影響を減らすため、終了までの猶予時間も設計する。
📌 このページのポイント
グレースフルシャットダウンは、どう止めるの?
強制終了とは、何が違うの?
強制終了は、途中の仕事や後片付けの機会を与えずにプロセスを止める。グレースフルシャットダウンでは、処理の完了やDB接続の解放などを行い、利用者への影響を減らすんだ。ただし、データ破損やエラーを必ず防げる保証ではないよ。
終了の合図を受ければ、自動で片付く?
アプリケーション側の対応が必要だよ。例えばSIGTERMを受けたら、受付を止め、残っている仕事を確認し、資源を片付けて終了する。ロードバランサーが新しい仕事を送らないようにするコネクションドレイニングも、合わせて設計するんだ。
終わらない仕事があったら、ずっと待つの?
終了を待つ猶予時間を決めるよ。期限を超えれば強制終了されることもあるので、処理時間や保存すべき状態を考える。途中で止まった仕事の再実行や、二重処理を防ぐ仕組みも別に必要になるんだ。
Kubernetesなら、全部任せられる?
まとめ:ざっくりこれだけ覚えればOK!
「グレースフルシャットダウン」って出てきたら「今の仕事と後片付けをしてから終了する方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Graceful Shutdown」 = 穏やかな終了・停止
💬 Gracefulは「優雅な、穏やかな」、shutdownは「停止」。ITでは、いきなり打ち切らず終了の準備をするイメージだよ。