5章レプリカがロードバランスされたサービス

最もシンプルで、最も馴染みがある分散パターンは、レプリカがロードバランスされたサービスです。このようなサービスでは、各サーバはそれぞれ全く同じで、すべて同じようにトラフィックを処理できます。このパターンは、数を増減できるサーバと、その前段に置かれたロードバランサで構成されます。ロードバランサは完全なラウンドロビンか、何らかのセッション維持(session stickiness)の仕組みを使うことが多いです。この章では、そのようなサービスをKubernetes上にデプロイする具体例を取り上げます。

5.1 ステートレスなサービス

ステートレスなサービスは、正常に動作するために状態(state)を保存しておく必要がないものを言います。最もシンプルなステートレスアプリケーションは、個々のリクエストがサービス内の全く別なインスタンスにルーティングされることもあり得ます(図5-1)。ステートレスなサービスの例には、静的コンテンツのサーバから、たくさんのいろいろなバックエンドシステムからのレスポンスを受け取って集約する複雑なミドルウェアシステムまでが含まれます。

基本的なステートレスなサービス

図5-1 基本的なステートレスなサービス

ステートレスなシステムは、冗長性とスケールのために複製されています。サービスが小さい場合でも、「可用性が高い」と言えるSLA(Service level agreement)を満たすサービスにするには、最低2つのレプリカが必要です。この理由を理解するため、スリーナイン(99.9%)の可用性を実現しようとしていると考えてみましょう。 ...

Get 分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.