Docs Menu
Docs Home
/
MongoDB ๋งค๋‰ด์–ผ
/ / / /

์ž์ฒด ๊ด€๋ฆฌํ˜• ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ‚ค ํŒŒ์ผ ์ธ์ฆ์œผ๋กœ ์—…๋ฐ์ดํŠธ

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

  • ๊ฐœ์š”
  • ๊ณ ๋ ค ์‚ฌํ•ญ
  • ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—
  • ์ ˆ์ฐจ
  • x.509 ๋‚ด๋ถ€ ์ธ์ฆ

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ๋ฉค๋ฒ„๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋™์ผํ•œ ๋‚ด๋ถ€ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ์„ค์ •์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํด๋Ÿฌ์Šคํ„ฐ์˜ mongos ๋ฐ mongod ๊ฐ๊ฐ์— ๋‚ด๋ถ€ ์ธ์ฆ์„ ์‹œํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ํ‚ค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ์ธ์ฆ์„ ์„ค์ •ํ•˜๋ฉด ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ์ œ์–ด๋„ ๊ฐ•ํ™”๋ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด mongosh ์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉ์ž ๊ณ„์ • ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Cloud Manager ๋˜๋Š” Ops Manager๊ฐ€ ๋ฐฐํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ๋‚ด๋ถ€ ์ธ์ฆ์ด ์ž๋™์œผ๋กœ ์‹œํ–‰๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌํ˜• ๋ฐฐํฌ์—์„œ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด Cloud Manager ๋งค๋‰ด์–ผ ๋˜๋Š” MongoDB Ops Manager ๋งค๋‰ด์–ผ์—์„œ Configure Access Control for MongoDB Deployments ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ค‘์š”

๋ณ€๊ฒฝ๋œ IP ์ฃผ์†Œ๋กœ ์ธํ•ด ๊ตฌ์„ฑ์ด ์—…๋ฐ์ดํŠธ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด IP ์ฃผ์†Œ ๋Œ€์‹  DNS ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ํŠนํžˆ ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ์› ๋˜๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์›์„ ๊ตฌ์„ฑํ•  ๋•Œ IP ์ฃผ์†Œ ๋Œ€์‹  DNS ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

IP ์ฃผ์†Œ ๋Œ€์‹  ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ”Œ๋ฆฟ ๋„คํŠธ์›Œํฌ ํ˜ธ๋ผ์ด์ฆŒ ์ „๋ฐ˜์— ๊ฑธ์ณ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜์„ธ์š”. MongoDB 5.0๋ถ€ํ„ฐ IP ์ฃผ์†Œ๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ๋…ธ๋“œ๋Š” ์Šคํƒ€ํŠธ์—… ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ์‹คํŒจํ•˜๋ฉฐ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2} ๋ฐmongod mongos MongoDB localhost ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค.

