April 2019
Intermediate to advanced
200 pages
2h 16m
Japanese
5章では、信頼性の向上、冗長性の実現、スケーラビリティの観点から、ステートレスなレプリカを使ったサービスの利点を見てきました。この章では、シャーディングされたサービスを取り上げます。レプリカを使ったサービスでは、各レプリカは完全に同一で、どのリクエストにも対応できました。それに対してシャーディングされたサービスでは、各レプリカ(シャード)は、リクエストの一部に対してのみ応答できます。ロードバランスを行うノード(ルート)が、各リクエストをチェックし、処理を行う適切なシャードに対してリクエストを分散する責任を負います。レプリカを使ったサービスとシャーディングされたサービスの違いを表したのが、図6-1です。
図6-1 レプリカを使ったサービスとシャーディングされたサービス
通常、レプリカはステートレスなサービスを作るのに使われ、シャーディングはステートフルなサービスを作るのに使われます。データをシャーディングするのは、保存すべき状態データのサイズが、1台のマシンで処理するには大きすぎることが主な理由です。シャーディングを使うことで、保存すべき状態データが大きくなった時にサービスをスケールできます。
ここでは、シャーディングされたシステムの設計例として、シャーディングされたキャッシュのシステムの仕組みを深く見ていきましょう。シャーディングされたキャッシュとは、ユーザのリクエストとフロントエンドの間に位置するキャッシュです ...
Read now
Unlock full access