๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด "์ด ์๋ฒ ํ๋๋ผ๋ ๋ค์ด๋๋ฉด ์๋น์ค๊ฐ ๋ฉ์ถ๊น?" ํ๋ ๊ณ ๋ฏผ์ ํ ๋๊ฐ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ๋ฐ๋ก ๋จ์ผ ์ฅ์ ์ง์ (Single Point of Failure, SPOF) ๋ฌธ์ ๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค.
SPOF๋ ์์คํ ๋ด ํน์ ์์๊ฐ ์ฅ์ ๊ฐ ๋ฌ์ ๋, ์ ์ฒด ์์คํ ์ด ์ํฅ์ ๋ฐ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฝ๊ฒ ๋งํด, ๋จ ํ๋์ ๊ตฌ์ฑ ์์๊ฐ ๋ง๊ฐ์ง๋ฉด ์ ์ฒด ์๋น์ค๊ฐ ๋ฌด๋์ง ์ ์๋ ๊ตฌ์กฐ์ฃ .
์๋ฅผ ๋ค์ด, ์๋ฒ๊ฐ ํ ๋๋ฟ์ธ ์์คํ ์์ ํด๋น ์๋ฒ๊ฐ ๋ค์ด๋๋ฉด ์ ์ฒด ์๋น์ค๊ฐ ์ค๋จ๋ ์ ์์ต๋๋ค. ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ๋๋ฟ์ด๋ผ๋ฉด, ํด๋น DB์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์์ ์ผ๋ก ์๋ํ์ง ๋ชปํ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ํด์น๊ณ , ๊ธฐ์ ์ ๋น์ฆ๋์ค์๋ ํฐ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด, SPOF๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์์๊น์? ์ค๋์ AWS ๊ธฐ๋ฐ์์ SPOF๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ๐
SPOF๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋จผ์ ํ์ฌ ์์คํ ์ ๋ฌธ์ ์ ์ ํ์ ํด์ผ ํฉ๋๋ค.
์์ ๊ฐ์ ์์คํ ์์ SPOF๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ถ๋ถ์ ์ฐพ์๋ณด๊ฒ ์ต๋๋ค.
โ ๋ฌธ์ ์ : API ์๋ฒ๊ฐ ๋จ์ผ ์๋ฒ๋ก ์ด์๋๋ฏ๋ก, ์๋ฒ ์ฅ์ ๋ฐ์ ์ ์ ์ฒด ์๋น์ค๊ฐ ์ค๋จ๋ฉ๋๋ค.
โ ํด๊ฒฐ์ฑ :
์ด์คํ๋ฅผ ์ ์ฉํ๋ฉด ํธ๋ํฝ์ด ๋ง์์ง ๊ฒฝ์ฐ์๋ ๋ถํ๋ฅผ ๋ถ์ฐํ ์ ์์ผ๋ฉฐ, ํน์ ์๋ฒ๊ฐ ์ฅ์ ๋ฅผ ์ผ์ผํค๋๋ผ๋ ์๋น์ค๊ฐ ์ค๋จ๋์ง ์๊ณ ์ง์์ ์ผ๋ก ์ด์๋ ์ ์์ต๋๋ค.
โ ๋ฌธ์ ์ : Master DB๊ฐ ๋จ์ผ ๋ ธ๋๋ก ๊ตฌ์ฑ๋์ด ์์ด ์ฅ์ ๋ฐ์ ์ ์ ์ฒด DB ์๋น์ค์ ์ํฅ์ ์ค๋๋ค.
โ ํด๊ฒฐ์ฑ :
์ด๋ฌํ ๊ตฌ์ฑ์ ์ ์ฉํ๋ฉด ํ ์ง์ญ(Region)์์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ค๋ฅธ ์ง์ญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋ฅผ ๋ณด์ํ ์ ์์ด ์๋น์ค์ ์์ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
API ์๋ฒ๊ฐ ์ฌ๋ฌ ๋๋ก ํ์ฅ๋ ๊ฒฝ์ฐ ์ธ์ ๊ด๋ฆฌ๋ ์ ๊ฒฝ ์จ์ผ ํฉ๋๋ค.
โ ๋ฌธ์ ์ :
โ ํด๊ฒฐ์ฑ :
์ธ์ ๊ด๋ฆฌ๋ฅผ ์ ๋๋ก ํ์ง ์์ผ๋ฉด ๋ก๊ทธ์ธ๋ ์ฌ์ฉ์๊ฐ ์์์น ๋ชปํ ๋ก๊ทธ์์์ด ๋ฐ์ํ๊ฑฐ๋, ํน์ ์์ฒญ์ด ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
โ ๋ฌธ์ ์ : ์๋ฒ ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ์ ์ถ์ ํ๊ธฐ ์ด๋ ค์ธ ์ ์์.
โ ํด๊ฒฐ์ฑ :
๋ก๊ทธ๋ฅผ ์ ๋๋ก ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ์ฅ์ ๋ฐ์ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ค์์์ ๋ก๊ทธ๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ถ์ํ ์ ์๋ ์์คํ ์ ๊ตฌ์ถํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
โ ๋ฌธ์ ์ : ์๋ฒ ์ ๋ฐ์ดํธ ์ ๋ค์ดํ์์ด ๋ฐ์ํ ์ ์์.
โ ํด๊ฒฐ์ฑ :
๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์ ์ฉํ๋ฉด ์๋ก์ด ๊ธฐ๋ฅ์ ์์ ํ๊ฒ ๋ฐฐํฌํ ์ ์์ผ๋ฉฐ, ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋น ๋ฅด๊ฒ ๋กค๋ฐฑํ ์ ์์ต๋๋ค.
AWS๋ ๊ฐ๋ ฅํ ์ธํ๋ผ๋ฅผ ์ ๊ณตํ์ง๋ง, ๋น์ฉ์ด ๋ง๋ง์น ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ค ํ์ฉํ๋ฉด ๊ฐ๋ ฅํ HA(๊ณ ๊ฐ์ฉ์ฑ) ์์คํ ์ ๋ง๋ค ์ ์์ง๋ง, ๋น์ฉ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์ ์ต์ํ์ ์ค์ ์ผ๋ก SPOF๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํด๋ด์ผ ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ต์ ๋น์ฉ์ผ๋ก๋ ์์ ์ ์ธ ๊ตฌ์ฑ์ ๋ง๋ค๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
AWS ํ๊ฒฝ์์๋ SPOF๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์ฑ์ผ๋ก ์ค๊ณํ ์ ์์ต๋๋ค.
1๏ธโฃ API ์๋ฒ ์ด์คํ & ๋ก๋ ๋ฐธ๋ฐ์ฑ โ ELB + EC2 Auto Scaling ์ฌ์ฉ
2๏ธโฃ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์คํ โ RDS Multi-AZ ๋๋ Aurora ๊ธ๋ก๋ฒ ๋ฐฐํฌ ์ฌ์ฉ
3๏ธโฃ ์ธ์
๊ณต์ โ ElastiCache(Redis)๋ก ์ธ์
์ ์ฅ
4๏ธโฃ ๋ก๊ทธ ๋ฐ ๋ชจ๋ํฐ๋ง โ CloudWatch + CloudTrail + ELK ์คํ ํ์ฉ
5๏ธโฃ ๋ฌด์ค๋จ ๋ฐฐํฌ โ Blue-Green ๋ฐฐํฌ ๋๋ Canary ๋ฐฐํฌ ์ ์ฉ
์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ ์ ์ฉํ๋ฉด AWS ๊ธฐ๋ฐ์์ ๊ฐ์ฉ์ฑ์ ๊ทน๋ํํ๋ฉด์๋ ๋จ์ผ ์ฅ์ ์ง์ ์ ํจ๊ณผ์ ์ผ๋ก ์ ๊ฑฐํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋น์ฉ์ ๊ณ ๋ คํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ต์ํ์ผ๋ก ์ ์ฉํ ์ ์๋ ์ ๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1๏ธโฃ API ์๋ฒ ์ด์คํ & ๋ก๋ ๋ฐธ๋ฐ์ฑ โ ๋จ์ผ EC2 ์ธ์คํด์ค ๋์ 2๊ฐ์ ์์ EC2 ์ธ์คํด์ค + ALB(Application Load Balancer) ์ฌ์ฉ. ํธ๋ํฝ์ด ์ ๋ค๋ฉด ALB ๋์ Nginx ๋ฆฌ๋ฒ์ค ํ๋ก์๋ก ๋์ฒด ๊ฐ๋ฅ.
2๏ธโฃ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์คํ โ RDS Multi-AZ๋ ๋น์ธ๋ฏ๋ก, ๋จ์ผ RDS + Read Replica ๊ตฌ์ฑ์ผ๋ก ๋น์ฉ ์ ๊ฐ. ๋๋ EC2์ ์ง์ MySQL/PostgreSQL์ ์ค์นํด ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ๋ ๊ณ ๋ ค ๊ฐ๋ฅ.
3๏ธโฃ ์ธ์
๊ณต์ โ ElastiCache(Redis)๋ ๋น์ฉ์ด ๋ค๋ฏ๋ก, DynamoDB ๊ฐ์ ์๋ฒ๋ฆฌ์ค ์๋ฃจ์
์ ํ์ฉํ๊ฑฐ๋, ํ์ ์ต์ํ์ ๊ฒฝ์ฐ DB์ ์ธ์
์ ์ฅ.
4๏ธโฃ ๋ก๊ทธ ๋ฐ ๋ชจ๋ํฐ๋ง โ CloudWatch ๋ก๊ทธ๋ฅผ ํ์์ ์ธ ๋ถ๋ถ๋ง ์์งํ๋๋ก ์ค์ ํ์ฌ ๋น์ฉ ์ ๊ฐ.
5๏ธโฃ ๋ฌด์ค๋จ ๋ฐฐํฌ โ Blue-Green ๋ฐฐํฌ๋ ๊ณ ๋น์ฉ์ด๋ฏ๋ก, Canary ๋ฐฐํฌ ๋ฐฉ์์ผ๋ก ์ผ๋ถ ํธ๋ํฝ๋ง ์ ๋ฒ์ ์ผ๋ก ์ ํํด ๊ฒ์ฆ ํ ์ ์ฒด ๋ฐฐํฌ.
์์ ๊ฐ์ด ์ต์ํ์ ์ค์ ์ผ๋ก๋ SPOF๋ฅผ ์ค์ผ ์ ์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ ์ ์ง์ ์ผ๋ก ํ์ฅํ๋ ์ ๋ต์ด ์ข์ต๋๋ค.
๋จ์ผ ์ฅ์ ์ง์ (SPOF)์ ์๋น์ค ์ด์์์ ๊ฐ์ฅ ๋จผ์ ํด๊ฒฐํด์ผ ํ ์ค์ํ ์์์ ๋๋ค. AWS๋ฅผ ํ์ฉํ๋ฉด ๋ค์ํ ๊ธฐ๋ฅ์ ํตํด SPOF๋ฅผ ์ ๊ฑฐํ๊ณ , ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์์คํ ์ ๊ตฌ์ถํ ์ ์๋๊ฒ ๊ฐ์ต๋๋ค. ๋ฌผ๋ก ๋์ ๋ง์ด ๋ค์ง๋ง์...
๐ SPOF๋ฅผ ํด๊ฒฐํ๋ ํต์ฌ ํฌ์ธํธ
AWS ๊ธฐ๋ฐ์์ ์ธํ๋ผ๋ฅผ ์ค๊ณํ ๋ ์ด๋ฌํ ์์๋ค์ ๊ณ ๋ คํ๋ฉด, ๋จ์ผ ์ฅ์ ์ง์ ์ ์ ๊ฑฐํ๊ณ ์์ ์ ์ธ ์๋น์ค ์ด์์ด ๊ฐ๋ฅํฉ๋๋ค. ์์ผ๋ก๋ ํ์ฅ์ฑ๊ณผ ๊ฐ์ฉ์ฑ์ ๊ณ ๋ คํ ์ธํ๋ผ ์ค๊ณ๋ฅผ ์ง์์ ์ผ๋ก ๊ณ ๋ฏผํด ๋๊ฐ์ผ ํฉ๋๋ค! ๐