๐ฅ๏ธ ๋ค์ค ์๋ฒ ํ๊ฒฝ์์ ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ด์ ๋ฆฌ
๐ฅ๏ธ ๋ค์ค ์๋ฒ ํ๊ฒฝ์์ ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ด์ ๋ฆฌ
๐ ๋ฌธ์ ์ํฉ: ์ธ์ ๋ถ์ผ์น(Session Mismatch)
โ์ ๋ก๊ทธ์ธํ๋๋ฐ, ๊ฐ์๊ธฐ ์ธ์ฆ์ด ํ๋ฆฌ์ง?โ
๋ค์ค ์๋ฒ ํ๊ฒฝ(ex: ์๋ฒ A, ์๋ฒ B)์์๋ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์์ฒญ์ ๋ถ์ฐ์ํค๊ธฐ ๋๋ฌธ์
์ธ์
์ ๋ณด๊ฐ ์ ์ฅ๋ ์๋ฒ์ ๋ค๋ฅธ ์๋ฒ๋ก ์์ฒญ์ด ๊ฐ๋ฉด,
์ธ์
์ ๋ชป ์ฐพ๊ณ ์ธ์ฆ ์คํจ๊ฐ ๋ฐ์ํฉ๋๋ค.
โ ์ด๊ฑธ ๋ฐ๋ก โ์ธ์ ๋ถ์ผ์น ๋ฌธ์ โ๋ผ๊ณ ํฉ๋๋ค.
๐งฉ ์ธ์ ๋ถ์ผ์น ํด๊ฒฐ ๋ฐฉ๋ฒ 3๊ฐ์ง
๋ฐฉ๋ฒ | ์ค๋ช | ์ฅ์ | ๋จ์ |
---|---|---|---|
์คํฐํค ์ธ์ | ์ฌ์ฉ์๋ฅผ ํน์ ์๋ฒ์ ๊ณ ์ | ๋จ์, ๋น ๋ฅธ ์ ์ฉ | ํธ๋ํฝ ์ ๋ฆผ, ์๋ฒ ์ฅ์ ์ํ |
์ธ์ ํด๋ฌ์คํฐ๋ง | ์ธ์ ์ ์๋ฒ ๊ฐ ๋ณต์ | ์๋ฒ ๊ฐ ์ ์ค ๋ฐฉ์ง | ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น, ๋คํธ์ํฌ ํธ๋ํฝ ์ฆ๊ฐ |
์คํ ๋ฆฌ์ง ๋ถ๋ฆฌ | ์ธ๋ถ ์ ์ฅ์์ ์ธ์ ์ ์ฅ | ์๋ฒ ๋ ๋ฆฝ์ฑ ๋ณด์ฅ | ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ ์ถ๊ฐ ํ์ |
1๏ธโฃ ์คํฐํค ์ธ์ (Sticky Session)
๐ ๊ฐ๋
- ์ฌ์ฉ์๊ฐ ์ฒ์ ์ฐ๊ฒฐ๋ ์๋ฒ์ ๊ณ ์ .
- ์ฟ ํค๋ IP๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ฒ๋ฅผ ๊ณ ์ ํ๋ ๋ฐฉ์.
๐ฏ ์์
์ฌ์ฉ์๊ฐ A ์๋ฒ์์ ๋ก๊ทธ์ธ โ ์ดํ ๋ชจ๋ ์์ฒญ์ A ์๋ฒ๋ก ๊ณ ์
โ ์ฅ์
- ์ ์ฉ์ด ์ฝ๊ณ ๋น ๋ฅด๋ค.
- ์ฝ๋ ์์ ์์ด ๋ก๋ ๋ฐธ๋ฐ์ ์ค์ ๋ง ๋ณ๊ฒฝํ๋ฉด ๋๋ค.
โ ๏ธ ๋จ์
- A ์๋ฒ์ ๊ณ ์ ๋ ์ฌ์ฉ์๊ฐ ๋ชฐ๋ฆฌ๋ฉด ํธ๋ํฝ ๋ถ๊ท ํ.
- A ์๋ฒ ๋ค์ด ์, ํด๋น ์ฌ์ฉ์๋ค์ ๋ค์ ๋ก๊ทธ์ธํด์ผ ํจ.
2๏ธโฃ ์ธ์ ํด๋ฌ์คํฐ๋ง (Session Replication)
๐ ๊ฐ๋
- ์ธ์ ์์ฑ ์, ๋ชจ๋ ์๋ฒ์ ์ธ์ ๋ณต์ .
- ์ด๋ ์๋ฒ์ ์์ฒญ์ด ๊ฐ๋ ์ธ์ ์ ์ฐพ์ ์ ์๋ค.
๐ฏ ์์
A ์๋ฒ์์ ๋ก๊ทธ์ธ โ B, C ์๋ฒ์๋ ๊ฐ์ ์ธ์ ๋ณต์ โ ์ด๋ค ์๋ฒ๋ก ๊ฐ๋ ๋ก๊ทธ์ธ ์ํ ์ ์ง
โ ์ฅ์
- ์๋ฒ ์ฅ์ ์๋ ์ธ์ ์ ์ง ๊ฐ๋ฅ.
- ์คํฐํค ์ธ์ ์ฒ๋ผ ํธ๋ํฝ ์ ๋ฆผ ์์.
โ ๏ธ ๋จ์
- ์๋ฒ ๊ฐ ๋ณต์ ํธ๋ํฝ ๋ฐ์ โ ์ฑ๋ฅ ์ ํ ๊ฐ๋ฅ.
- ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น (์๋ฒ๋ง๋ค ๊ฐ์ ์ธ์ ์ ์ฅ).
- ๋ณต์ ์ง์ฐ ์ ์ผ์์ ์ธ์ ์ ์ค ๊ฐ๋ฅ.
3๏ธโฃ ์คํ ๋ฆฌ์ง ๋ถ๋ฆฌ (External Storage)
๐ ๊ฐ๋
- ์ธ์ ์ ๋ณด๋ฅผ ์๋ฒ ๋ฐ(DB, Redis ๋ฑ)์ ์ ์ฅ.
- ์๋ฒ๋ ์ธ์ ์ ์ฅ์ ์ง์ ๋ด๋นํ์ง ์์.
๐ฏ ์์
Redis์ ์ธ์ ์ ์ฅ โ A, B, C ์๋ฒ ๋ชจ๋ Redis์์ ์ธ์ ์กฐํ
โ ์ฅ์
- ์๋ฒ ๊ฐ ์ธ์ ์ผ๊ด์ฑ 100% ๋ณด์ฅ.
- ์๋ฒ ์ํ ํ์ฅ(Scale-out) ๋งค์ฐ ์ ๋ฆฌ.
โ ๏ธ ๋จ์
- ์คํ ๋ฆฌ์ง ์ฅ์ (SPOF: Single Point of Failure) ์ํ ์กด์ฌ.
- ๋ณ๋ ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ, HA ๊ตฌ์ฑ ํ์.
๐ ์ ๋ฆฌ: ์ค๋ฌด ์ถ์ฒ
์ํฉ | ์ถ์ฒ ๋ฐฉ๋ฒ |
---|---|
์๊ท๋ชจ ์๋น์ค (2~3๋ ์๋ฒ) | ์คํฐํค ์ธ์ |
์ค๊ท๋ชจ ์ด์ ์๋น์ค (5๋ ์ด์ ์๋ฒ) | ์ธ๋ถ ์คํ ๋ฆฌ์ง (ex: Redis) |
์์ฒญ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ํ๊ฐ ํ์ | ์ธ์ ํด๋ฌ์คํฐ๋ง (๋จ, ์ฃผ์!) |
๐ง ๋น ๋ฅด๊ฒ ๊ธฐ์ตํ๋ ๋ฒ
์ธ์ ๋ถ์ผ์น โ ์ค-ํด-์ค๋ก ๊ธฐ์ตํ์!
- ์คํฐํค ์ธ์ โ โ์๋ฒ์ ๊ณ ์ โ
- ํด๋ฌ์คํฐ๋ง โ โ์๋ฒ๋ผ๋ฆฌ ๋ณต์ โ
- ์คํ ๋ฆฌ์ง ๋ถ๋ฆฌ โ โ์๋ฒ ๋ฐ์ผ๋ก ๋นผ๊ธฐโ
์ค-ํด-์ค๋ง ๊ธฐ์ตํ๋ฉด ๋ฉ๋๋ค.
๐ ๋ง๋ฌด๋ฆฌ
์ธ์ ๊ด๋ฆฌ ์ ๋ต์ ์๋น์ค ๊ท๋ชจ์ ์๊ตฌ ์ฑ๋ฅ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ ํํด์ผ ํฉ๋๋ค.
์ฒ์์๋ ์คํฐํค ์ธ์
์ผ๋ก ๋น ๋ฅด๊ฒ ์์ํ๊ณ ,
ํธ๋ํฝ์ด ๋๋ฉด ์ธ๋ถ ์ธ์
์คํ ๋ฆฌ์ง๋ก ๋์ด๊ฐ๋ ์ ๋ต์ด ๊ฐ์ฅ ๋ฌด๋ํฉ๋๋ค.
๋ฌธ์ ๋ ํ ๋ฒ ๊ฒฝํํ๊ณ ๋์ผ ์ง์ง ๊ธฐ์ต์ ๋จ๋๋ค!
๋๊ธ๋จ๊ธฐ๊ธฐ