ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿคฏ Microservices Destroyed Our Startup. Yours Could Be Next.
Dev.toDev.to
Backend

๋ฌด๋ถ„๋ณ„ํ•œ Microservices ๋„์ž…์œผ๋กœ ์ธํ•œ P95 Latency 462% ์ฆ๊ฐ€ ๋ฐ ์šด์˜ ๋น„์šฉ 4.5๋ฐฐ ์ƒ์Šน

๐Ÿคฏ Microservices Destroyed Our Startup. Yours Could Be Next.

Manoj Mishra2026๋…„ 4์›” 14์ผ9๋ถ„intermediate

Context

Rails์™€ Postgres ๊ธฐ๋ฐ˜์˜ Monolith ๊ตฌ์กฐ๋กœ P95 Latency 80ms์™€ 99.95%์˜ ๊ฐ€์šฉ์„ฑ์„ ์œ ์ง€ํ•˜๋˜ 12์ธ ๊ทœ๋ชจ์˜ ํ•€ํ…Œํฌ ์Šคํƒ€ํŠธ์—… ์‚ฌ๋ก€์ž„. ๋‹จ์ˆœํ•œ ํ™•์žฅ์„ฑ ์šฐ๋ ค๋กœ ์ธํ•ด ์กฐ์ง ๊ทœ๋ชจ์™€ ๋ฌด๊ด€ํ•œ Microservices ์ „ํ™˜์„ ๊ฐ•ํ–‰ํ•˜๋ฉฐ ์•„ํ‚คํ…์ฒ˜ ๋ณต์žก๋„๊ฐ€ ๊ธ‰์ฆํ•œ ์ƒํ™ฉ์ž„.

Technical Solution

  • Monolith๋ฅผ 40๊ฐœ์˜ Microservices๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋ ค๋Š” ์‹œ๋„
  • gRPC ๋„์ž…์„ ํ†ตํ•œ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ์†๋„ ์ตœ์ ํ™” ๋ฐ REST ์˜ค๋ฒ„ํ—ค๋“œ ์ œ๊ฑฐ ์‹œ๋„
  • Istio Service Mesh ์ ์šฉ์„ ํ†ตํ•œ ์„œ๋น„์Šค ๊ฐ€์‹œ์„ฑ ํ™•๋ณด ๋ฐ ํŠธ๋ž˜ํ”ฝ ์ œ์–ด ์„ค๊ณ„
  • Kafka ๊ธฐ๋ฐ˜ Event-driven Architecture ๊ตฌ์ถ•์œผ๋กœ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ตฌํ˜„
  • EKS ๊ธฐ๋ฐ˜ Kubernetes ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ํ†ตํ•œ ์ธํ”„๋ผ ํ™•์žฅ์„ฑ ํ™•๋ณด ์‹œ๋„
  • ์ตœ์ข…์ ์œผ๋กœ ๋ณต์žก๋„ ์ž„๊ณ„์  ๋„๋‹ฌ ํ›„ 30๊ฐœ ์„œ๋น„์Šค๋ฅผ 3๊ฐœ์˜ Macroservices๋กœ ์žฌํ†ตํ•ฉํ•˜๋Š” Modular Monolith ๊ตฌ์กฐ๋กœ ํšŒ๊ท€

- ์—”์ง€๋‹ˆ์–ด 80๋ช… ์ด์ƒ์˜ ๊ทœ๋ชจ ํ˜น์€ ์„œ๋กœ ์™„์ „ํžˆ ๋‹ค๋ฅธ Scaling Profile์ด ์กด์žฌํ•˜๋Š”์ง€ ๊ฒ€ํ†  - ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ Saga Pattern ๋ฐ Idempotency Key ๊ตฌํ˜„ ์—ญ๋Ÿ‰ ํ™•๋ณด ์—ฌ๋ถ€ ํ™•์ธ - ๋‹จ์ˆœํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์ธ๋ฑ์Šค ์ตœ์ ํ™”๋‚˜ ์ฟผ๋ฆฌ ํŠœ๋‹์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์ธ์ง€ ์šฐ์„  ๊ฒ€์ฆ - ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ์‹œ 'Anti-goals'๋ฅผ ๋ช…๋ฌธํ™”ํ•˜์—ฌ ๋ฌด๋ถ„๋ณ„ํ•œ ๊ธฐ์ˆ  ๋„์ž… ๋ฐฉ์ง€

์›๋ฌธ ์ฝ๊ธฐ