mybook
15

システム設計の教科書

スケーラビリティ・可用性・分散システムの基礎から大規模設計まで体系的に学ぶ

1
プロローグ — 1台のサーバーから始まる

なぜシステム設計を学ぶのか。ハルトの小さなスタートアップと、成長の痛みから始まる物語。

2
スケーリングの基礎 — 垂直 vs 水平

スケールアップとスケールアウトの違いを理解する。EchoTaskの1台VPSが限界を迎えたとき、ハルトはどちらを選ぶのか。

3
ロードバランシング — トラフィックを分散する

ALBのアクセスログ分析とBlue-Greenデプロイを学ぶ。EchoTaskが3台のサーバーを束ねるまでの道のり。

4
データベース設計 — RDBの基礎

正規化、インデックス、RDSの使い方を学ぶ。EchoTaskのデータが増え続ける中で、ハルトはクエリの遅さに直面する。

5
データベーススケーリング — レプリケーションとシャーディング

読み取りレプリカとAurora Clusterで読み取り負荷を分散する。シャーディングの概念と実践的な選択基準を学ぶ。

6
キャッシュ戦略 — 速度を手に入れる

Redis・ElastiCache・キャッシュパターンを学ぶ。同じデータを何度も取りに行かない仕組みの設計。

7
CDN と静的配信 — エッジで加速する

CloudFrontとS3を使って静的ファイルをエッジに配置する。世界中のユーザーに高速なコンテンツ配信を実現する方法。

8
非同期処理とメッセージキュー — 処理を後回しにする力

Sidekiq・SQS・SNSで重い処理を非同期化する。APIのレスポンスタイムを犠牲にせずにバックグラウンド処理を実現する。

9
マイクロサービス入門 — サービスを分割する

モノリスの限界とサービス境界の設計。EchoTaskがモノリスから段階的にマイクロサービスへ移行する実践的な判断基準。

10
API ゲートウェイ — サービスの入り口

API Gateway・認証・ルーティングの設計。複数のマイクロサービスを一つの窓口にまとめ、横断的な関心事を集中管理する。

11
データの一貫性 — CAP定理と実践

結果整合性・分散トランザクション・Sagaパターン。分散システムで「データが正しい」を保証するための設計。

12
可用性と障害対策 — 落ちないシステム

Multi-AZ・フェイルオーバー・Circuit Breaker。障害は必ず起きる前提でシステムを設計する思想と実践。

13
モニタリングとオブザーバビリティ — 見えないものは直せない

CloudWatch・X-Ray・構造化ログで分散システムの「見える化」を実現する。障害を素早く検知し、根本原因を特定する。

14
セキュリティの基礎 — システムを守る

IAM・VPC・セキュリティグループ・Railsのセキュリティ対策。大きくなったEchoTaskを守るための実践的なセキュリティ設計。

15
エピローグ — システム設計の思考法

トレードオフの判断軸と設計面接の心得。EchoTaskの旅を振り返りながら、システム設計エンジニアとして成長するための思考フレームワーク。