
5.5
分散プロセス管理
87
バーのリストが管理されている。クライアントは、構成レジストリでこれをルックアップするように書
かれ、特定のリクエストのためにどのサーバーを使うかを決める。
クライアントサイドディスカバリパターンの方がクライアントにとっては洗練されている(おそらく
複雑でもある)。このパターンの変種として、個々のクライアントアプリケーションのためにロードバラ
ンサーを動かすというものもある。こうすると、現在のサーバーアプリケーションインスタンスを見つ
けるためのロジックは分離され、クライアントアプリケーションはロードバランサーにリクエストを送
るだけでよくなる。
5.5
分散プロセス管理
複数のインスタンスを実行してスケーリングするサービスでは、それらのインスタンスのオーケスト
レーションが必要になる。どこでプロセスをデプロイ、実行するかを手作業で決めれば単純だが、そ
れでは基本的にスタティックであり、能力を調整してエラーを処理するために人間の作業を必要とす
る。この方法では、ダイナミックインフラストラクチャで実行されるプロセスにはうまく適合しない。
5.5.1
サーバーロールによるプロセスのオーケストレーション
サーバーロールは、プロセス管理のひとつの方法になる。たとえば、“web server”と い う ロ ー ル を 持
つサーバーは、ウェブサーバープロセスを実行する。能力をスケールアップしなければならないときに
は、このロールを持つサーバーを起動する。需要が下がったら、サーバーを破 ...