์ด ์ž์Šต์„œ์—์„œ๋Š” ์ฃผ๋กœ mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ์œˆ๋„์šฐ ์‚ฌ์šฉ์ž๋Š” mongod.exe ํ”„๋กœ๊ทธ๋žจ์„ ๋Œ€์‹  ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค ํŒŒ์ผ์€ ์ตœ์†Œํ•œ์˜ ๋ณด์•ˆ ํ˜•ํƒœ์ด๋ฉฐ, ํ…Œ์ŠคํŠธ ๋˜๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๊ฐ€์žฅ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” x.509 ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ์ž์Šต์„œ๋Š” admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ตœ์†Œํ•œ์˜ ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋งŒ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ธ์ฆ์—๋Š” ๊ธฐ๋ณธ SCRAM ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„-์‘๋‹ต ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ…Œ์ŠคํŠธ ๋˜๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๊ฐ€์žฅ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ x.509 ์ธ์ฆ์„œ ๋˜๋Š” ์ž์ฒด ๊ด€๋ฆฌํ˜• LDAP ํ”„๋ก์‹œ ์ธ์ฆ(MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ) ๋˜๋Š” ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ฐฐํฌ์—์„œ Kerberos ์ธ์ฆ(MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํŠน์ • ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํŠน์ • ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ๊ถŒ์žฅ์‚ฌํ•ญ์€ โžค ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ผ๋ฐ˜์ ์œผ๋กœ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด mongos์— ์—ฐ๊ฒฐํ•˜์—ฌ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€ ์œ ์ง€ ๊ด€๋ฆฌ ์ž‘์—…์—๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ํŠน์ • ์ƒค๋“œ์— ๋Œ€ํ•œ ์ง์ ‘ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ƒค๋“œ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ณ  ์ƒค๋“œ ๋กœ์ปฌ ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž๋กœ ์ธ์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ƒค๋“œ ๋กœ์ปฌ ์‚ฌ์šฉ์ž๋Š” ํŠน์ • ์ƒค๋“œ ์—๋งŒ ์กด์žฌํ•˜๋ฉฐ ์ƒค๋“œ๋ณ„ ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ๊ตฌ์„ฑ์—๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒค๋“œ ๋กœ์ปฌ ์‚ฌ์šฉ์ž๋กœ๋Š” mongos ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์˜ ์‚ฌ์šฉ์ž ๋ณด์•ˆ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ƒค๋“œ cluster๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๋‹ค์šดํƒ€์ž„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 8.0 ๋ถ€ํ„ฐ๋Š” directShardOperations ์—ญํ•  ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒค๋“œ ์— ๋Œ€ํ•ด ์ง์ ‘ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

directShardOperations ์—ญํ•  ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. directShardOperations ์—ญํ•  ์€ ์œ ์ง€ ๊ด€๋ฆฌ ๋ชฉ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ MongoDB ์ง€์› ์˜ ์ง€์นจ ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์œ ์ง€ ๊ด€๋ฆฌ ์ž‘์—… ์ˆ˜ํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด directShardOperations ์—ญํ•  ์‚ฌ์šฉ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

1

ํ‚ค ํŒŒ์ผ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ mongod ๋˜๋Š” mongos ์ธ์Šคํ„ด์Šค๋Š” ๋ฐฐํฌ์—์„œ ๋‹ค๋ฅธ ๋ฉค๋ฒ„๋ฅผ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•œ ๊ณต์œ  ์•”ํ˜ธ๋กœ ํ‚ค ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ‚ค ํŒŒ์ผ์„ ๊ฐ€์ง„ mongod ๋˜๋Š” mongos ์ธ์Šคํ„ด์Šค๋งŒ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋‚ด๋ถ€ ๋ฉค๋ฒ„์‹ญ ์ธ์ฆ์„ ์œ„ํ•œ ํ‚คํŒŒ์ผ์€ YAML ํ˜•์‹์„ ์‚ฌ์šฉํ•ด ํ‚คํŒŒ์ผ์— ์—ฌ๋Ÿฌ ํ‚ค๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. YAML ํ˜•์‹์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹จ์ผ ํ‚ค ๋ฌธ์ž์—ด(์ด์ „ ๋ฒ„์ „๊ณผ ๋™์ผ)

  • ํ‚ค ๋ฌธ์ž์—ด์˜ ์ˆœ์„œ

YAML ํ˜•์‹์€ ํ…์ŠคํŠธ ํŒŒ์ผ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด์˜ ๋‹จ์ผ ํ‚ค ํ‚คํŒŒ์ผ๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

ํ‚ค ๊ธธ์ด๋Š” 6~1024์ž ์‚ฌ์ด์—ฌ์•ผ ํ•˜๋ฉฐ base64 ์„ธํŠธ์˜ ๋ฌธ์ž๋งŒ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋ฉค๋ฒ„๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ณตํ†ต ํ‚ค๋ฅผ ๊ณต์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

UNIX ์‹œ์Šคํ…œ์—์„œ๋Š” ํ‚ค ํŒŒ์ผ์— ๊ทธ๋ฃน ๋˜๋Š” ์›”๋“œ ๊ถŒํ•œ์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Windows ์‹œ์Šคํ…œ์—์„œ๋Š” ํ‚ค ํŒŒ์ผ ๊ถŒํ•œ์ด ํ™•์ธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์ž‘์—…์—์„œ๋Š” openssl ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์œ  ์•”ํ˜ธ๋กœ ์‚ฌ์šฉํ•  ๋ณต์žกํ•œ ์˜์‚ฌ ๋‚œ์ˆ˜ 1024์ž ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ chmod ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์†Œ์œ ์ž์—๊ฒŒ๋งŒ ์ฝ๊ธฐ ๊ถŒํ•œ์„ ์ œ๊ณตํ•˜๋„๋ก ํŒŒ์ผ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

openssl rand -base64 756 > <path-to-keyfile>
chmod 400 <path-to-keyfile>

ํ‚คํŒŒ์ผ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์„ธ๋ถ€ ์ •๋ณด ๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์€ ํ‚คํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

2

cluster์˜ mongod ๋˜๋Š” mongos ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ชจ๋“  ์„œ๋ฒ„์—๋Š” ํ‚ค ํŒŒ์ผ ๋ณต์‚ฌ๋ณธ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฉค๋ฒ„๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๊ฐ ์„œ๋ฒ„์— ํ‚ค ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. mongod ๋˜๋Š” mongos ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ์˜ ์†Œ์œ ์ž์ด๋ฉฐ ํ‚ค ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

USB ๋“œ๋ผ์ด๋ธŒ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์ €์žฅ ์žฅ์น˜์™€ ๊ฐ™์ด mongod ๋˜๋Š” mongos์ธ์Šคํ„ด์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ํ•˜๋“œ์›จ์–ด์—์„œ ์‰ฝ๊ฒŒ ๋ถ„๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ ๋งค์ฒด์— ํ‚ค ํŒŒ์ผ์„ ์ €์žฅํ•˜์ง€ ๋งˆ์„ธ์š”.

3

mongosh ์„ mongos ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

sh.stopBalancer()

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์ง„ํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ฆ‰์‹œ ์ค‘์ง€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. sh.stopBalancer() ๋ฉ”์„œ๋“œ๋Š” balancer๊ฐ€ ์ค‘์ง€๋  ๋•Œ๊นŒ์ง€ shell์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

MongoDB 6.0.3๋ถ€ํ„ฐ ์ž๋™ ์ฒญํฌ ๋ถ„ํ• ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐธ๋Ÿฐ์‹ฑ ์ •์ฑ… ๊ฐœ์„  ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ž๋™ ๋ถ„ํ•  ๋ช…๋ น์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•˜์ง€๋งŒ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

MongoDB 6.0.3 ์ด์ „ ๋ฒ„์ „์—์„œ sh.stopBalancer()๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์ž๋™ ๋ถ„ํ• ๋„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

sh.getBalancerState() ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์ค‘์ง€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

sh.getBalancerState()

์ค‘์š”

๋ฐธ๋Ÿฐ์„œ ์‹คํ–‰์ด ์ค‘์ง€๋  ๋•Œ๊นŒ์ง€ ์ง„ํ–‰ํ•˜์ง€ ๋งˆ์„ธ์š”.

cluster ๋ฐธ๋Ÿฐ์„œ ๋™์ž‘ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ํŠœํ† ๋ฆฌ์–ผ์€ cluster ๋ฐธ๋Ÿฐ์„œ managed ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

4

mongosh ๋ฅผ ๊ฐ mongos ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ db.shutdownServer() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mongos ์„(๋ฅผ) ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

db.getSiblingDB("admin").shutdownServer()

cluster์˜ ๋ชจ๋“  mongos ์ธ์Šคํ„ด์Šค๊ฐ€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด cluster์˜ ๋ชจ๋“  mongos ์ธ์Šคํ„ด์Šค๊ฐ€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

5

config ์„œ๋ฒ„ mongosh ๋ฐฐํฌ์˜ ๊ฐ ์— ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.mongod

config ์„œ๋ฒ„ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ ๋ณต์ œ๋ณธ ์„ธํŠธ ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„๋ฅผ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ db.shutdownServer() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mongod ์„(๋ฅผ) ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

db.getSiblingDB("admin").shutdownServer()

๋ชจ๋“  config ์„œ๋ฒ„๊ฐ€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

6

๊ฐ ์ƒค๋“œ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•ด mongosh ๋ฅผ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๊ฐ mongod ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„๋ฅผ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ db.shutdownServer() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mongod ์„(๋ฅผ) ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

db.getSiblingDB("admin").shutdownServer()

๋ชจ๋“  ์ƒค๋“œ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋ชจ๋“  mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ์˜คํ”„๋ผ์ธ์ด ๋  ๋•Œ๊นŒ์ง€ ๊ฐ ์ƒค๋“œ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•ด ์ด ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ƒค๋“œ cluster ์ „์ฒด๊ฐ€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

7

config ์„œ๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ ์—์„œ ๊ฐ mongod ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. keyFile ์„ค์ •์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. keyFile ์„ค์ •์€ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์—์„œ ์ž์ฒด ๊ด€๋ฆฌ ๋‚ด๋ถ€/๋ฉค๋ฒ„์‹ญ ์ธ์ฆ ๊ณผ ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ๋ชจ๋‘ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ์ด๋‚˜ ๋ช…๋ น์ค„์„ ํ†ตํ•ด mongod ์„ค์ •์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ

๊ตฌ์„ฑ ํŒŒ์ผ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ config ์„œ๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•ด security.keyFile ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋กœ, sharding.clusterRole ๋ฅผ configsvr ๋กœ, replication.replSetName ๋ฅผ config ์„œ๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

security:
keyFile: <path-to-keyfile>
sharding:
clusterRole: configsvr
replication:
replSetName: <setname>
storage:
dbpath: <path>

๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌ ๋ฉค๋ฒ„๊ฐ€ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋ ค๋ฉด net.bindIp ์„ค์ •์„ ์ง€์ •ํ•˜์„ธ์š”.

--config ์˜ต์…˜๊ณผ ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ mongod๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

mongod --config <path-to-config>

๋ช…๋ น์ค„

๋ช…๋ น์ค„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ config ์„œ๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•ด -keyFile, --configsvr ๋ฐ --replSet ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mongod ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

mongod --keyFile <path-to-keyfile> --configsvr --replSet <setname> --dbpath <path>

๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌ ๊ตฌ์„ฑ์›์ด ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋ ค๋ฉด --bind_ip ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์ค„ ์˜ต์…˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ mongod ์ฐธ๊ณ  ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐ ๋ฉค๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ ์›๋ž˜ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ด๋ฆ„์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

8

keyFile ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ mongod ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์—์„œ ์ž์ฒด ๊ด€๋ฆฌ ๋‚ด๋ถ€/๋ฉค๋ฒ„์‹ญ ์ธ์ฆ ๊ณผ ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๊ฐ€ ๋ชจ๋‘ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ ๋˜๋Š” ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๊ฐ mongod๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ

๊ตฌ์„ฑ ํŒŒ์ผ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ security.keyFile ์˜ต์…˜์„ ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋กœ ์„ค์ •ํ•˜๊ณ  replication.replSetName ์˜ต์…˜์„ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์›๋ž˜ ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

security:
keyFile: <path-to-keyfile>
replication:
replSetName: <setname>
storage:
dbPath: <path>

๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌ ๋ฉค๋ฒ„๊ฐ€ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋ ค๋ฉด net.bindIp ์„ค์ •์„ ์ง€์ •ํ•˜์„ธ์š”.

--config ์˜ต์…˜๊ณผ ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ mongod๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

mongod --config <path-to-config-file>

๋ช…๋ น์ค„

๋ช…๋ น์ค„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ mongod ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  --keyFile ๋ฐ --replSet ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

mongod --keyfile <path-to-keyfile> --replSet <setname> --dbpath <path>

๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌ ๊ตฌ์„ฑ์›์ด ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋ ค๋ฉด --bind_ip ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ mongod ์ฐธ์กฐ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐ ๋ฉค๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ ์›๋ž˜ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ด๋ฆ„์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

cluster์˜ ๋ชจ๋“  ์ƒค๋“œ๊ฐ€ ์˜จ๋ผ์ธ ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ์ด ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

9

์ค‘์š”

์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์˜ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ mongod ์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์˜ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์˜ˆ์™ธ ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž๋Š” userAdminAnyDatabase์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ฐฐํฌ์˜ Localhost ์˜ˆ์™ธ๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„ ์ถ”๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜ ์ด์ƒ์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ localhost ์˜ˆ์™ธ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ƒˆ ๊ถŒํ•œ์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํŠน์ • ๊ธฐ๋Šฅ์ด๋‚˜ ์ž‘์—…์— ์•ก์„ธ์Šคํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ ์ƒค๋“œ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•ด mongosh ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์ธํ„ฐํŽ˜์ด์Šค ๋ฅผ ํ†ตํ•ด ๋ฅผ ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด mongod ๋Œ€์ƒ ์™€ ๋™์ผํ•œ ๋จธ์‹ ์—์„œ mongosh ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—์„œ userAdminAnyDatabase ์—ญํ•  ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ์ž๋Š” ํ•„์š”์— ๋”ฐ๋ผ ์ƒค๋“œ ๋ณต์ œ๋ณธ ์„ธํŠธ ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค๋ฉด ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์—์„œ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์˜ˆ์™ธ๋„ ๋‹ซํž™๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ƒค๋“œ ๋กœ์ปฌ ์‚ฌ์šฉ์ž fred ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์‹œ์Šคํ…œ ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜๊ณ  ์•…์˜์ ์ธ ์•ก์„ธ์Šค๋ฅผ ๋ฐฉ์ง€ํ•˜๊ฑฐ๋‚˜ ์ง€์—ฐํ•˜๋ ค๋ฉด ์•”ํ˜ธ๋Š” ์ž„์˜์ ์ด๊ณ  ๊ธธ๋ฉฐ ๋ณต์žกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒ

๋ฉ”์„œ๋“œ/๋ช…๋ น ํ˜ธ์ถœ์—์„œ ์•”ํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜๋Š” ๋Œ€์‹  passwordPrompt() ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ/๊ด€๋ฆฌ ๋ฉ”์„œ๋“œ/๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „ ๋ฒ„์ „์˜ mongo ์…ธ์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "fred",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
10

keyFile ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ mongod ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์—์„œ ์ž์ฒด ๊ด€๋ฆฌ ๋‚ด๋ถ€/๋ฉค๋ฒ„์‹ญ ์ธ์ฆ ๊ณผ ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๊ฐ€ ๋ชจ๋‘ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ ๋˜๋Š” ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๊ฐ mongos๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ

๊ตฌ์„ฑ ํŒŒ์ผ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ security.keyFile ๋ฅผ ํ‚ค ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ์„ค์ •ํ•˜๊ณ  sharding.configDB ๋ฅผ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„๊ณผ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋กœ <replSetName>/<host:port> ํ˜•์‹์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

security:
keyFile: <path-to-keyfile>
sharding:
configDB: <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019,...

๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌ ๋ฉค๋ฒ„๊ฐ€ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋ ค๋ฉด net.bindIp ์„ค์ •์„ ์ง€์ •ํ•˜์„ธ์š”.

--config ์˜ต์…˜๊ณผ ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ mongos๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

mongos --config <path-to-config-file>

๋ช…๋ น์ค„

๋ช…๋ น์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ mongos๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  --keyFile ๋ฐ --configdb ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

mongos --keyFile <path-to-keyfile> --configdb <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019,...

๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌ ๊ตฌ์„ฑ์›์ด ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋ ค๋ฉด --bind_ip ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ ์ „์ฒด ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋‹ค์‹œ ์˜จ๋ผ์ธ ์ƒํƒœ๊ฐ€ ๋˜๋ฉฐ ์ง€์ •๋œ ํ‚ค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€์ ์œผ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ mongosh ์™€ ๊ฐ™์€ ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์€ ํด๋Ÿฌ์Šคํ„ฐ์— ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋ ค๋ฉด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ”„๋กœ๋น„์ €๋‹๋œ ์‚ฌ์šฉ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

11

localhost ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด mongosh๋ฅผ mongos ์ธ์Šคํ„ด์Šค ์ค‘ ํ•˜๋‚˜์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. mongos ์ธ์Šคํ„ด์Šค์™€ ๋™์ผํ•œ ๋ฌผ๋ฆฌ์  ์ปดํ“จํ„ฐ์—์„œ mongosh๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์ƒ์„ฑ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž ์ƒ์„ฑ ํ›„ localhost ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ซํž™๋‹ˆ๋‹ค.

12

์ค‘์š”

์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“  ํ›„์—๋Š” ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์˜ˆ์™ธ๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž๋Š” userAdminAnyDatabase์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ฐฐํฌ์˜ Localhost ์˜ˆ์™ธ๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„ ์ถ”๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ๋ช… ์ด์ƒ์ธ ๊ฒฝ์šฐ, ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์˜ˆ์™ธ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

db.createUser() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ตœ์†Œํ•œ userAdminAnyDatabase ์—ญํ• ์„ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์‹œ์Šคํ…œ ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜๊ณ  ์•…์˜์ ์ธ ์•ก์„ธ์Šค๋ฅผ ๋ฐฉ์ง€ํ•˜๊ฑฐ๋‚˜ ์ง€์—ฐํ•˜๋ ค๋ฉด ์•”ํ˜ธ๋Š” ์ž„์˜์ ์ด๊ณ  ๊ธธ๋ฉฐ ๋ณต์žกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฌ์šฉ์ž fred๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํŒ

๋ฉ”์„œ๋“œ/๋ช…๋ น ํ˜ธ์ถœ์—์„œ ์•”ํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜๋Š” ๋Œ€์‹  passwordPrompt() ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ/๊ด€๋ฆฌ ๋ฉ”์„œ๋“œ/๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „ ๋ฒ„์ „์˜ mongo ์…ธ์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "fred",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

๊ธฐ๋ณธ ์ œ๊ณต ์—ญํ•  ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ์—ญํ• ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž ์—ญํ• ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

13

db.auth()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ์ž๋กœ ์ธ์ฆํ•ด ์ถ”๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํŒ

๋ฉ”์„œ๋“œ/๋ช…๋ น ํ˜ธ์ถœ์—์„œ ์•”ํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜๋Š” ๋Œ€์‹  passwordPrompt() ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ/๊ด€๋ฆฌ ๋ฉ”์„œ๋“œ/๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „ ๋ฒ„์ „์˜ mongo ์…ธ์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

db.getSiblingDB("admin").auth("fred", passwordPrompt()) // or cleartext password

๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” -u <username>, -p <password> ๋ฐ --authenticationDatabase "admin" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ mongosh ์„ธ์…˜์„ ๋Œ€์ƒ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์—์„œ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ์˜ˆ์™ธ๋ฅผ mongos ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mongosh -u "fred" -p --authenticationDatabase "admin"

-p ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด mongosh(์ด)๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

14

cluster ๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ƒค๋“œ cluster์— ๋Œ€ํ•œ clusterAdmin ์—ญํ• ์ด ์žˆ์œผ๋ฉฐ, ์ƒค๋“œ ๋กœ์ปฌ cluster ๊ด€๋ฆฌ์ž๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฌ์šฉ์ž ravi๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์‹œ์Šคํ…œ ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜๊ณ  ์•…์˜์ ์ธ ์•ก์„ธ์Šค๋ฅผ ๋ฐฉ์ง€ํ•˜๊ฑฐ๋‚˜ ์ง€์—ฐํ•˜๋ ค๋ฉด ์•”ํ˜ธ๋Š” ์ž„์˜์ ์ด๊ณ  ๊ธธ๋ฉฐ ๋ณต์žกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒ

๋ฉ”์„œ๋“œ/๋ช…๋ น ํ˜ธ์ถœ์—์„œ ์•”ํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜๋Š” ๋Œ€์‹  passwordPrompt() ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ/๊ด€๋ฆฌ ๋ฉ”์„œ๋“œ/๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „ ๋ฒ„์ „์˜ mongo ์…ธ์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

db.getSiblingDB("admin").createUser(
{
"user" : "ravi",
"pwd" : passwordPrompt(), // or cleartext password
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)

๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฐ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋ณธ ์ œ๊ณต ์—ญํ• ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ ์—ญํ• ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

15

์ƒค๋”ฉ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด clusterAdmin db.auth() mongosh ๋ฉ”์„œ๋“œ username ๋˜๋Š”password, ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ authenticationDatabase ์žˆ๋Š” ์ƒˆ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋กœ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์ด๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž์ด๋ฉฐ, ์ƒค๋“œ ๋กœ์ปฌ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

16

๋ฐธ๋Ÿฐ์„œ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

sh.startBalancer()

MongoDB 6.0.3๋ถ€ํ„ฐ ์ž๋™ ์ฒญํฌ ๋ถ„ํ• ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐธ๋Ÿฐ์‹ฑ ์ •์ฑ… ๊ฐœ์„  ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ž๋™ ๋ถ„ํ•  ๋ช…๋ น์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•˜์ง€๋งŒ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

MongoDB 6.0.3 ์ด์ „ ๋ฒ„์ „์—์„œ sh.startBalancer()๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์ž๋™ ๋ถ„ํ• ๋„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

sh.getBalancerState() ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

cluster ๋ฐธ๋Ÿฐ์„œ์— ๋Œ€ํ•œ ํŠœํ† ๋ฆฌ์–ผ์€ cluster ๋ฐธ๋Ÿฐ์„œ managed ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

17

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฐ ์™€ read ๊ฐ™์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‚ด์žฅ ์ œ๊ณต readWrite ์—ญํ• ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž ์—ญํ•  ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์ถ”๊ฐ€ ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ ์€ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์˜ ์‚ฌ์šฉ์ž๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ถ”๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด userAdminAnyDatabase ๋˜๋Š” userAdmin ์—ญํ• ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋กœ ์ธ์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ์ธ์ฆ์— x.509๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB์˜ ๋ฉค๋ฒ„์‹ญ ์ธ์ฆ์— x.509 ์ธ์ฆ์„œ ์‚ฌ์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ‚ค ํŒŒ์ผ ๋‚ด๋ถ€ ์ธ์ฆ ์—์„œ x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ฉ๋‹ˆ๋‹ค.509 ๋‚ด๋ถ€ ์ธ์ฆ, ํ‚ค ํŒŒ์ผ ์ธ์ฆ์—์„œ ์ž์ฒด ๊ด€๋ฆฌํ˜• MongoDB ๋ฅผ x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.509 ์ธ์ฆ.

๋Œ์•„๊ฐ€๊ธฐ

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