1. 垂直スケール(スケールアップ)の終焉
最大スペックのクラウドDBインスタンスを採用しても、書き込みIOPSやストレージ容量には上限があります。ユーザー数が数千万人に達した時、避けて通れないのが「シャーディング(水平分割)」です。
2. シャードキー(Sharding Key)の選定が成否を分ける
偏り(データホットスポット)が発生しないキーを選定することが最も重要です。
- ハッシュベース・シャーディング:
hash(user_id) % Nで均等に分散。キー指定検索に最適。 - レンジベース・シャーディング: 日付や地域ごとに分割。範囲検索は容易だが最新ノードに書き込みが集中する弱点あり。
3. YouTubeを支えるVitessの威力
アプリケーション側にシャーディングロジックを実装するのではなく、Vitessのような分散プロキシ層を挟むことで、アプリ側は通常の単一MySQLのようにクエリを発行できます。