Database/monogodb

[MongoDB] 샀딩(Sharding)μ΄λž€ 무엇인가? λͺ½κ³ λ””λΉ„ 샀딩 κ΅¬μ„±μš”μ†Œ μ‚΄νŽ΄λ³΄κΈ°

yuri lee 2023. 1. 24. 20:48
λ°˜μ‘ν˜•

Intro

μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” MonogoDB λͺ½κ³ λ””λΉ„μ˜ 샀딩에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. 

 

What is Sharding?

λ°μ΄ν„°λ² μ΄μŠ€ 샀딩은 μ—¬λŸ¬ μ‹œμŠ€ν…œμ— λŒ€κ·œλͺ¨ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ €μž₯ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μž…λ‹ˆλ‹€. λ‹¨μΌ μ‹œμŠ€ν…œ λ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„λŠ” μ œν•œλœ μ–‘μ˜ λ°μ΄ν„°λ§Œ μ €μž₯ν•˜κ³  μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 샀딩은 데이터λ₯Ό μƒ€λ“œλΌκ³  ν•˜λŠ” 더 μž‘μ€ 청크둜 λΆ„ν• ν•˜κ³  μ—¬λŸ¬ λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„μ— μ €μž₯ν•¨μœΌλ‘œμ¨ μ΄λŸ¬ν•œ ν•œκ³„λ₯Ό κ·Ήλ³΅ν•©λ‹ˆλ‹€. 

Why?

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ„±μž₯함에 따라 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‚¬μš©μž μˆ˜μ™€ μ €μž₯ν•˜λŠ” λ°μ΄ν„°μ˜ 양이 μ‹œκ°„μ΄ 지남에 따라 μ¦κ°€ν•©λ‹ˆλ‹€. λ°μ΄ν„° λ³Όλ₯¨μ΄ λ„ˆλ¬΄ 컀지고 λ„ˆλ¬΄ λ§Žμ€ μ‚¬μš©μžκ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‚¬μš©ν•˜μ—¬ λ™μ‹œμ— 정보λ₯Ό μ½κ±°λ‚˜ μ €μž₯ν•˜λ €κ³  ν•˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€μ— 병λͺ© ν˜„μƒμ΄ λ°œμƒν•©λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λŠλ €μ§€κ³  고객 κ²½ν—˜μ— 영ν–₯을 λ―ΈμΉ©λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€ 샀딩은 μƒ€λ“œ μ „μ²΄μ—μ„œ 더 μž‘μ€ 데이터 μ„ΈνŠΈμ˜ 병렬 처리λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•˜κΈ° λ•Œλ¬Έμ— 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.

 

What are the benefits of database sharding?

1. Improve response time

2. Aviod total service outage

3. Scale efficiently

Mongodb sharding component

Config server (replica set)

μƒ€λ“œμ— λŒ€ν•œ 메타데이터λ₯Ό μ €μž₯ ν•©λ‹ˆλ‹€ . λ©”νƒ€λ°μ΄ν„°λŠ” μƒ€λ”©λœ ν΄λŸ¬μŠ€ν„° λ‚΄μ˜ λͺ¨λ“  데이터 및 ꡬ성 μš”μ†Œμ— λŒ€ν•œ μƒνƒœ 및 ꡬ성을 λ°˜μ˜ν•©λ‹ˆλ‹€. 

Shard (mongod or replica set)

λΆ„μ‚°λœ 데이터 μ €μž₯ 곡간을 λ§ν•©λ‹ˆλ‹€. 

Mongos (router)

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ³„μΈ΅μ—μ„œ 쿼리λ₯Ό μ²˜λ¦¬ν•˜κ³  μ΄λŸ¬ν•œ μž‘μ—…μ„ μ™„λ£Œν•˜κΈ° μœ„ν•΄ μƒ€λ“œλœ ν΄λŸ¬μŠ€ν„° μ—μ„œ 이 λ°μ΄ν„°μ˜ μœ„μΉ˜λ₯Ό β€‹β€‹κ²°μ •ν•˜λŠ” MongoDB μƒ€λ“œ ꡬ성을 μœ„ν•œ λΌμš°νŒ… μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.


https://aws.amazon.com/what-is/database-sharding/

https://www.mongodb.com/docs/v3.2/core/sharded-cluster-components/#development-configuration

λ°˜μ‘ν˜•