mongos
์ด ํ์ด์ง์ ๋ด์ฉ
MongoDB mongos
์ธ์คํด์ค๋ ์ฟผ๋ฆฌ์ ์ฐ๊ธฐ ์์
์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ค๋๋ก ๋ผ์ฐํ
ํฉ๋๋ค. mongos
๋ ์ ํ๋ฆฌ์ผ์ด์
๊ด์ ์์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํ ์ ์ผํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ด ์ค๋์ ์ง์ ์ฐ๊ฒฐํ๊ฑฐ๋ ํต์ ํ์ง ์์ต๋๋ค.
mongos
๋ config ์๋ฒ์์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ์ฌ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ด๋ค ์ค๋์ ์๋์ง ์ถ์ ํฉ๋๋ค. mongos
๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ํด๋ผ์ด์ธํธ์์ mongod
์ธ์คํด์ค๋ก ์์
์ ๋ผ์ฐํ
ํฉ๋๋ค. mongos
์๋ ์๊ตฌ ์ํ๊ฐ ์์ผ๋ฉฐ ์ต์ํ์ ์์คํ
๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ์ ๋์ผํ ์์คํ
์์ mongos
์ธ์คํด์ค๋ฅผ ์คํํ๋ ๊ฒ์ด์ง๋ง ์ค๋ ๋๋ ๊ธฐํ ์ ์ฉ ๋ฆฌ์์ค์์ mongos
์ธ์คํด์ค๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. mongos
์ ์์ ๋ถํฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ผ์ฐํ ๋ฐ ๊ฒฐ๊ณผ ํ๋ก์ธ์ค
mongos
์ธ์คํด์ค๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ํด๋ฌ์คํฐ ๋ก ๋ผ์ฐํ
ํฉ๋๋ค.
์ฟผ๋ฆฌ๋ฅผ ์์ ํด์ผ ํ๋ ์ค๋ ๋ชฉ๋ก์ ๊ฒฐ์ ํฉ๋๋ค.
๋ชจ๋ ํ๊ฒํ ๋ ์ค๋์ ์ปค์๋ฅผ ์ค์ ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ mongos
๋ ๊ฐ ๋์ ์ค๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ๊ณ ๊ฒฐ๊ณผ ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค. ์ ๋ ฌ๊ณผ ๊ฐ์ ํน์ ์ฟผ๋ฆฌ ์์ ์๋ mongos
๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ํ๊ธฐ ์ ์ ๊ฐ ์ค๋์์ ์ํ๋ฉ๋๋ค.
์ฌ๋ฌ ์ค๋์์ ์คํ๋๋ ์ง๊ณ ์์
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋์์ ์คํํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณํฉํ๊ธฐ ์ํด ๊ฒฐ๊ณผ๋ฅผ
mongos
๋ก ๋ค์ ๋ผ์ฐํ
ํ ์ ์์ต๋๋ค.
ํ์ดํ๋ผ์ธ์mongos
์์ ์คํํ ์ ์๋ ๋ ๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ๋ ๋ถํ ํ์ดํ๋ผ์ธ์ ๋ณํฉ ๋ถ๋ถ์ ๋ฐ๋์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋์์ ์คํ๋์ด์ผ ํ๋ ๋จ๊ณ๊ฐ ํฌํจ๋์ด ์์ ๋ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, $lookup
์ด ์ง๊ณ๋ฅผ ์คํํ๊ณ ์๋ ์ค๋ ์ปฌ๋ ์
๊ณผ ๋์ผํ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๋น์ค๋ ์ปฌ๋ ์
์ ์ก์ธ์คํด์ผ ํ๋ ๊ฒฝ์ฐ, ๋ณํฉ์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋์์ ์คํ๋์ด์ผ ํฉ๋๋ค.
๋ ๋ฒ์งธ ๊ฒฝ์ฐ๋ ๋ถํ ํ์ดํ๋ผ์ธ์ ๋ณํฉ ๋ถ๋ถ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ธ ์ ์๋ ๋จ๊ณ(์: $group
)๊ฐ ํฌํจ๋์ด ์๊ณ ํด๋ผ์ด์ธํธ๊ฐ allowDiskUse:true
๋ฅผ ์ง์ ํ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ, ๋ณํฉ ํ์ดํ๋ผ์ธ์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๊ฐ ํ์ํ ๋ค๋ฅธ ๋จ๊ณ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด, ๋ณํฉ์ ์ง๊ณ ๋์ ์ค๋ ์งํฉ์์ ์์๋ก ์ ํ๋ ์ค๋์์ ์คํ๋ฉ๋๋ค.
์ค๋ฉ๋ ํด๋ฌ์คํฐ ์ฟผ๋ฆฌ์ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ง๊ณ ์์
์ ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ aggregate()
ํธ์ถ์ ๋งค๊ฐ ๋ณ์๋ก
explain:true
๋ฅผ ์ฌ์ฉํ์ธ์. ์ธ ๊ฐ์ JSON ๊ฐ์ฒด๊ฐ ๋ฐํ๋ฉ๋๋ค.
mergeType
๋ ๋ณํฉ ๋จ๊ณ๊ฐ ๋ฐ์ํ๋ ์์น("primaryShard", "anyShard" ๋๋ "mongos")๋ฅผ ๋ณด์ฌ ์ค๋๋ค. splitPipeline
์๋ ๊ฐ๋ณ ์ค๋์์ ํ์ดํ๋ผ์ธ์ ์ด๋ค ์์
์ด ์คํ๋์๋์ง ํ์๋ฉ๋๋ค. shards
์ ๊ฐ ์ค๋๊ฐ ์ํํ ์์
์ ๋ณด์ฌ์ค๋๋ค.
๊ฒฝ์ฐ์ ๋ฐ๋ผ, ์ค๋ ํค ๋๋ ์ค๋ ํค์ ์ ๋์ฌ๊ฐ ์ฟผ๋ฆฌ์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ mongos
๋ ํด๋ฌ์คํฐ์ ์ค๋ ํ์ ์งํฉ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ๋ผ์ฐํ
ํ๋ ํ๊ฒํ
์์
์ ์ํํฉ๋๋ค.
mongos
์(๋) ์ค๋ ํค๋ฅผ ํฌํจํ์ง ์๋ ์ฟผ๋ฆฌ์ ๋ํด ๋ธ๋ก๋์บ์คํธ ์์
์ ์ํํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ํด๋ฌ์คํฐ์ ๋ชจ๋ ์ค๋๋ก ๋ผ์ฐํ
ํฉ๋๋ค. ์ค๋ ํค๋ฅผ ํฌํจํ๋ ์ผ๋ถ ์ฟผ๋ฆฌ๋ ํด๋ฌ์คํฐ์ ๋ฐ์ดํฐ ๋ถํฌ์ ์ฟผ๋ฆฌ์ ์ ํ์ฑ์ ๋ฐ๋ผ ์ฌ์ ํ ๋ธ๋ก๋์บ์คํธ ์์
์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
ํ๊ฒํ ์์ ๊ณผ ๋ธ๋ก๋์บ์คํธ ์์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๊ฒํ ์์ VS ๋ธ๋ก๋์บ์คํธ ์์ ์ ์ฐธ์กฐํ์ธ์.
mongos
์ ํค์ง๋ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ง์ํ์ฌ ์ง์ฐ ์๊ฐ์ ์ต์ํํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํค์ง๋ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ฐธ์กฐํ์ธ์.
mongos
์ด(๊ฐ) ์ฟผ๋ฆฌ ์์ ์๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ
์ ๋ ฌ
์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ์ ๋ ฌ๋์ง ์์ ๊ฒฝ์ฐ, mongos
์ธ์คํด์ค๋ ์ค๋์ ๋ชจ๋ ์ปค์์์ "๋ผ์ด๋ ๋ก๋น" ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฐ๊ณผ ์ปค์๋ฅผ ์ฝ๋๋ค.
์ ํ
์ฟผ๋ฆฌ๊ฐ limit()
์ปค์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ ์ธํธ์ ํฌ๊ธฐ๋ฅผ ์ ํํ๋ฉด mongos
์ธ์คํด์ค๋ ํด๋น ์ ํ์ ์ค๋์ ์ ๋ฌํ ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ฐํํ๊ธฐ ์ ์ ๊ฒฐ๊ณผ์ ์ ํ์ ๋ค์ ์ ์ฉํฉ๋๋ค.
๊ฑด๋๋ฐ๊ธฐ
์ฟผ๋ฆฌ๊ฐ skip()
์ปค์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฑด๋๋ฐ๊ธฐํ ๋ ์ฝ๋ ์๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ
mongos
๋ ๋ถํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฑด๋๋ฐ๊ธฐ๋ฅผ ์ ๋ฌํ ์ ์์ง๋ง ๋ถํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฑด๋๋ฐ์ง ์์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ํ๊ณ ์ ์ฒด ๊ฒฐ๊ณผ๋ฅผ ์กฐํฉํ ๋ ์ ์ ํ ์์ ๋ฌธ์๋ฅผ ๊ฑด๋ ๋๋๋ค.
limit()
์ ํจ๊ป ์ฌ์ฉํ๋ฉด mongos
๊ฐ ์์
ํจ์จ์ฑ ๊ฐ์ ์ ์ํด ์ ํ ๋ฐ skip()
๊ฐ์ ์ค๋์ ์ ๋ฌํฉ๋๋ค.
์ฝ๊ธฐ ์ค์ ๋ฐ ์ค๋
์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๊ฒฝ์ฐ mongos
๋ ์ค๋์์ ์ฝ์ ๋ ์ฝ๊ธฐ ์ค์ ์ ์ ์ฉํฉ๋๋ค. ์ ํ๋ ๋
ธ๋๋ ์ฝ๊ธฐ ์ค์ ๊ณผ replication.localPingThresholdMs
์ค์ ์ ์ ์ฉ์ ๋ฐ์ผ๋ฉฐ, ๊ฐ ์์
๋ง๋ค ๋ค์ ํ๊ฐ๋ฉ๋๋ค.
์ฝ๊ธฐ ์ค์ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฝ๊ธฐ ์ค์ ๋ฐ ์ค๋๋ฅผ ์ฐธ์กฐํ์ธ์.
ํค์ง๋ ์ฝ๊ธฐ
mongos
์ธ์คํด์ค๋primary
์ด์ธ์ ์ฝ๊ธฐ ์ค์ (read preference)์ ์ฌ์ฉํ๋ ์ฝ๊ธฐ๋ฅผ ํค์งํ ์ ์์ต๋๋ค. ํค์ง๋ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ฌ์ฉํ๋ฉด mongos
์ธ์คํด์ค๋ ์ฟผ๋ฆฌ๋ ๊ฐ ์ค๋๋น 2๊ฐ์ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๋ก ์ฝ๊ธฐ ์์
์ ๋ผ์ฐํ
ํ๊ณ ์ค๋๋น ์ฒซ ๋ฒ์งธ ์๋ต์๋ก๋ถํฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. ์ฝ๊ธฐ ์์
์ ํค์งํ๊ธฐ ์ํด ์ ์ก๋ ์ถ๊ฐ ์ฝ๊ธฐ๋ maxTimeMSForHedgedReads
์
maxTimeMS
๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
๋ค์ ์์ ์ ๋ํด ํค์ง๋ ์ฝ๊ธฐ(hedged read)๊ฐ ์ง์๋ฉ๋๋ค:
ํค์ง๋ ์ฝ๊ธฐ(hedged read) ๋ฐ ์ฝ๊ธฐ ์ค์
ํค์ง๋ ์ฝ๊ธฐ(hedged read)๋ ์ฝ๊ธฐ ์ค์ ์ ์ผ๋ถ๋ก ์์
๋ณ๋ก ์ง์ ๋ฉ๋๋ค. ๋น-primary
์ฝ๊ธฐ ์ค์ ์ ํค์ง๋ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ง์ํฉ๋๋ค. ํค์ง๋ ์ฝ๊ธฐ(hedged read) ์ค์ ํญ๋ชฉ์ ์ฐธ์กฐํ์ญ์์ค.
primary
์ด์ธ์ ์ฝ๊ธฐ ์ค์ ์ ๋ํด ํค์ง๋ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ง์ ํ๋ ค๋ฉด ๋๋ผ์ด๋ฒ ์ฝ๊ธฐ ๊ธฐ๋ณธ ์ค์ API ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.์ฝ๊ธฐ ์ค์
nearest
๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํค์ง๋ ์ฝ๊ธฐ(hedged read) ์ต์ ์ ํ์ฑํํฉ๋๋ค.
์ฝ๊ธฐ ์ค์ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ, ๋ ธ๋ ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฝ๊ธฐ ์ค์ ๋ฐ ์ค๋๋ฅผ ์ฐธ์กฐํ์ธ์.
ํค์ง๋ ์ฝ๊ธฐ(hedged read)์ ๋ํ ์ง์ ํ์ฑํ/๋นํ์ฑํ
๊ธฐ๋ณธ์ ์ผ๋ก mongos
์ธ์คํด์ค๋ ํค์ง๋ ์ฝ๊ธฐ(hedged read) ์ฌ์ฉ์ ์ง์ํฉ๋๋ค. ํค์ง๋ ์ฝ๊ธฐ(hedged read)์ ๋ํ mongos
์ธ์คํด์ค์ ์ง์์ ๋๋ ค๋ฉด readHedgingMode
๋งค๊ฐ๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์. ํค์ง๋ ์ฝ๊ธฐ(hedged read) ์ง์์ด off
์ธ ๊ฒฝ์ฐ mongos
๋ ์ฝ๊ธฐ ์ค์ ์ ์ง์ ๋ hedge
์ต์
์ ๊ด๊ณ์์ด ํค์ง๋ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
ํค์ง๋ ์ฝ๊ธฐ ์ง๋จ
serverStatus
๋ช
๋ น๊ณผ ํด๋น mongosh
๋ฉ์๋ db.serverStatus()
๋ hedgingMetrics
๋ฅผ ๋ฐํํฉ๋๋ค.
0} ์ธ์คํด์ค์ ์ฐ๊ฒฐ ํ์ธ mongos
ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ๋ MongoDB ์ธ์คํด์ค๊ฐ mongos
์ธ์ง ํ์ธํ๋ ค๋ฉด hello
๋ช
๋ น์ ์ฌ์ฉํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ mongos
์ ์ฐ๊ฒฐํ๋ฉด hello
๋ isdbgrid
๋ฌธ์์ด์ ํฌํจํ๋ msg
ํ๋๊ฐ ์๋ ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค. ์์:
{ "isWritablePrimary" : true, "msg" : "isdbgrid", "maxBsonObjectSize" : 16777216, "ok" : 1, ... }
์ ํ๋ฆฌ์ผ์ด์
์ด mongod
์ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ฐํ๋๋ ๋ฌธ์์ isdbgrid
๋ฌธ์์ด์ด ํฌํจ๋์ง ์์ต๋๋ค.
ํ๊ฒํ ์ด์๊ณผ ๋ธ๋ก๋์บ์คํธ ์ด์ ๋น๊ต
์ผ๋ฐ์ ์ผ๋ก, ์ค๋ ํ๊ฒฝ์์ ๊ฐ์ฅ ๋น ๋ฅธ ์ฟผ๋ฆฌ๋ mongos
๊ฐ config ์๋ฒ์์ ์ค๋ ํค์ ํด๋ฌ์คํฐ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ค๋๋ก ๋ผ์ฐํ
ํ๋ ์ฟผ๋ฆฌ์
๋๋ค. ์ด๋ฌํ ๋์ ์์
์ ์ค๋ ํค ๊ฐ์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ ๋ฌธ์๋ฅผ ์ถฉ์กฑํ๋ ์ค๋ ๋๋ ์ค๋์ ํ์ ์งํฉ์ ์ฐพ์ต๋๋ค.
์ค๋ ํค๊ฐ ํฌํจ๋์ง ์์ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ mongos
๋ ๋ชจ๋ ์ค๋๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์๋ต์ ๊ธฐ๋ค๋ฆฐ ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐํํด์ผ ํฉ๋๋ค. ์ด๋ฌํ '๋ถ์ฐ/์์ง' ์ฟผ๋ฆฌ ์์
์ ์ค๋ ์คํ๋ ์ ์์ต๋๋ค.
๋ธ๋ก๋์บ์คํธ ์์
mongos
์ธ์คํด์ค๋ ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ค๋ ๋๋ ์ค๋์ ํ์ ์งํฉ์ ํ์ธํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ mongos
๋ ์ปฌ๋ ์
์ ๋ชจ๋ ์ค๋์ ์ฟผ๋ฆฌ๋ฅผ ๋ธ๋ก๋์บ์คํธํฉ๋๋ค
mongos
๊ฐ ๋ชจ๋ ์ค๋์์ ์๋ต์ ์์ ํ ํ ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ๊ณ ๊ฒฐ๊ณผ ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค. ๋ธ๋ก๋์บ์คํธ ์์
์ ์ฑ๋ฅ์ ํด๋ฌ์คํฐ์ ์ ์ฒด ๋ถํ๋ฟ๋ง ์๋๋ผ ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ, ๊ฐ๋ณ ์ค๋ ๋ก๋, ์ค๋๋น ๋ฐํ๋๋ ๋ฌธ์ ์์ ๊ฐ์ ๋ณ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๊ฐ๋ฅํ๋ฉด ๋ธ๋ก๋์บ์คํธ ์์
์ ๋ฐ์์ํค๋ ์์
๋ณด๋ค ํ๊ฒํ
๋ ์์
์ ๋ฐ์์ํค๋ ์์
์ ์ ํธํฉ๋๋ค.
๋ค์ค ์ ๋ฐ์ดํธ ์์ ์ ํญ์ ๋ธ๋ก๋์บ์คํธ ์์ ์ ๋๋ค.
updateMany()
๋ฐ deleteMany()
๋ฉ์๋๋ ์ฟผ๋ฆฌ ๋ฌธ์์์ ์ค๋ ํค ์ ์ฒด๋ฅผ ์ง์ ํ์ง ์๋ ํ ๋ธ๋ก๋์บ์คํธ ์์
์
๋๋ค.
ํ๊ฒํ ๋ ์์
mongos
์(๋) ์ค๋ ํค ๋๋ ๋ณตํฉ ์ค๋ ํค์ ์ ๋์ฌ๊ฐ ํฌํจ๋ ์ฟผ๋ฆฌ๋ฅผ ํน์ ์ค๋ ๋๋ ์ค๋ ์งํฉ์ผ๋ก ๋ผ์ฐํ
ํ ์ ์์ต๋๋ค. mongos
์(๋) ์ค๋ ํค ๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฒ์์ ์ค๋ ํค ๊ฐ์ด ํฌํจ๋ ์ฒญํฌ๋ฅผ ์ฐพ๊ณ ํด๋น ์ฒญํฌ๊ฐ ํฌํจ๋ ์ค๋์์ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋
๋๋ค.
์๋ฅผ ๋ค์ด, ์ค๋ ํค๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๋๋ค.
{ a: 1, b: 1, c: 1 }
mongos
ํ๋ก๊ทธ๋จ์ ํน์ ์ค๋ ๋๋ ์ค๋ ์งํฉ์์ ์ ์ฒด ์ค๋ ํค ๋๋ ๋ค์ ์ค๋ ํค ์ ๋์ฌ ์ค ํ๋๋ฅผ ํฌํจํ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ผ์ฐํ
ํ ์ ์์ต๋๋ค.
{ a: 1 } { a: 1, b: 1 }
๋ชจ๋ insertOne()
์์
์ ํ๋์ ์ค๋๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. insertMany()
๋ฐฐ์ด์ ๊ฐ ๋ฌธ์๋ ๋จ์ผ ๋ถํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์์ผ๋ก ํ์ง๋ง ๋ฐฐ์ด์ ๋ชจ๋ ๋ฌธ์๊ฐ ๋จ์ผ ๋ถํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ์
๋๋ค๋ ๋ณด์ฅ์ ์์ต๋๋ค.
๋ชจ๋ updateOne()
, replaceOne()
๋ฐ deleteOne()
์์
์๋ ๋ฐ๋์ ์ฟผ๋ฆฌ ๋ฌธ์์ ์ค๋ ํค ๋๋ _id
์ด(๊ฐ) ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋ฉ์๋๊ฐ ์ค๋ ํค ๋๋ _id
์์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ MongoDB๋ ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค.
cluster ๋ด ๋ฐ์ดํฐ ๋ถํฌ์ ์ฟผ๋ฆฌ์ ์ ํ๋์ ๋ฐ๋ผ mongos
๋ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ ๋ธ๋ก๋์บ์คํธ ์์
์ ์ํํ ์ ์์ต๋๋ค.
์ธ๋ฑ์ค ์ฌ์ฉํ๊ธฐ
์ค๋๋ ์ฟผ๋ฆฌ๋ฅผ ์์ ํ๋ฉด ํด๋น ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ฒ ์ค ๊ฐ์ฅ ํจ์จ์ ์ธ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ์ฉ๋๋ ์ธ๋ฑ์ค๋ ์ค๋ ํค ์ธ๋ฑ์ค ๋๋ ์ค๋์ ์กด์ฌํ๋ ๋ค๋ฅธ ์ ํฉํ ์ธ๋ฑ์ค์ผ ์ ์์ต๋๋ค.
์ค๋ฉ๋ ํด๋ฌ์คํฐ ๋ณด์
์์ฒด ๊ด๋ฆฌํ ๋ด๋ถ/๋ฉค๋ฒ์ญ ์ธ์ฆ์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ๋ด ๋ณด์์ ์ํํ๊ณ ๊ถํ์ด ์๋ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ์์๊ฐ ํด๋ฌ์คํฐ์ ์ก์ธ์คํ์ง ๋ชปํ๋๋ก ํฉ๋๋ค. ๋ด๋ถ ์ธ์ฆ์ ์งํํ๋ ค๋ฉด ํด๋ฌ์คํฐ์ ๊ฐ mongod
๋๋ mongos
๋ฅผ ์ ์ ํ ๋ณด์ ์ค์ ์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
MongoDB 5.3๋ถํฐ๋ SCRAM-SHA-1์ ํด๋ฌ์คํฐ ๋ด ์ธ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. SCRAM-SHA-256๋ง ์ง์๋ฉ๋๋ค.
์ด์ MongoDB ๋ฒ์ ์์๋ SCRAM์ด ๋ช ์์ ์ผ๋ก ํ์ฑํ๋์ด ์์ง ์๋๋ผ๋ SCRAM-SHA-1๊ณผ SCRAM-SHA-256์ ๋ชจ๋ ํด๋ฌ์คํฐ ๋ด ์ธ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฒด ๊ด๋ฆฌํ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๋ฐฐํฌ์ ๋ํ ํํ ๋ฆฌ์ผ์ ํคํ์ผ ์ธ์ฆ์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ๋ฐฐํฌํ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํด๋ฌ์คํฐ ์ฌ์ฉ์
์ค๋ฉ๋ ํด๋ฌ์คํฐ๋ ํด๋ฌ์คํฐ ๋ฐ์ดํฐ ๋ฐ ์์
์ ๋ํ ๋ฌด๋จ ์ก์ธ์ค๋ฅผ ์ ํํ๊ธฐ ์ํด ์์ฒด ๊ด๋ฆฌํ ๋ฐฐํฌ์ Role-Based Access Control(RBAC)๋ฅผ ์ง์ํฉ๋๋ค. RBAC๋ฅผ ์ํํ๋ ค๋ฉด Config ์๋ฒ๋ฅผ ํฌํจํ์ฌ ํด๋ฌ์คํฐ์ ๊ฐ
mongod
๋ฅผ --auth
์ต์
๊ณผ ํจ๊ป ์์ํด์ผ ํฉ๋๋ค. ๋๋ ํด๋ฌ์คํฐ ๊ฐ ๋ณด์์ ์ํด ์์ฒด ๊ด๋ฆฌํ ๋ด๋ถ/๋ฉค๋ฒ์ญ ์ธ์ฆ์ ์ํํ๋ฉด RBAC๋ฅผ ํตํด ์ฌ์ฉ์ ์ก์ธ์ค๋ฅผ ์ ์ดํ ์๋ ์์ต๋๋ค.
RBAC๊ฐ ์ํ๋๋ฉด ํด๋ผ์ด์ธํธ๋ ํด๋ฌ์คํฐ ๋ฆฌ์์ค์ ์ก์ธ์คํ๊ธฐ ์ํด mongos
์ฐ๊ฒฐ ์
--username
, --password
๋ฐ --authenticationDatabase
๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
๊ฐ ํด๋ฌ์คํฐ์๋ ์์ฒด ํด๋ฌ์คํฐ ์ฌ์ฉ์๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์ฌ์ฉ์๋ ๊ฐ๋ณ ์ค๋์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
RBAC๊ฐ ํ์ฑํ๋ MongoDB ๋ฐฐํฌ์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํํ ๋ฆฌ์ผ์ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์์ ์ก์ธ์ค ์ ์ด ํ์ฑํ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฉํ๋ฐ์ดํฐ ์์
mongos
๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๋ฉํ๋ฐ์ดํฐ์ ์ํฅ์ ์ฃผ๋ ๋ค์ ์์
์ ๋ํด "majority"
๊ฐ์ ์ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ถ๊ฐ ์ ๋ณด
fCV ํธํ์ฑ
๋ฐ์ด๋๋ฆฌ๋ ๊ธฐ๋ฅ ํธํ์ฑ ๋ฒ์ (FCV)์ด
mongos
๋ณด๋ค ํฐ mongod
mongos
์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์์ ๋ฅผ ๋ค์ด MongoDB 4์(๋ฅผ) ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.0 ๋ฒ์ ๋ฅผ ๋ก mongos
4์
๋ฐ์ดํธํฉ๋๋ค.2 FCV ๊ฐ 4 ๋ก ์ค์ ํ๋ค ์ค๋ฉ๋ ํด๋ฌ์คํฐ2.. ๊ทธ๋ฌ๋ MongoDB 4๋ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.0 ๋ฒ์ mongos
์ 4 ๋ก ๋ณํํฉ๋๋ค.2 FCV 4๊ฐ. ๋ก ์ค์ ํ๋ค ์ค๋ฉ๋ ํด๋ฌ์คํฐ0.
ํํ์ ์ง๋จ ๋ฐ์ดํฐ ์บก์ฒ ์๊ตฌ ์ฌํญ
mongod
์๋ MongoDB ์์ง๋์ด๊ฐ ๋ฐฐํฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ํํ์ ์ง๋จ ๋ฐ์ดํฐ ์บก์ฒ(Full Time Diagnostic Data Capture, FTDC) ๋ฉ์ปค๋์ฆ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด ์ค๋ ๋๊ฐ ์คํจํ๋ฉด ์๋ ํ๋ก์ธ์ค๋ฅผ ์ข
๋ฃํฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ์ฌ์ฉ์์๊ฒ FTDC diagnostic.data
๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ ๊ถํ์ด ์๋์ง ํ์ธํ์ญ์์ค. mongod
์ ๊ฒฝ์ฐ ์ด ๋๋ ํ ๋ฆฌ๋ storage.dbPath
๋ด์ ์์ต๋๋ค.
mongos
์ ๊ฒฝ์ฐ systemLog.path
๊ณผ ์ ์ฌํฉ๋๋ค.
์ฐ๊ฒฐ ํ
MongoDB 4.2๋ถํฐ๋ ShardingTaskExecutorPoolReplicaSetMatching
๋งค๊ฐ ๋ณ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด ๋งค๊ฐ ๋ณ์๋ mongod
/mongos
์ธ์คํด์ค ์ฐ๊ฒฐ ํ์ ์ต์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ธ์คํด์ค์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๊ฐ ๊ตฌ์ฑ์์ ๋ํ ์ฐ๊ฒฐ ํ์ ์ต์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด ๊ฐ์ ๋ฐํ์ ์ค์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
mongod
๋ฐ mongos
๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ณต์ ๋ณธ ์ธํธ์ ๋ํด ๊ฐ ๋ณต์ ๋ณธ ์ธํธ์ ๋ํ ์ฐ๊ฒฐ ํ์ ๋ณด์กฐ์ ์ผ๋ก ์ ์งํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฌํ ํ์๋ ๊ธฐ๋ณธ์ ๋ํ ์ฐ๊ฒฐ ์ ์ด์์ ์ฐ๊ฒฐ ์๊ฐ ์์ต๋๋ค.
์์ ํ๋ ค๋ฉด ShardingTaskExecutorPoolReplicaSetMatching
์ฐธ์กฐํ์ธ์.
ํด๋ฌ์คํฐ์ ์ง๊ณ ํ์ดํ๋ผ์ธ ์ฌ์ฉ
์ค๋ฉ์ด ์ง๊ณ์ ํจ๊ป ์๋ํ๋ ๋ฐฉ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ค์ฉ์ ์ธ MongoDB ์ง๊ณ ์ ์์ฑ ์ ์ค๋ฉ ์ฑํฐ๋ฅผ ์ฐธ์กฐํ์ธ์.