あけおスクールに多額のお金を支払う前に、僕の記事で学習してね!
はじめに
ニュースなどで、
こんな言葉を聞いたことはありませんか?
- 「サーバー障害が発生しました」
- 「一部サービスが利用できません」
一方で、
ほとんど止まらないWebサービス
も存在します。
なぜこの違いが生まれるのか?
その答えが、
冗長化(じょうちょうか)
です。
この記事では、
- サーバー障害とは何か
- なぜ障害は避けられないのか
- 冗長化とはどういう考え方か
を、Webエンジニア向けに分かりやすく解説します。
サーバーに障害はつきもの
まず大前提です。
サーバー障害は必ず起きる
これは避けられません。
理由は、
- ハードウェア故障
- ソフトウェア不具合
- ネットワーク障害
- 人為ミス
など、
原因が無数にあるからです。
「障害をゼロにする」は現実的ではない
初心者がよく思うのが、
「ちゃんと作れば障害は起きないのでは?」
という考えです。
結論から言うと、
障害ゼロは不可能
です。
だからこそ、
障害が起きても止まらない設計
が重要になります。
冗長化とは何か?
冗長化とは一言でいうと、
同じ役割のものを複数用意すること
です。
- サーバーを複数台
- ネットワーク経路を複数
- 電源を二重化
👉
壊れても代わりがある状態を作ります。
冗長化の基本的な考え方
冗長化の考え方はとてもシンプルです。
- 1つ壊れても大丈夫
- 自動で切り替わる
- ユーザーに影響を出さない
これを目指します。
RAIDとは何か?(ストレージの冗長化)
RAIDとは、
複数のディスクを
1つのディスクのように使う技術
です。
ディスクが1台壊れても、
データを守るために使われます。
RAIDのイメージ
- データを分散して保存
- 同じデータを複数に保存
👉
保存先を分けることで安全性を上げる
サーバーを複数台用意する冗長化
サーバー自体も
複数台用意することで、
- 1台故障しても
- 別のサーバーで処理継続
が可能になります。
負荷分散(ロードバランシング)とは?
負荷分散とは、
複数のサーバーに
アクセスを振り分ける仕組み
です。
ロードバランサーの役割
ロードバランサーは、
- アクセスを分配
- 障害サーバーを除外
という役割を持ちます。
👉
Webサーバー層でよく使われます。
冗長化とスケーラビリティの関係
冗長化は、
- 障害対策
- 性能対策
の両方に効果があります。
- 台数を増やす
- 負荷を分散する
👉
サービス成長にも必須です。
DBの冗長化(概要)
DBは特に重要です。
- マスター
- レプリカ
といった構成で、
- 書き込み
- 読み取り
を分けることがあります。
👉
詳細はDB章で扱います。
冗長化の落とし穴
冗長化すれば安心、
というわけではありません。
- 設定ミス
- 切り替えが動かない
- コスト増加
👉
設計と運用がセットです。
Webエンジニアが知っておくべき視点
Webエンジニアとしては、
- 冗長化されている前提
- サーバーは落ちうる
- 処理は冪等であるべき
という
意識が重要です。
Laravel開発と冗長化
Laravelアプリは、
- サーバーが複数あっても
- 同じ動作をする
必要があります。
👉
ステートレス設計が重要です。
Webエンジニアはどこまで理解すべきか?
結論です。
以下が分かれば十分です。
- 障害は起きる
- 冗長化で止めない
- LB・複数台の考え方
詳細な構築手順は
インフラエンジニア領域です。
この理解があると何が良い?
- 障害対応の話が分かる
- 設計レビューに参加できる
- 本番を意識した実装ができる
👉
実務レベルが一段上がります。
次に学ぶべきこと
冗長化が理解できたら、
次は👇です。
👉 サーバーセキュリティの基本
(最低限これだけは知っておこう)


まとめ
- サーバー障害は必ず起きる
- 冗長化で止めない設計をする
- RAID・LB・複数台が基本
- Webサービスの必須知識
この記事は
サーバー基礎章の後半戦の核です。



あなたの挑戦を応援しています!!



