システム設計の教科書
スケーラビリティ・可用性・分散システムの基礎から大規模設計まで体系的に学ぶ
なぜシステム設計を学ぶのか。ハルトの小さなスタートアップと、成長の痛みから始まる物語。
スケールアップとスケールアウトの違いを理解する。EchoTaskの1台VPSが限界を迎えたとき、ハルトはどちらを選ぶのか。
ALBのアクセスログ分析とBlue-Greenデプロイを学ぶ。EchoTaskが3台のサーバーを束ねるまでの道のり。
正規化、インデックス、RDSの使い方を学ぶ。EchoTaskのデータが増え続ける中で、ハルトはクエリの遅さに直面する。
読み取りレプリカとAurora Clusterで読み取り負荷を分散する。シャーディングの概念と実践的な選択基準を学ぶ。
Redis・ElastiCache・キャッシュパターンを学ぶ。同じデータを何度も取りに行かない仕組みの設計。
CloudFrontとS3を使って静的ファイルをエッジに配置する。世界中のユーザーに高速なコンテンツ配信を実現する方法。
Sidekiq・SQS・SNSで重い処理を非同期化する。APIのレスポンスタイムを犠牲にせずにバックグラウンド処理を実現する。
モノリスの限界とサービス境界の設計。EchoTaskがモノリスから段階的にマイクロサービスへ移行する実践的な判断基準。
API Gateway・認証・ルーティングの設計。複数のマイクロサービスを一つの窓口にまとめ、横断的な関心事を集中管理する。
結果整合性・分散トランザクション・Sagaパターン。分散システムで「データが正しい」を保証するための設計。
Multi-AZ・フェイルオーバー・Circuit Breaker。障害は必ず起きる前提でシステムを設計する思想と実践。
CloudWatch・X-Ray・構造化ログで分散システムの「見える化」を実現する。障害を素早く検知し、根本原因を特定する。
IAM・VPC・セキュリティグループ・Railsのセキュリティ対策。大きくなったEchoTaskを守るための実践的なセキュリティ設計。
トレードオフの判断軸と設計面接の心得。EchoTaskの旅を振り返りながら、システム設計エンジニアとして成長するための思考フレームワーク。