2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WordPressでのWEBサーバー構築

2
Last updated at Posted at 2026-04-06

前回の振り返り

前回は、WEBサーバー構築を通じて、通信の流れについて学習しました。

その際にふと感じたことは、実務ではBCPの観点から冗長化が必要なので、
シングル構成から冗長化させた構成にするにはどうすればよいかということです。

今回は、(Copilotと相談しながら)自分なりに冗長構成について考えてみました。

完成形

今回の完成形は以下です。
image.png

このハンズオンを通じて、冗長化における、同期であったり一貫性の維持というものの難しさを感じました。
特に、DBの同期は非常に難易度が高いと感じました。

シャーディングではないので、一般でいうところの分散型DBではないですが、
master-slave型をCAP定理に当てはめると、
一貫性(C)を完全に捨てて、可用性(A)に重きを置いた構成であると感じました。

CAP定理
分散型DBにおいて以下の3つは、同時に満たすことができないという定理。
一貫性(Consistency) / 可用性(Availability) / ネットワーク分断耐性(Partition-tolerance)

■一貫性の維持
他DBの更新内容を確認するため待つ
→応答できなくなって可用性がなくなる

■可用性の維持
通信断の場合、他DBの更新内容を待たずに稼働
→一貫性がなくなる

Appendix. この構成に辿り着くまでの足跡

シングル構成だと災害に弱いので、実務に即して冗長構成にしたい

DBサーバーの冗長化
 ①-1.binary-logでのレプリケーション (フェイルオーバーが複雑、ラグあり)
 ①-2.RDSでのレプリケーション

WEBサーバーの負荷分散・可用性確保
 ②-1.ALBでの冗長化

複数WEBサーバー間の一貫性の維持
 ③-1.S3マウント (画像をWEBサーバー経由で読みこむため遅い)
 ③-2.EFSマウント (画像をWEBサーバー経由で読みこむため遅い)
 ③-3.S3プラグイン+CloudFront

前提

image.png

①DBサーバーの冗長化

 ①-1.binary-logでのレプリケーション (フェイルオーバーが複雑、ラグあり)
image.png

①-2.RDSでのレプリケーション
image.png

②WEBサーバーの負荷分散・可用性確保

 ②-1.ALBでの冗長化
image.png

③複数WEBサーバー間の一貫性の維持

 ③-1.S3マウント (画像をWEBサーバー経由で読みこむため遅い)
image.png

 ③-2.EFSマウント (画像をWEBサーバー経由で読みこむため遅い)
image.png

 ③-3.S3プラグイン+CloudFront
image.png

おまけ

■今回の構成で重視した観点
Reliability(信頼性): 故障しない
Availability(可用性): サービスが止まらない
Serviceability(保守性): メンテナンスがしやすい
Integrity(完全性): データ欠損・矛盾がない
Security(安全性・機密性): 情報の保護

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?