Docs Menu

mongod

mongod์€(๋Š”) MongoDB ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ๋ฐ๋ชฌ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๊ด€๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

์ฐธ๊ณ 

MongoDB๋Š” TLS 1.1 ์ด์ƒ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์—์„œ TLS 1.0 ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ๋ฐฐํฌ๋Š” mongod๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB Atlas: ํด๋ผ์šฐ๋“œ์—์„œ์˜ MongoDB ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค

์ฐธ๊ณ 

MongoDB Atlas๋Š” ๋ชจ๋“  MongoDB Atlas ๋ฐฐํฌ์— ๋Œ€ํ•œ mongod์„(๋ฅผ) ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB Enterprise: MongoDB์˜ ๊ตฌ๋… ๊ธฐ๋ฐ˜ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

  • MongoDB Community: MongoDB์˜ ์†Œ์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฌด๋ฃŒ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

  • mongod์—๋Š” MongoDB ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋ฐฐํฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ๋•๋Š” ํ’€ํƒ€์ž„ ์ง„๋‹จ ๋ฐ์ดํ„ฐ ์บก์ฒ˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์›๋ž˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ FTDC diagnostic.data ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. mongod ์˜ ๊ฒฝ์šฐ ๋””๋ ‰ํ† ๋ฆฌ๋Š” storage.dbPath ๋‚ด์— ์žˆ์Šต๋‹ˆ๋‹ค. mongos ์˜ ๊ฒฝ์šฐ systemLog.path ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 6.1์—์„œ ๋ณ€๊ฒฝ๋จ:

  • MongoDB๋Š” ํ•ญ์ƒ ์ €๋„๋ง์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ MongoDB๋Š” storage.journal.enabled ์˜ต์…˜๊ณผ ํ•ด๋‹น --journal ๋ฐ --nojournal ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 5.2์—์„œ ๋ณ€๊ฒฝ๋จ:

  • MongoDB์—์„œ --cpu ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 5.0์—์„œ ๋ณ€๊ฒฝ๋จ:

  • MongoDB๋Š” --serviceExecutor ๋ช…๋ น์ค„ ์˜ต์…˜๊ณผ ํ•ด๋‹น net.serviceExecutor ๊ตฌ์„ฑ ์˜ต์…˜์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

--help, -h

์˜ต์…˜ ๋ฐ mongod์˜ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

--version

mongod ์ถœ์‹œ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

--config <filename>, -f <filename>

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

๊ตฌ์„ฑ ํŒŒ์ผ์ด ASCII ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. mongod ์ธ์Šคํ„ด์Šค๋Š” UTF-8์„ ํฌํ•จํ•˜์—ฌ ASCII๊ฐ€ ์•„๋‹Œ ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--configExpand <none|rest|exec>

๊ธฐ๋ณธ๊ฐ’: ์—†์Œ

๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ํ™•์žฅ ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํ™•์žฅ ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌ์„ฑ ํŒŒ์ผ ์˜ต์…˜์— ๋Œ€ํ•ด ์™ธ๋ถ€ ์†Œ์Šค ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--configExpand ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™•์žฅ ์ง€์‹œ๋ฌธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

none

๊ธฐ๋ณธ๊ฐ’. mongod๋Š” ํ™•์žฅ ์ง€์‹œ๋ฌธ์„ ํ™•์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํŒŒ์ผ ์„ค์ •์— ํ™•์žฅ ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ mongod๋ฅผ ์‹œ์ž‘ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

rest

mongod ์€(๋Š”) ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ๋•Œ __rest ํ™•์žฅ ์ง€์‹œ๋ฌธ์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

exec

mongod ์€(๋Š”) ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ๋•Œ __exec ํ™•์žฅ ์ง€์‹œ๋ฌธ์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ํ™•์žฅ ์ง€์‹œ์–ด๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ์‹œ: rest, exec). ๊ตฌ์„ฑ ํŒŒ์ผ์— --configExpand์— ์ง€์ •๋˜์ง€ ์•Š์€ ํ™•์žฅ ์ง€์‹œ๋ฌธ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด mongod ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

ํ™•์žฅ ์ง€์‹œ๋ฌธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ตฌ์„ฑ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์†Œ์Šค ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฐ’์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--verbose, -v

ํ‘œ์ค€ ์ถœ๋ ฅ ๋˜๋Š” ๋กœ๊ทธ ํŒŒ์ผ์— ๋ฐ˜ํ™˜๋˜๋Š” ๋‚ด๋ถ€ ๋ณด๊ณ ์˜ ์–‘์„ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. ์˜ต์…˜์„ ์—ฌ๋Ÿฌ ๋ฒˆ ํฌํ•จํ•˜์—ฌ -v ํ˜•์‹์œผ๋กœ ์ž์„ธํ•œ ์ •๋„๋ฅผ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค(์˜ˆ์‹œ: -vvvvv.

์ฐธ๊ณ 

๋ฒ„์ „ 4.2๋ถ€ํ„ฐ MongoDB๋Š” ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์— ๋””๋ฒ„๊ทธ ์ƒ์„ธ๋„ ์ˆ˜์ค€(1~5)์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ƒ์„ธ๋„ ์ˆ˜์ค€์ด 2์ธ ๊ฒฝ์šฐ MongoDB๋Š” D2์„(๋ฅผ) ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” MongoDB ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์— ๋””๋ฒ„๊ทธ ์ˆ˜์ค€์— D๋งŒ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

--quiet

์ถœ๋ ฅ๋Ÿ‰์„ ์ œํ•œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ์ž๋™ ๋ชจ๋“œ์—์„œ mongod๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™œ๋™์„ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค.

--port <port>

๊ธฐ๋ณธ๊ฐ’:

  • 27017 mongod๊ฐ€ ์ƒค๋“œ ๋ฉค๋ฒ„ ๋˜๋Š” config ์„œ๋ฒ„ ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ

  • 27018 mongod๊ฐ€ shard member์ธ ๊ฒฝ์šฐ

  • 27019 mongod๊ฐ€ config server member์ธ ๊ฒฝ์šฐ

MongoDB ์ธ์Šคํ„ด์Šค๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ์ˆ˜์‹ ์„ ๋Œ€๊ธฐํ•˜๋Š” TCP ํฌํŠธ์ž…๋‹ˆ๋‹ค.

--port ์˜ต์…˜์€ 0~65535์˜ ๊ฐ’ ๋ฒ”์œ„๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ํฌํŠธ๋ฅผ 0 ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์šด์˜ ์ฒด์ œ์—์„œ ํ• ๋‹นํ•œ ์ž„์˜์˜ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก mongod ์ด(๊ฐ€) ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

--bind_ip <hostnames|ipaddresses|Unix domain socket paths>

๊ธฐ๋ณธ๊ฐ’: localhost

mongod์—์„œ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ์ˆ˜์‹ ํ•ด์•ผ ํ•˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ/๋˜๋Š” IP ์ฃผ์†Œ ๋ฐ/๋˜๋Š” ์ „์ฒด Unix ๋„๋ฉ”์ธ ์†Œ์ผ“ ๊ฒฝ๋กœ ๋ชจ๋“  ์ธํ„ฐํŽ˜์ด์Šค์— mongod์„(๋ฅผ) ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ฃผ์†Œ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋ ค๋ฉด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๊ฐ’ ๋ชฉ๋ก์„ ์ž…๋ ฅํ•˜์„ธ์š”.

์˜ˆ์‹œ

localhost,/tmp/mongod.sock

IPv4์™€ IPv6 ์ฃผ์†Œ๋ฅผ ๋ชจ๋‘ ์ง€์ •ํ•˜๊ฑฐ๋‚˜, IPv4 ๋˜๋Š” IPv6 ์ฃผ์†Œ๋กœ ํ•ด๊ฒฐ๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ

localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513

์ฐธ๊ณ 

IPv6 ์ฃผ์†Œ ๋˜๋Š” IPv6 ์ฃผ์†Œ๋กœ ํ™•์ธ๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ --bind_ip๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ mongod๋ฅผ --ipv6์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผ IPv6 ์ง€์›์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --bind_ip์— IPv6 ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ด๋„ IPv6 ์ง€์›์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋งํฌ-๋กœ์ปฌ IPv6 ์ฃผ์†Œ(fe80::/10)๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ฃผ์†Œ์— ๊ตฌ์—ญ ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: fe80::<address>%<adapter-name>).

์˜ˆ์‹œ

localhost,fe80::a00:27ff:fee0:1fcf%enp0s3

์ค‘์š”

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

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

๊ฒฝ๊ณ 

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

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

๋ชจ๋“  IPv4 ์ฃผ์†Œ์— ๋ฐ”์ธ๋”ฉํ•˜๋ ค๋ฉด 0.0.0.0 ~์„ ์ž…๋ ฅํ•˜์„ธ์š”.

๋ชจ๋“  IPv4 ๋ฐ IPv6 ์ฃผ์†Œ์— ๋ฐ”์ธ๋”ฉํ•˜๋ ค๋ฉด::,0.0.0.0 ๋˜๋Š” ๋ณ„ํ‘œ "*"(ํŒŒ์ผ ์ด๋ฆ„ ํŒจํ„ด ํ™•์žฅ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„ํ‘œ๋ฅผ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์Œ)๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” net.bindIpAll ์„ค์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

  • --bind_ip๊ณผ --bind_ip_all์€ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค. ๋‘ ์˜ต์…˜์„ ๋ชจ๋‘ ์ง€์ •ํ•˜๋ฉด mongod์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ž‘์—…์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

  • ๋ช…๋ น์ค„ ์˜ต์…˜ --bind ๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ ์„ค์ • net.bindIp์„(๋ฅผ) ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

--bind_ip_all

์ง€์ •๋œ ๊ฒฝ์šฐ mongod ์ธ์Šคํ„ด์Šค๋Š” ๋ชจ๋“  IPv4 ์ฃผ์†Œ์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค. (์ฆ‰, 0.0.0.0). mongod(์ด)๊ฐ€ --ipv6(์œผ)๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ, --bind_ip_all๋„ ๋ชจ๋“  IPv6 ์ฃผ์†Œ์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค. (์ฆ‰, ::)

mongod(์€)๋Š” --ipv6(์œผ)๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ IPv6(์„)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. --bind_ip_all๋งŒ ์ง€์ •ํ•˜๋ฉด IPv6 ์ง€์›์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

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

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

๋˜๋Š” --bind_ip ์˜ต์…˜์„ ::,0.0.0.0 ๋˜๋Š” ๋ณ„ํ‘œ "*" ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํŒŒ์ผ ์ด๋ฆ„ ํŒจํ„ด ํ™•์žฅ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„ํ‘œ๋ฅผ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์Œ).

์ฐธ๊ณ 

--bind_ip๊ณผ --bind_ip_all์€ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๋‘˜ ๋‹ค ์ง€์ •ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

--clusterIpSourceAllowlist <string>

๋ฒ„์ „ 5.0์— ์ถ”๊ฐ€.

mongod๊ฐ€ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋‹ค๋ฅธ ๋ฉค๋ฒ„ ๋ฐ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์˜ ์ธ์ฆ ์š”์ฒญ์„ ๊ฒ€์ฆํ•˜๋Š” IP ์ฃผ์†Œ/CIDR(ํด๋ž˜์Šค ์—†๋Š” ๋„๋ฉ”์ธ ๊ฐ„ ๋ผ์šฐํŒ…) ๋ฒ”์œ„ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. mongod๋Š” ์›๋ž˜ IP๊ฐ€ ๋ชฉ๋ก์— ๋ช…์‹œ์ ์œผ๋กœ ์žˆ๊ฑฐ๋‚˜ ๋ชฉ๋ก์˜ CIDR ๋ฒ”์œ„์— ์†ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. IP ์ฃผ์†Œ๊ฐ€ ์—†์œผ๋ฉด ์„œ๋ฒ„๋Š” mongod ๋˜๋Š”mongos๋ฅผ ์ธ์ฆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--clusterIpSourceAllowlist๋Š” ์ธ์ฆ์—†์ด ์‹œ์ž‘๋œ mongod์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--clusterIpSourceAllowlist๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์—ฌ๋Ÿฌ ๊ฐœ์˜IPv4/6 ์ฃผ์†Œ ๋˜๋Š” ํด๋ž˜์Šค ์—†๋Š” ๋„๋ฉ”์ธ ๊ฐ„ ๋ผ์šฐํŒ…(CIDR) ๋ฒ”์œ„๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

mongod --clusterIpSourceAllowlist 192.0.2.0/24,127.0.0.1,::1

์ค‘์š”

--clusterIpSourceAllowlist์— ๋ฐฐํฌ ์‹œ ๊ฐ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„ ๋˜๋Š” mongos์˜ IP ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” IP ์ฃผ์†Œ ๋˜๋Š” CIDR ๋ฒ”์œ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ์ •์ƒ์ ์ธ ํ†ต์‹ ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

--ipv6

IPv6 ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. mongod์€ ๊ธฐ๋ณธ์ ์œผ๋กœ IPv6 ์ง€์›์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

--ipv6 ์„ค์ •์€ mongod๊ฐ€ ๋กœ์ปฌ IPv6 ์ฃผ์†Œ ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ˆ˜์‹ ํ•˜๋„๋ก ์ง€์‹œ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. IPv6 ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ˆ˜์‹ ํ•˜๋„๋ก mongod๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • IPv6 ์ฃผ์†Œ๋กœ ํ™•์ธ๋˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ IPv6 ์ฃผ์†Œ ๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ --bind_ip๋ฅผ ๊ตฌ์„ฑ ๋˜๋Š”

  • --bind_ip_all์„ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

--listenBacklog <number>

๊ธฐ๋ณธ๊ฐ’: ๋Œ€์ƒ ์‹œ์Šคํ…œ SOMAXCONN ์ƒ์ˆ˜

์ˆ˜์‹  ๋Œ€๊ธฐ์—ด์— ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋กœ์ปฌ ์‹œ์Šคํ…œ ์„ค๋ช…์„œ๋ฅผ ํ†ตํ•ด ์ œํ•œ ์‚ฌํ•ญ๊ณผ ๊ตฌ์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด์„ธ์š”.

์ค‘์š”

์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ 1๊ณผ ๋กœ์ปฌ ์‹œ์Šคํ…œ SOMAXCONN ์ƒ์ˆ˜ ์‚ฌ์ด์— ์ง€์ •ํ•˜์„ธ์š”.

listenBacklog ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ ์ปดํŒŒ์ผ ํƒ€์ž„์— ๋Œ€์ƒ ์‹œ์Šคํ…œ SOMAXCONN ์ƒ์ˆ˜๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. SOMAXCONN์€(๋Š”) ์ฒญ์ทจ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ๋Œ€ํ•œ backlog ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ๋ฌธ์„œํ™”๋œ ์ตœ๋Œ€ ์œ ํšจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ผ๋ถ€ ์‹œ์Šคํ…œ์€ SOMAXCONN ์ƒ์ง•์ ์œผ๋กœ ํ•ด์„ํ•˜๊ณ  ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์€ ์ˆ˜์น˜๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ ์šฉ๋˜๋Š” ์‹ค์ œ ์ˆ˜์‹  ๋ฐฑ๋กœ๊ทธ๋Š” SOMAXCONN ์ƒ์ˆ˜ ๋˜๋Š” --listenBacklog์— ๋Œ€ํ•œ ์ธ์ˆ˜์˜ ์ˆซ์ž ํ•ด์„๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฉฐ Linux์˜ net.core.somaxconn๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ ์„ค์ •์— ์˜ํ•ด ์ œ์•ฝ์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ ์‹œ์Šคํ…œ์˜ SOMAXCONN ์ƒ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•˜๋Š” listenBacklog ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์€ ํ‘œ์ค€์ƒ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ž…๋‹ˆ๋‹ค. ๊ฐ’์ด ๋†’์œผ๋ฉด ์ž๋™์œผ๋กœ ์ •์ˆ˜๊ฐ€ ์ž˜๋ฆฌ๊ฑฐ๋‚˜, ๋ฌด์‹œ๋˜๊ฑฐ๋‚˜, ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜, ๊ธฐํƒ€ ๋ถ€์ •์ ์ธ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ ์‹œ์Šคํ…œ์ด SOMAXCONN ์ƒ์ˆ˜๋ณด๋‹ค ๋†’์€ ๋ฐฑ๋กœ๊ทธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๊ฒฝํ—˜์ ์œผ๋กœ ์•Œ๋ ค์ง„ ์—ฐ๊ฒฐ ์ŠคํŒŒ์ดํฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์›Œํฌ๋กœ๋“œ๊ฐ€ ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ listenBacklog ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋” ๋†’์€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฐฑ์˜คํ”„ ์ƒํƒœ๋กœ ๊ฐ•์ œ ์ „ํ™˜๋˜๋Š” ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ์ค„์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ด€์ฐฐํ•˜๋Š” ์ž‘์—… ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--maxConns <number>

mongod ์ˆ˜๋ฝํ•˜๋Š” ์ตœ๋Œ€ ๋™์‹œ ์—ฐ๊ฒฐ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ์šด์˜ ์ฒด์ œ์— ๊ตฌ์„ฑ๋œ ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ถ”์  ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ๋†’์€ ๊ฒฝ์šฐ ์•„๋ฌด๋Ÿฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์— ๋„ˆ๋ฌด ๋‚ฎ์€ ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ๋งˆ์„ธ์š”. ๊ฐ’์ด ๋„ˆ๋ฌด ๋‚ฎ์œผ๋ฉด ์ •์ƒ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘๋™ ์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

--logpath <path>

๋ชจ๋“  ์ง„๋‹จ ๋กœ๊น… ์ •๋ณด๋ฅผ ํ‘œ์ค€ ์ถœ๋ ฅ์ด๋‚˜ ํ˜ธ์ŠคํŠธ์˜ ์‹œ์Šคํ…œ ์‹œ์Šคํ…œ ๋กœ๊ทธ ์‹œ์Šคํ…œ์ด ์•„๋‹Œ ๋กœ๊ทธ ํŒŒ์ผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. MongoDB๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๊ฒฝ๋กœ์— ๋กœ๊ทธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ MongoDB๋Š” ๊ธฐ์กด ๋กœ๊ทธ ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š๊ณ  ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  ๋กœ๊ทธ ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด --logappend ์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

--syslog

๋ชจ๋“  ๋กœ๊น… ์ถœ๋ ฅ์„ ํ‘œ์ค€ ์ถœ๋ ฅ์ด๋‚˜ ๋กœ๊ทธ ํŒŒ์ผ(--logpath)์ด ์•„๋‹Œ ํ˜ธ์ŠคํŠธ์˜ syslog ์‹œ์Šคํ…œ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

--syslog ์˜ต์…˜์€ Windows์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

syslog ๋ฐ๋ชฌ์€ MongoDB๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰ํ•  ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋กํ•  ๋•Œ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋กœ๊ทธ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠนํžˆ ์‹œ์Šคํ…œ์— ๋ถ€ํ•˜๊ฐ€ ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ •ํ™•ํ•œ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด --logpath ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

MongoDB๋Š” syslog๋กœ ๋ณด๋‚ด๋Š” ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์— ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

... ACCESS [repl writer worker 5] Unsupported modification to roles collection ...
--syslogFacility <string>

๊ธฐ๋ณธ๊ฐ’: ์‚ฌ์šฉ์ž

์‹œ์Šคํ…œ ๋กœ๊ทธ์— ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋กํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ ์ˆ˜์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •ํ•œ ๊ฐ’์€ ์šด์˜ ์ฒด์ œ์˜ ์‹œ์Šคํ…œ ๋กœ๊ทธ ๊ตฌํ˜„์—์„œ ์ง€์›๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด --syslog ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--logappend

mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋˜๋ฉด ๊ธฐ์กด ๋กœ๊ทธ ํŒŒ์ผ ๋์— ์ƒˆ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด mongod๊ฐ€ ๊ธฐ์กด ๋กœ๊ทธ๋ฅผ ๋ฐฑ์—…ํ•˜๊ณ  ์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

--logRotate <string>

๊ธฐ๋ณธ๊ฐ’: ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ

์„œ๋ฒ„ ๋กœ๊ทธ ๋ฐ/๋˜๋Š” ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ํšŒ์ „ํ•  ๋•Œ logRotate ๋ช…๋ น์˜ ๋™์ž‘์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. 3} ๋˜๋Š” rename reopen๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค:

  • rename์€ ๋กœ๊ทธ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  • reopen์ด(๊ฐ€) ์ผ๋ฐ˜์ ์ธ Linux/Unix ๋กœ๊ทธ ์ˆœํ™˜ ๋™์ž‘์— ๋”ฐ๋ผ ๋กœ๊ทธ ํŒŒ์ผ์„ ๋‹ซ์•˜๋‹ค๊ฐ€ ๋‹ค์‹œ ์—ฝ๋‹ˆ๋‹ค. ๋กœ๊ทธ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Linux/Unix logrotate ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ reopen์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    reopen(์„)๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ --logappend๋„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--timeStampFormat <string>

๊ธฐ๋ณธ๊ฐ’: iso8601-local

๋กœ๊ทธ ๋ฉ”์‹œ์ง€์˜ ํƒ€์ž„์Šคํƒฌํ”„์— ์‚ฌ์šฉ๋˜๋Š” ์‹œ๊ฐ„ ํ˜•์‹์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•˜์„ธ์š”.

๊ฐ’
์„ค๋ช…

iso8601-utc

ISO-8601 ํ˜•์‹์˜ ํ˜‘์ • ์„ธ๊ณ„์‹œ(UTC)๋กœ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Epoch ์‹œ์ž‘ ์‹œ์ ์˜ ๋‰ด์š• ํƒ€์ž„์Šคํƒฌํ”„ ์˜ˆ์‹œ: 1970-01-01T00:00:00.000Z

iso8601-local

ISO-8601 ํ˜•์‹์œผ๋กœ ํ˜„์ง€ ์‹œ๊ฐ„์„ ํƒ€์ž„์Šคํƒฌํ”„์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Epoch ์‹œ์ž‘ ์‹œ์ ์˜ ๋‰ด์š• ํƒ€์ž„์Šคํƒฌํ”„ ์˜ˆ์‹œ: 1969-12-31T19:00:00.000-05:00

์ฐธ๊ณ 

--timeStampFormat์€ ๋” ์ด์ƒ ctime์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ctime ํ˜•์‹ ๋‚ ์งœ์˜ ์˜ˆ์‹œ๋Š” Wed Dec 31 18:17:54.811์ž…๋‹ˆ๋‹ค.

--traceExceptions

๋‚ด๋ถ€ ์ง„๋‹จ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.

--pidfilepath <path>

mongod ํ”„๋กœ์„ธ์Šค์˜ ํ”„๋กœ์„ธ์Šค ID(PID)๋ฅผ ์ €์žฅํ•  ํŒŒ์ผ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. mongod ๋˜๋Š” mongos ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” ์ด ๊ฒฝ๋กœ์— ์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --pidfilepath ์˜ต์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ์„ธ์Šค์—์„œ PID ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ --fork ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

Linux

Linux์—์„œ PID ํŒŒ์ผ ๊ด€๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐํฌํŒ์˜ init ์‹œ์Šคํ…œ์—์„œ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ /etc/init.d ๋””๋ ‰ํ† ๋ฆฌ์˜ ์„œ๋น„์Šค ํŒŒ์ผ ๋˜๋Š” systemctl๋กœ ๋“ฑ๋ก๋œ ์‹œ์Šคํ…œ ๋‹จ์œ„ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ init ์‹œ์Šคํ…œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ --pidfilepath ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šด์˜ ์ฒด์ œ์˜ ํ•ด๋‹น ์„ค์น˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

macOS

macOS์—์„œ PID ํŒŒ์ผ ๊ด€๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ brew์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. macOS ์‹œ์Šคํ…œ์—์„œ brew๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ --pidfilepath ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•œ ์„ค์น˜ ์•ˆ๋‚ด์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

--keyFile <file>

MongoDB ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ ์—์„œ ์„œ๋กœ๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ณต์œ  ์•”ํ˜ธ๋ฅผ ์ €์žฅํ•˜๋Š” ํ‚ค ํŒŒ์ผ ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --keyFile ์€ --auth ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž์ฒด ๊ด€๋ฆฌ ๋‚ด๋ถ€/๋ฉค๋ฒ„์‹ญ ์ธ์ฆ ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

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

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

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

--setParameter <options>

์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ฐฐํฌ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ MongoDB Server ๋งค๊ฐœ ๋ณ€์ˆ˜ ์— ์„ค๋ช…๋œ MongoDB ๋งค๊ฐœ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ setParameter ํ•„๋“œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--nounixsocket

์œ ๋‹‰์Šค ๋„๋ฉ”์ธ ์†Œ์ผ“์—์„œ ์ˆ˜์‹ ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. --nounixsocket์€ ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ฐธ์ด ์•„๋‹Œ ํ•œ mongod ํ”„๋กœ์„ธ์Šค๋Š” ํ•ญ์ƒ UNIX ์†Œ์ผ“์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.

  • --nounixsocket ์ด(๊ฐ€) ์„ค์ •ํ•˜๋‹ค.

  • net.bindIp ์ด(๊ฐ€) ์„ค์ •ํ•˜๋‹ค ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  • net.bindIp ์€(๋Š”) localhost ๋˜๋Š” ๊ด€๋ จ IP ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ณต์‹ .deb์—์„œ mongod๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ .rpm ํŒจํ‚ค์ง€๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ bind_ip ๊ตฌ์„ฑ์„ 127.0.0.1์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

--unixSocketPrefix <path>

๊ธฐ๋ณธ๊ฐ’/tmp

UNIX ์†Œ์ผ“์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. --unixSocketPrefix๋Š” ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์— ๊ฐ’์ด ์—†์œผ๋ฉด mongod ํ”„๋กœ์„ธ์Šค๊ฐ€ /tmp์„(๋ฅผ) ์ ‘๋‘์‚ฌ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์ผ“์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ํ•œ MongoDB๋Š” UNIX ์†Œ์ผ“์—์„œ ์ƒ์„ฑํ•˜๊ณ  ์ˆ˜์‹  ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค.

  • net.unixDomainSocket.enabled์™€ false ๋™์ผ

  • --nounixsocket ์ด(๊ฐ€) ์„ค์ •ํ•˜๋‹ค.

  • net.bindIp ์ด(๊ฐ€) ์„ค์ •ํ•˜๋‹ค ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  • net.bindIp ์€(๋Š”) localhost ๋˜๋Š” ๊ด€๋ จ IP ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--filePermissions <path>

๊ธฐ๋ณธ๊ฐ’: 0700

UNIX ๋„๋ฉ”์ธ ์†Œ์ผ“ ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

--filePermissions์€ ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

--fork

๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ๋ชฌ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. --fork ์˜ต์…˜์€ Windows์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ mongod์€(๋Š”) ๋ฐ๋ชฌ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. --fork ๋˜๋Š” ๋ฐ๋ชฌํ™”๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ œ์–ด ํ”„๋กœ์„ธ์Šค(์˜ˆ: upstart ๋˜๋Š” systemd)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mongod(์„)๋ฅผ ๋ฐ๋ชฌ์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

--fork๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mongod์— ๋Œ€ํ•œ ๋กœ๊ทธ ์ถœ๋ ฅ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

--auth

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค์™€ ์šด์˜์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ์ด ํ™œ์„ฑํ™”๋˜๋ฉด MongoDB๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์•ก์„ธ์Šค๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์ฆ์„ ๊ฑฐ์น˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด mongosh ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์—†์œผ๋ฉด ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๊นŒ์ง€ localhost ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--noauth

์ธ์ฆ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ณ , ์ถ”ํ›„ ํ˜ธํ™˜์„ฑ๊ณผ ๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

--transitionToAuth

mongod ๋ฐฐํฌ์˜ ๋‹ค๋ฅธ mongod ๋ฐ mongos ์ธ์Šคํ„ด์Šค์™€์˜ ์ธ์ฆ ๋ฐ ๋น„์ธ์ฆ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฝํ•˜๊ณ  ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ์—†๋Š” ๊ตฌ์„ฑ์—์„œ ๋‚ด๋ถ€ ์ธ์ฆ์œผ๋กœ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋˜๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋กค๋ง ์ „ํ™˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. --keyFile๊ณผ ๊ฐ™์€ ๋‚ด๋ถ€ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๋ถ€ ์ธ์ฆ์— ํ‚คํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ mongod ์€(๋Š”) ์ผ์น˜ํ•˜๋Š” ํ‚คํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ์˜ ๋ชจ๋“  mongod ๋˜๋Š” mongos์™€์˜ ์ธ์ฆ๋œ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด mongod์€(๋Š”) ๋Œ€์‹  ์ธ์ฆ๋˜์ง€ ์•Š์€ ์—ฐ๊ฒฐ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

--transitionToAuth์™€ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” mongod๋Š” ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์•ก์„ธ์Šค ์ œ์–ด ๊ฒ€์‚ฌ ์—†์ด ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜์—ฌ ์ฝ๊ธฐ, ์“ฐ๊ธฐ ๋ฐ ๊ด€๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋‚ด๋ถ€ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ --transitionToAuth ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‹คํ–‰ ์ค‘์ธ mongod๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --transitionToAuth์—†์ด mongod๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ ์ ˆํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mongod์— ์—ฐ๊ฒฐํ•˜๋„๋ก ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

--sysinfo

์ง„๋‹จ ์‹œ์Šคํ…œ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•œ ํ›„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต๋˜๋Š” ์ •๋ณด์—๋Š” ํŽ˜์ด์ง€ ํฌ๊ธฐ, ๋ฌผ๋ฆฌ์  ํŽ˜์ด์ง€ ์ˆ˜, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฌผ๋ฆฌ์  ํŽ˜์ด์ง€ ์ˆ˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

--noscripting

์Šคํฌ๋ฆฝํŒ… ์—”์ง„์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

--notablescan

collection ์Šค์บ”์ด ํ•„์š”ํ•œ ์ž‘์—…์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์ •๋ณด๋Š” notablescan์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

--shutdown

--shutdown ์˜ต์…˜์€ mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ๊น”๋”ํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์œผ๋กœ mongod๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋Š” --dbpath ์˜ต์…˜์„ ์ง์ ‘ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ตฌ์„ฑ ํŒŒ์ผ๊ณผ --config ์˜ต์…˜์„ ํ†ตํ•ด ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--shutdown ์˜ต์…˜์€ Linux ์‹œ์Šคํ…œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข…๋ฃŒํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ mongod ํ”„๋กœ์„ธ์Šค ์ค‘์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

--redactClientLogData

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--redactClientLogData๋กœ ์‹คํ–‰๋˜๋Š” mongod๋Š” ๋กœ๊น…ํ•˜๊ธฐ ์ „์— ์ง€์ •๋œ ๋กœ๊ทธ ์ด๋ฒคํŠธ์™€ ํ•จ๊ป˜ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด mongod๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ์ž ์žฌ์ ์œผ๋กœ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง„๋‹จ ๋กœ๊ทธ์— ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋˜๋Š” ์ž‘์—… ์ฝ”๋“œ, ์ค„ ๋ฒˆํ˜ธ, ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„๊ณผ ๊ฐ™์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ์—ฌ์ „ํžˆ ๋กœ๊ทธ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

--redactClientLogData๋ฅผ ๋ฏธ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ๋ฐ TLS/SSL(์ „์†ก ์•”ํ˜ธํ™”)๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๊ทœ์ œ ์š”๊ฑด์„ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, MongoDB ๋ฐฐํฌ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ปฌ๋ ‰์…˜์— PII(๊ฐœ์ธ ์‹๋ณ„ ์ •๋ณด)๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. mongod๋Š” CRUD ์ž‘์—…, ์ƒค๋”ฉ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋“ฑ๊ณผ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. mongod๊ฐ€ ์ด๋Ÿฌํ•œ ๋กœ๊น… ์ž‘์—…์˜ ์ผ๋ถ€๋กœ PII๋ฅผ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --redactClientLogData์™€ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” mongod๋Š” ๋กœ๊ทธ์— ์ถœ๋ ฅ๋˜๊ธฐ ์ „์— ์ด๋Ÿฌํ•œ ์ด๋ฒคํŠธ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ PII๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

--redactClientLogData์™€ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” mongod์— ๋Œ€ํ•œ ์ง„๋‹จ์€ ๋กœ๊ทธ ์ด๋ฒคํŠธ์™€ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๋” ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --redactClientLogData๊ฐ€ ๋กœ๊ทธ ์ถœ๋ ฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์— ๋Œ€ํ•œ ์˜ˆ์‹œ๋Š” ํ”„๋กœ์„ธ์Šค ๋กœ๊น… ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์‹คํ–‰ ์ค‘์ธ mongod์—์„œ setParameter์„(๋ฅผ) redactClientLogData ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์„ค์ •์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

--networkMessageCompressors <string>

๊ธฐ๋ณธ๊ฐ’: snappy,zstd,zlib

์ด mongod ์ธ์Šคํ„ด์Šค์™€ ๋‹ค์Œ ๊ฐ„์˜ ํ†ต์‹ ์— ์‚ฌ์šฉํ•  ๊ธฐ๋ณธ ์••์ถ•๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ณต์ œ๋ณธ ์„ธํŠธ๋‚˜ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ ๋ฐฐํฌ์„œ๋ฒ„์˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์›

  • mongosh

  • OP_COMPRESSED ๋ฉ”์‹œ์ง€ ํ˜•์‹์„ ์ง€์›ํ•˜๋Š” ๋“œ๋ผ์ด๋ฒ„์ž…๋‹ˆ๋‹ค.

MongoDB๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์••์ถ• ์˜ต์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

mongod ๋ฐ mongos ์ธ์Šคํ„ด์Šค ๋ชจ๋‘ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆœ์„œ๋Œ€๋กœ snappy,zstd,zlib ์••์ถ•๊ธฐ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์••์ถ•์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ๊ฐ’์„ disabled๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์–‘์ชฝ ๋‹น์‚ฌ์ž๊ฐ€ ๋„คํŠธ์›Œํฌ ์••์ถ•์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฉ”์‹œ์ง€๊ฐ€ ์••์ถ•๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์–‘ ๋‹น์‚ฌ์ž ๊ฐ„์˜ ๋ฉ”์‹œ์ง€๋Š” ์••์ถ•๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์••์ถ•๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ํ†ต์‹  ๊ฐœ์‹œ์ž๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์••์ถ•๊ธฐ๋ฅผ ๋‚˜์—ดํ•˜๋Š” ์ˆœ์„œ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด mongosh๊ฐ€ ๋‹ค์Œ ๋„คํŠธ์›Œํฌ ์••์ถ•๊ธฐ zlib,snappy๋ฅผ ์ง€์ •ํ•˜๊ณ  mongod๊ฐ€ snappy,zlib๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ mongosh์™€ mongod ์‚ฌ์ด์˜ ๋ฉ”์‹œ์ง€๋Š” zlib๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์–‘ ๋‹น์‚ฌ์ž๊ฐ€ ๊ณตํ†ต ์••์ถ•๊ธฐ๋ฅผ ์ ์–ด๋„ ํ•˜๋‚˜ ์ด์ƒ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ๋‹น์‚ฌ์ž ๊ฐ„์˜ ๋ฉ”์‹œ์ง€๋Š” ์••์ถ•๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, mongosh๊ฐ€ ๋„คํŠธ์›Œํฌ ์••์ถ•๊ธฐ zlib๋ฅผ ์ง€์ •ํ•˜๊ณ  mongod๊ฐ€ snappy๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ mongosh์™€ mongod ์‚ฌ์ด์˜ ๋ฉ”์‹œ์ง€๋Š” ์••์ถ•๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--timeZoneInfo <path>

์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋กœ๋“œํ•  ์ „์ฒด ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ MongoDB๋Š” ๋‚ด์žฅ๋œ ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Linux ๋ฐ macOS ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ๊ตฌ์„ฑ ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์—ญ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฒฝ๋กœ๋ฅผ /usr/share/zoneinfo๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด์žฅ๋œ ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” Olson/IANA ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณต์‚ฌ๋ณธ์ž…๋‹ˆ๋‹ค. MongoDB ์ถœ์‹œ์™€ ํ•จ๊ป˜ ์—…๋ฐ์ดํŠธ๋˜์ง€๋งŒ ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถœ์‹œ ์ฃผ๊ธฐ๋Š” MongoDB ์ถœ์‹œ ์ฃผ๊ธฐ์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ตœ์‹  ์ถœ์‹œ๋Š” ๋‹ค์šด๋กœ๋“œ ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

wget https://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip
unzip timezonedb-latest.zip
mongod --timeZoneInfo timezonedb-2017b/

๊ฒฝ๊ณ 

MongoDB๋Š” ํƒ€์‚ฌ timelib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๊ฐ„๋Œ€ ๊ฐ„์˜ ์ •ํ™•ํ•œ ๋ณ€ํ™˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ์ด์ „ ๋ฒ„์ „์˜ MongoDB์—์„œ timelib์˜ ์‹œ๊ฐ„๋Œ€ ๋ณ€ํ™˜์ด ์ •ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MongoDB 5.0 ์ด์ „ ๋ฒ„์ „์—์„œ ํ‘œ์ค€ ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ช…์‹œ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ํ‘œ์ค€ ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  timeZoneInfo ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

--outputConfig

YAML๋กœ ํ˜•์‹์ด ์ง€์ •๋œ mongod ์ธ์Šคํ„ด์Šค์˜ ๊ตฌ์„ฑ ์˜ต์…˜์„ stdout ์ถœ๋ ฅํ•˜๊ณ  mongod ์ธ์Šคํ„ด์Šค ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ฐฐํฌ์„œ๋ฒ„์— ์™ธ๋ถ€ ์†Œ์Šค ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์„ฑ ์˜ต์…˜์˜ ๊ฒฝ์šฐ --outputConfig ๋Š” ํ•ด๋‹น ์˜ต์…˜์— ๋Œ€ํ•ด ํ™•์ธ๋œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์—ฌ๊ธฐ์—๋Š” ์ด์ „์— ์™ธ๋ถ€ ์†Œ์Šค๋ฅผ ํ†ตํ•ด ๋‚œ๋…ํ™”๋œ ๋ชจ๋“  ๊ตฌ์„ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ์•”ํ˜ธ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™œ์šฉ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ 

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

์ž์„ธํ•œ ๋‚ด์šฉ์€ LDAP ์‚ฌ์šฉ ์ค‘๋‹จ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--ldapServers <host1>:<port>,<host2>:<port>,...,<hostN>:<port>

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongod ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์„ ๊ฒฐ์ •ํ•˜๋Š” LDAP ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ์ง€์ •๋œ LDAP ์„œ๋ฒ„์— ๋ณต์ œ๋œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ ๋ณต์ œ๋œ ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ์™€ ํฌํŠธ๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

LDAP ์ธํ”„๋ผ๊ฐ€ ์—ฌ๋Ÿฌ LDAP ์„œ๋ฒ„์— ๊ฑธ์ณ LDAP ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ถ„ํ• ํ•˜๋Š” ๊ฒฝ์šฐ, ํ•˜๋‚˜์˜ LDAP ์„œ๋ฒ„ ๋˜๋Š” ํ•ด๋‹น ์„œ๋ฒ„์˜ ๋ณต์ œ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ --ldapServers(์œผ)๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. MongoDB๋Š” RFC 4511 4.1.10์— ์ •์˜๋œ ๋Œ€๋กœ ๋‹ค์Œ LDAP ํšŒ๋ถ€๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ธํ”„๋ผ์˜ ๋ชจ๋“  LDAP ์„œ๋ฒ„๋ฅผ ๋‚˜์—ดํ•˜๋Š” ๋ฐ --ldapServers(์„)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.

์ด ์„ค์ •์€ setParameter์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ mongod์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด mongod ์€(๋Š”) LDAP ์ธ์ฆ ๋˜๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

--ldapValidateLDAPServerConfig <boolean>

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹œ์ž‘์˜ ์ผ๋ถ€๋กœ LDAP server(s)์˜ ๊ฐ€์šฉ์„ฑ์„ ํ™•์ธํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

  • true์ธ ๊ฒฝ์šฐ mongod ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ€์šฉ์„ฑ ํ™•์ธ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  LDAP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ณ„์† ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

  • false์ธ ๊ฒฝ์šฐ mongod ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ€์šฉ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, LDAP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

--ldapQueryUser <string>

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

LDAP ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ mongod์ด ๋ฐ”์ธ๋”ฉ๋˜๋Š” ID์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

--ldapQueryUser์™€ --ldapQueryPassword๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด mongod์€ LDAP ์„œ๋ฒ„์— ๋ฐ”์ธ๋”ฉ์„ ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์„ค์ •์€ setParameter์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ mongod์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

Windows MongoDB ๋ฐฐํฌ๋Š” --ldapBindWithOSDefaults๋ฅผ --ldapQueryUser ๋ฐ --ldapQueryPassword ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --ldapQueryUser์™€ --ldapBindWithOSDefaults๋ฅผ ๋™์‹œ์— ์ง€์ •ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

--ldapQueryPassword <string | array>

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--ldapQueryUser ์‚ฌ์šฉ ์‹œ LDAP ์„œ๋ฒ„์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. --ldapQueryPassword์™€ --ldapQueryUser๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด mongod๋Š” LDAP ์„œ๋ฒ„์— ๋ฐ”์ธ๋”ฉ์„ ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

setParameter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ mongod์—์„œ ์ด ์„ค์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ldapQueryPassword setParameter ๋ช…๋ น์€ string ๋˜๋Š” string ๋ฐฐ์—ด์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ldapQueryPassword ๋ฐฐ์—ด์— ์„ค์ •ํ•˜๋ฉด, MongoDB๋Š” ์„ฑ๊ณตํ•  ๋•Œ๊นŒ์ง€ ๊ฐ ์•”ํ˜ธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์šดํƒ€์ž„ ์—†์ด LDAP ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋กค์˜ค๋ฒ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

Windows MongoDB ๋ฐฐํฌ๋Š” --ldapBindWithOSDefaults๋ฅผ --ldapQueryUser ๋ฐ --ldapQueryPassword ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --ldapQueryPassword์™€ --ldapBindWithOSDefaults๋ฅผ ๋™์‹œ์— ์ง€์ •ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

--ldapBindWithOSDefaults <bool>

๊ธฐ๋ณธ๊ฐ’: false

Windows ํ”Œ๋žซํผ์šฉ MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

LDAP ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ๋•Œ mongod์ด(๊ฐ€) Windows ๋กœ๊ทธ์ธ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•˜๊ฑฐ๋‚˜ ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

--ldapBindWithOSDefaults๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ --ldapQueryUser ๋ฐ --ldapQueryPassword๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

--ldapBindMethod <string>

๊ธฐ๋ณธ๊ฐ’: ๋‹จ์ˆœ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongod๊ฐ€ LDAP ์„œ๋ฒ„์— ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. --ldapQueryUser ๋ฐ --ldapQueryPassword๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LDAP ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

--ldapBindMethod๋Š” ๋‹ค์Œ ๊ฐ’์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • simple - mongod์€(๋Š”) ๊ฐ„๋‹จํ•œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • sasl - mongod์€(๋Š”) ์ธ์ฆ์— SASL ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

sasl๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ --ldapBindSaslMechanisms๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. mongod๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ DIGEST-MD5 ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--ldapBindSaslMechanisms <string>

๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค: DIGEST-MD5

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ mongod์ด(๊ฐ€) LDAP ์„œ๋ฒ„์— ์ธ์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. mongod ๋ฐ LDAP ์„œ๋ฒ„๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋™์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. mongod์€(๋Š”) ๋Ÿฐํƒ€์ž„ ์‹œ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์— ์„ค์น˜๋œ ๋ชจ๋“  SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋™์ ์œผ๋กœ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

mongod ํ˜ธ์ŠคํŠธ์™€ ์›๊ฒฉ LDAP ์„œ๋ฒ„ ํ˜ธ์ŠคํŠธ ๋‘˜ ๋‹ค์—์„œ ์„ ํƒํ•œ SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์ ํ•ฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠน์ • SASL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ง€์นจ์€ ๊ฐ SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๊ด€๋ จ๋œ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์—์„œ Kerberos ์ธ์ฆ ๊ณผ ํ•จ๊ป˜ GSSAPI SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ mongod ํ˜ธ์ŠคํŒ…ํ•˜๋‹ค ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Linux
  • KRB5_CLIENT_KTNAME ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์˜ ํด๋ผ์ด์–ธํŠธ Linux ํ‚คํƒญ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค. Kerberos ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Kerberos ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ํด๋ผ์ด์–ธํŠธ ํ‚ค ํƒญ์—๋Š” LDAP ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  LDAP ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•  mongod์˜ ์‚ฌ์šฉ์ž ์ฃผ์ฒด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Windows
ํ™œ์„ฑ ๋””๋ ‰ํ† ๋ฆฌ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์— ๋กœ๊ทธ์ธํ•  ๋•Œ Windows Kerberos ๊ตฌ์„ฑ์ด ์ž๋™์œผ๋กœ ํ‹ฐ์ผ“ ๋ถ€์—ฌ ํ‹ฐ์ผ“์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. mongod๊ฐ€ Active Directory ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ƒ์„ฑ๋œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด --ldapBindWithOSDefaults๋ฅผ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด --ldapBindMethod๋ฅผ sasl๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์ „์ฒด ๋ชฉ๋ก์€ IANA ๋ชฉ๋ก์„ ์ฐธ์กฐํ•˜์„ธ์š”. ํ•ด๋‹น ์„œ๋น„์Šค์™€ ํ˜ธํ™˜๋˜๋Š” SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ™•์ธํ•˜๋ ค๋ฉด ํ•ด๋‹น LDAP ๋˜๋Š” Active Directory ์„œ๋น„์Šค์˜ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

MongoDB๋Š” SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ถœ์ฒ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋˜ํ•œ, MongoDB ์„ค๋ช…์„œ๋Š” ํŠน์ • SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์„ค์น˜๋‚˜ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ์ ˆ๋Œ€์ ์ธ ์ถœ์ฒ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์„ค๋ช…์„œ์™€ ์ง€์›์€ SASL ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณต๊ธ‰์—…์ฒด๋‚˜ ์†Œ์œ ์ž์—๊ฒŒ ์š”์ฒญํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

SASL์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

--ldapTransportSecurity <string>

๊ธฐ๋ณธ๊ฐ’: tls

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ mongod์€ LDAP ์„œ๋ฒ„์— ๋Œ€ํ•œ TLS/SSL ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Linux ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ /etc/openldap/ldap.conf ํŒŒ์ผ์—์„œ ์ ์ ˆํ•œ TLS ์˜ต์…˜์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ libldap ์ข…์†์„ฑ์„ ํ†ตํ•ด MongoDB Enterprise ์„ค์น˜์˜ ์ผ๋ถ€๋กœ ์ด ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ldap.conf OpenLDAP ์„ค๋ช…์„œ์—์„œ TLS Options์— ๊ด€ํ•œ ์„ค๋ช…์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Windows ๋ฐฐํฌ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ LDAP ์„œ๋ฒ„ CA ์ธ์ฆ์„œ๋ฅผ Windows ์ธ์ฆ์„œ ๊ด€๋ฆฌ ๋„๊ตฌ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.๋„๊ตฌ์˜ ์ •ํ™•ํ•œ ์ด๋ฆ„๊ณผ ๊ธฐ๋Šฅ์€ ์šด์˜ ์ฒด์ œ์˜ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ธ์ฆ์„œ ๊ด€๋ฆฌ์— ๊ด€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” Windows ๋ฒ„์ „๋ณ„ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

mongod์™€ LDAP ์„œ๋ฒ„ ๊ฐ„์˜ TLS/SSL์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด --ldapTransportSecurity๋ฅผ none์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

--ldapTransportSecurity๋ฅผ none์œผ๋กœ ์„ค์ •ํ•˜๋ฉด mongod์™€ LDAP ์„œ๋ฒ„ ๊ฐ„์— ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์ •๋ณด ๋ฐ ์ž๊ฒฉ ์ฆ๋ช…์ด ์ „์†ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--ldapTimeoutMS <int>

๊ธฐ๋ณธ๊ฐ’: 10000

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

LDAP ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ์‘๋‹ตํ•  ๋•Œ๊นŒ์ง€ mongod์ด(๊ฐ€) ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ) ์ž…๋‹ˆ๋‹ค.

--ldapTimeoutMS ๊ฐ’์„ ๋Š˜๋ฆฌ๋ฉด ์‹คํŒจ์˜ ์›์ธ์ด ์—ฐ๊ฒฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ์ธ ๊ฒฝ์šฐ MongoDB Server์™€ LDAP ์„œ๋ฒ„ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์‹คํŒจ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --ldapTimeoutMS ๊ฐ’์„ ์ค„์ด๋ฉด MongoDB๊ฐ€ LDAP ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

์ด ์„ค์ •์€ setParameter์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ mongod์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--ldapRetryCount <int>

๋ฒ„์ „ 6.1์— ์ถ”๊ฐ€.

๊ธฐ๋ณธ๊ฐ’: 0

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜ ํ›„ ์„œ๋ฒ„ LDAP ๊ด€๋ฆฌ์ž๊ฐ€ ์ž‘์—…์„ ๋‹ค์‹œ ์‹œ๋„ํ•œ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.

--ldapUserToDNMapping <string>

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์ฆ์„ ์œ„ํ•ด mongod์— ์ œ๊ณต๋œ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ LDAP DN(๊ณ ์œ  ์ด๋ฆ„)์— ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” --ldapUserToDNMapping์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ LDAP DN์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž๊ฐ€ ์™„์ „ํ•œ LDAP DN์ด ์•„๋‹Œ ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ MongoDB์—์„œ ์ธ์ฆํ•˜๋Š” ๊ฐ„๋‹จํ•œ LDAP ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•ด LDAP ์ธ์ฆ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ

  • ๊ณ ์œ  ์ด๋ฆ„์ด ํ•„์š”ํ•œ LDAP authorization query template์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • x.509 ๋˜๋Š” Kerberos ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ด MongoDB์—์„œ ์ธ์ฆํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ๊ถŒํ•œ ์Šน์ธ์„ ์œ„ํ•ด ์™„์ „ํ•œ LDAP DN์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ

--ldapUserToDNMapping์€ ๋ฌธ์„œ์˜ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ธ JSON ๋ฌธ์ž์—ด์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฌธ์„œ์—๋Š” ์ •๊ทœ ํ‘œํ˜„์‹ match ๋ฐ ๋“ค์–ด์˜ค๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” substitution ๋˜๋Š” ldapQuery ํ…œํ”Œ๋ฆฟ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐ์—ด์˜ ๊ฐ ๋ฌธ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

{
match: "<regex>"
substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>"
}
ํ•„๋“œ
์„ค๋ช…
์˜ˆ์‹œ

match

์ œ๊ณต๋œ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜๋Š” ECMAScript ํ˜•์‹์˜ ์ •๊ทœ ํ‘œํ˜„์‹(regex)์ž…๋‹ˆ๋‹ค. ๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ๊ฐ ์„น์…˜์€ substitution ๋˜๋Š” ldapQuery์—์„œ ์‚ฌ์šฉํ•˜๋Š” regex ์บก์ฒ˜ ๊ทธ๋ฃน์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

"(.+)ENGINEERING" "(.+)DBA"

substitution

match ์ •๊ทœ์‹๊ณผ ์ผ์น˜ํ•˜๋Š” ์ธ์ฆ ์ด๋ฆ„์„ LDAP DN(๊ณ ์œ  ์ด๋ฆ„)์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” LDAP DN ํ˜•์‹ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ๊ฐ ์ˆซ์ž ๊ฐ’์€ match ์ •๊ทœ์‹์„ ํ†ตํ•ด ์ธ์ฆ ์‚ฌ์šฉ์ž ์ด๋ฆ„์—์„œ ์ถ”์ถœํ•œ ํ•ด๋‹น ์ •๊ทœ์‹ ์บก์ฒ˜ ๊ทธ๋ฃน์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

๋Œ€์ฒด์˜ ๊ฒฐ๊ณผ๋Š” ์ด์Šค์ผ€์ดํ”„๋œ RFC4514 ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"cn={0},ou=engineering, dc=example,dc=com"

ldapQuery

match regex์™€ ์ผ์น˜ํ•˜๋Š” ์ธ์ฆ ์ด๋ฆ„์„ RFC4515 ๋ฐ RFC4516 ๊ด€๋ จํ•˜์—ฌ ์ธ์ฝ”๋”ฉ๋œ LDAP ์ฟผ๋ฆฌ URI์— ์‚ฝ์ž…ํ•˜๋Š” LDAP ์ฟผ๋ฆฌ ํ˜•์‹ ์ง€์ • ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ๊ฐ ์ˆซ์ž ๊ฐ’์€ match ํ‘œํ˜„์‹์„ ํ†ตํ•ด ์ธ์ฆ ์‚ฌ์šฉ์ž ์ด๋ฆ„์—์„œ ์ถ”์ถœํ•œ ํ•ด๋‹น ์ •๊ทœ์‹ ์บก์ฒ˜ ๊ทธ๋ฃน์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. mongod๋Š” LDAP ์„œ๋ฒ„์— ๋Œ€ํ•ด ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์˜ LDAP DN์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. mongod ๋ณ€ํ™˜์ด ์„ฑ๊ณตํ•˜๋ ค๋ฉด ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด mongod๋Š” ์ด ๋ณ€ํ™˜์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

"ou=engineering,dc=example, dc=com??one?(user={0})"

์ฐธ๊ณ 

RFC4514, RFC4515, RFC4516 ๋˜๋Š” LDAP ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์„ค๋ช…์€ MongoDB ๋ฌธ์„œ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค. RFC๋ฅผ ์ง์ ‘ ๊ฒ€ํ† ํ•˜๊ฑฐ๋‚˜ ์„ ํ˜ธํ•˜๋Š” LDAP ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋ฐฐ์—ด์˜ ๊ฐ ๋ฌธ์„œ์— ๋Œ€ํ•ด substitution ๋˜๋Š” ldapQuery ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฌธ์„œ์—์„œ ๋‘˜ ๋‹ค ์ง€์ •ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค .

์ธ์ฆ ๋˜๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ mongod์€ match ํ•„ํ„ฐ์— ๋Œ€ํ•ด ์ธ์ฆ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ํ™•์ธํ•˜๋ฉด์„œ ๋ฐฐ์—ด์˜ ๊ฐ ๋ฌธ์„œ๋ฅผ ์ง€์ •๋œ ์ˆœ์„œ๋Œ€๋กœ ๋‹จ๊ณ„๋ณ„๋กœ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด mongod์—์„œ ๋ณ€ํ™˜์„ ์ ์šฉํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์œ„ํ•ด ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. mongod์€ ๋ฐฐ์—ด์˜ ๋‚˜๋จธ์ง€ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ง€์ •ํ•œ ๋ฌธ์„œ๊ฐ€ ์ œ๊ณต๋œ ์ธ์ฆ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ mongod๋Š” ๊ณ„์†ํ•ด์„œ ๋ฌธ์„œ ๋ชฉ๋ก์—์„œ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€๋กœ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ์—์„œ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๋ฌธ์„œ์—์„œ ์„ค๋ช…ํ•˜๋Š” ๋ณ€ํ™˜์ด ์‹คํŒจํ•˜๋ฉด mongod ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

mongod๋„ LDAP ์„œ๋ฒ„์— ๋Œ€ํ•œ ๋„คํŠธ์›Œํ‚น ๋˜๋Š” ์ธ์ฆ ์‹คํŒจ๋กœ ์ธํ•ด ๋ณ€ํ™˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. mongod(์€)๋Š” ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๊ฑฐ๋ถ€ํ•˜๊ณ  ๋ฐฐ์—ด์˜ ๋‚˜๋จธ์ง€ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

MongoDB 5.0๋ถ€ํ„ฐ --ldapUserToDNMapping์€ ๋งคํ•‘ ๋ฌธ์„œ ๋Œ€์‹  ๋นˆ ๋ฌธ์ž์—ด์ธ "" ๋˜๋Š” ๋นˆ ๋ฐฐ์—ด์ธ [ ]์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. --ldapUserToDNMapping์— ๋นˆ ๋ฌธ์ž์—ด ๋˜๋Š” ๋นˆ ๋ฐฐ์—ด์„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ MongoDB๋Š” ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ LDAP DN์œผ๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” ๋นˆ ๋งคํ•‘ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•˜๋ฉด ๋งคํ•‘์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

๋‹ค์Œ์€ ๋‘ ๊ฐœ์˜ ๋ณ€ํ™˜ ๋ฌธ์„œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฌธ์„œ๋Š” @ENGINEERING๋กœ ๋๋‚˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด๊ณผ ์ผ์น˜ํ•˜๋ฉฐ ์ ‘๋ฏธ์‚ฌ ์•ž์— ์˜ค๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์„ regex ์บก์ฒ˜ ๊ทธ๋ฃน์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ฌธ์„œ๋Š” @DBA๋กœ ๋๋‚˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด๊ณผ ์ผ์น˜ํ•˜๋ฉฐ, ์ ‘๋ฏธ์‚ฌ ์•ž์— ์˜ค๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์„ regex ์บก์ฒ˜ ๊ทธ๋ฃน์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

--ldapUserToDNMapping์— ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"[
{
match: "(.+)@ENGINEERING.EXAMPLE.COM",
substitution: "cn={0},ou=engineering,dc=example,dc=com"
},
{
match: "(.+)@DBA.EXAMPLE.COM",
ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})"
}
]"

์‚ฌ์šฉ์ž ์ด๋ฆ„์ด alice@ENGINEERING.EXAMPLE.COM์ธ ์‚ฌ์šฉ์ž๊ฐ€ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์„œ์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. Regex ์บก์ฒ˜ ๊ทธ๋ฃน {0}์€ ๋ฌธ์ž์—ด alice์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ์ถœ๋ ฅ์€ DN "cn=alice,ou=engineering,dc=example,dc=com"์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ด๋ฆ„์ด bob@DBA.EXAMPLE.COM์ธ ์‚ฌ์šฉ์ž๊ฐ€ ๋‘ ๋ฒˆ์งธ ๋ฌธ์„œ์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ •๊ทœ์‹ ์บก์ฒ˜ ๊ทธ๋ฃน {0}์€ ๋ฌธ์ž์—ด bob์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ์ถœ๋ ฅ์€ LDAP ์ฟผ๋ฆฌ "ou=dba,dc=example,dc=com??one?(user=bob)"์ž…๋‹ˆ๋‹ค. mongod๋Š” LDAP ์„œ๋ฒ„์— ๋Œ€ํ•ด ์ด ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ "cn=bob,ou=dba,dc=example,dc=com"๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

--ldapUserToDNMapping์ด ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ mongod๋Š” LDAP ์„œ๋ฒ„์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๊ฑฐ๋‚˜ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์‚ฌ์šฉ์ž ์ด๋ฆ„์— ๋ณ€ํ™˜์„ ์ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์„ค์ •์€ ์‹คํ–‰ ์ค‘์ธ mongod์—์„œ setParameter ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--ldapAuthzQueryTemplate <string>

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongod(์ด)๊ฐ€ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์†ํ•œ LDAP ๊ทธ๋ฃน์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์‹คํ–‰ํ•˜๋Š” RFC4515 ๋ฐ RFC4516์„ ์ค€์ˆ˜ํ•˜๋Š” ํ˜•์‹์˜ ์ƒ๋Œ€์  LDAP ์ฟผ๋ฆฌ URL์ž…๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๋Š” --ldapServers์— ์ง€์ •๋œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

URL์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋Œ€์ฒด ํ† ํฐ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์ฒด ํ† ํฐ
์„ค๋ช…

{USER}

์ธ์ฆ๋œ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋˜๋Š” ๊ฐ€ ์ง€์ •๋œ transformed username mapping ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

{PROVIDED_USER}

์ธ์ฆ ๋˜๋Š” LDAP transformation ์ „์— ์ œ๊ณต๋œ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋“ฑ์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ URL์„ ๊ตฌ์„ฑํ•  ๋•Œ LDAP ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ˆœ์„œ๊ฐ€ RFC4516์„ ์ค€์ˆ˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]

์ฟผ๋ฆฌ์— ์†์„ฑ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ mongod๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์ด ์—”ํ„ฐํ‹ฐ๊ฐ€ ์†ํ•œ DN์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ์— ์†์„ฑ์ด ์—†๋Š” ๊ฒฝ์šฐ mongod์—์„œ๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉค๋ฒ„์ธ ๋ชจ๋“  ์—”ํ‹ฐํ‹ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฐ LDAP DN์— ๋Œ€ํ•ด mongod ๋Š” ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•ด๋‹นํ•˜๋Š” ์—ญํ• ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์—ญํ• ์ด DN๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ mongod ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•ด๋‹น ์—ญํ• ์— ํ• ๋‹น๋œ ์—ญํ• ๊ณผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ์—ญํ•  ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ db.createRole() ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ์‹œ

์ด LDAP ์ฟผ๋ฆฌ๋Š” LDAP ์‚ฌ์šฉ์ž ๊ฐœ์ฒด์˜ memberOf ์†์„ฑ์— ๋‚˜์—ด๋œ ๋ชจ๋“  ๊ทธ๋ฃน์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

"{USER}?memberOf?base"

LDAP ๊ตฌ์„ฑ์— memberOf ์†์„ฑ์ด ์‚ฌ์šฉ์ž ์Šคํ‚ค๋งˆ์˜ ์ผ๋ถ€๋กœ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜, ๊ทธ๋ฃน ๋ฉค๋ฒ„์‹ญ์„ ๋ณด๊ณ ํ•˜๋Š” ๋ฐ ๋‹ค๋ฅธ ์†์„ฑ์ด ์žˆ๊ฑฐ๋‚˜, ์†์„ฑ์„ ํ†ตํ•ด ๊ทธ๋ฃน ๋ฉค๋ฒ„์‹ญ์„ ์ถ”์ ํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์œ ํ•œ LDAP ๊ตฌ์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด mongod์—์„œ LDAP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ์Šน์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ์„ค์ •์€ ์‹คํ–‰ ์ค‘์ธ mongod์—์„œ setParameter ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

RFC4515, RFC4516 ๋˜๋Š” LDAP ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์„ค๋ช…์€ MongoDB ๋ฌธ์„œ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค. RFC๋ฅผ ์ง์ ‘ ๊ฒ€ํ† ํ•˜๊ฑฐ๋‚˜ ์„ ํ˜ธํ•˜๋Š” LDAP ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

--storageEngine string

๊ธฐ๋ณธ๊ฐ’: wiredTiger

mongod ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

๊ฐ’
์„ค๋ช…

wiredTiger

WiredTiger ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

inMemory

--storageEngine์— ์˜ํ•ด ์ง€์ •๋œ ๊ฒƒ์ด ์•„๋‹Œ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์—์„œ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ํฌํ•จ๋œ --dbpath๋ฅผ ์‚ฌ์šฉํ•ด mongod๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•  ๊ฒฝ์šฐ mongod๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--dbpath <path>

๊ธฐ๋ณธ๊ฐ’: Linux ๋ฐ macOS์—์„œ๋Š” /data/db , Windows์—์„œ๋Š” \data\db

mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์„ค์น˜์— ํฌํ•จ๋œ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น storage.dbPath ์„ค์ •์€ ๋‹ค๋ฅธ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--dbpath์˜ ํŒŒ์ผ์€ --storageEngine์— ์ง€์ •๋œ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด --storageEngine๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด mongod๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--directoryperdb

๋ณ„๋„์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ๋Š” --dbpath ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— ์žˆ์œผ๋ฉฐ ๊ฐ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” mongod ์ธ์Šคํ„ด์Šค์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

MongoDB 5.0๋ถ€ํ„ฐ --directoryperdb๊ฐ€ ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ตœ์ข… ์ปฌ๋ ‰์…˜์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์ฒด๋ฅผ ์‚ญ์ œํ•˜๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒˆ๋กœ ๋นˆ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ๋ฐฐํฌ์— ๋Œ€ํ•œ --directoryperdb ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

  • ๋…๋ฆฝํ˜• ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ์šฐ:

    1. ๊ธฐ์กด mongod ์ธ์Šคํ„ด์Šค์—์„œ mongodump์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    2. mongod ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

    3. --directoryperdb ๊ฐ’์„ ์ถ”๊ฐ€ ํ•˜๊ณ  ์ƒˆ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    4. mongod ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    5. mongorestore๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค.

  • ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๊ฒฝ์šฐ:

    1. ๋ณด์กฐ ๊ตฌ์„ฑ์›์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

    2. --directoryperdb ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ•ด๋‹น ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„์— ์ƒˆ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    3. ๋ณด์กฐ ๊ตฌ์„ฑ์›์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    4. ์ดˆ๊ธฐ ๋™๊ธฐํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค.

    5. ๋‹ค๋ฅธ ๋ณด ์กฐ๊ตฌ์„ฑ์›๋„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    6. ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋ฌผ๋Ÿฌ๋‚˜๊ฒŒ ํ•˜๊ณ , ๋ฌผ๋Ÿฌ๋‚œ ๊ตฌ์„ฑ์›์„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

--syncdelay <value>

๊ธฐ๋ณธ๊ฐ’: 60

MongoDB๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ ํ”Œ๋Ÿฌ์‹œํ•˜๊ธฐ ์ „์— ๊ฒฝ๊ณผํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ฑฐ์˜ ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mongod ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €๋„์— ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๊ธฐ๋กํ•˜๊ณ  ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๋Š๋ฆฌ๊ฒŒ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. --syncdelay๋Š” ์ €๋„๋ง์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ --syncdelay๊ฐ€ 0์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ์ €๋„์€ ๊ฒฐ๊ตญ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” mongod ์ธ์Šคํ„ด์Šค์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

--upgrade

ํ•„์š”ํ•œ ๊ฒฝ์šฐ --dbpath์—์„œ ์ง€์ •ํ•œ ํŒŒ์ผ์˜ ๋””์Šคํฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ์ด์ „ ํ˜•์‹์ธ ๊ฒฝ์šฐ์—๋งŒ mongod ์ž‘์—…์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ด ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ๋Œ€ํ•œ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ MongoDB ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

--repair

mongod ์ธ์Šคํ„ด์Šค์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ณต๊ตฌ ๋ฃจํ‹ด์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 5.0๋ถ€ํ„ฐ ๋„์ž…๋จ:

  • ๋ณต๊ตฌ ์ž‘์—…์€ ์ปฌ๋ ‰์…˜์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•ด ๋ชจ๋“  ๋ถˆ์ผ์น˜๋ฅผ ์ฐพ์•„๋‚ด๊ณ  ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ธ๋ฑ์Šค๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ปฌ๋ ‰์…˜์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ๋ณต๊ตฌ๋˜๊ฑฐ๋‚˜ ์ปฌ๋ ‰์…˜์— ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋‹จ๊ณ„์—์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋ถˆ์ผ์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๋ชจ๋“  ์ธ๋ฑ์Šค๊ฐ€ ๋‹ค์‹œ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

ํŒ

์ €๋„๋ง์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ์„œ๋ฒ„๊ฐ€ ์ €๋„ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ๊นจ๋—ํ•œ ์ƒํƒœ๋กœ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ณต๊ตฌ๋ฅผ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋””์Šคํฌ ์ˆ˜์ค€ ๋ฐ์ดํ„ฐ ์†์ƒ์„ ๋ณต๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋ณต๊ตฌ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

  • ๋‹ค๋ฅธ ์˜ต์…˜์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ mongod --repair๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด ์ž‘์—…์€ ๋ณต๊ตฌ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์†์ƒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด --repair๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • --repair(์„)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— dbpath ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • ์–ด๋–ค ์ด์œ ๋กœ๋“  ๋ณต๊ตฌ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉด --repair ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--journalCommitInterval <value>

๊ธฐ๋ณธ๊ฐ’: 100

mongod ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ €๋„ ์ž‘์—… ๊ฐ„์— ํ—ˆ์šฉํ•˜๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค. ๊ฐ’์˜ ๋ฒ”์œ„๋Š” 1~500๋ฐ€๋ฆฌ์ดˆ์ž…๋‹ˆ๋‹ค. ๊ฐ’์ด ๋‚ฎ์„์ˆ˜๋ก ๋””์Šคํฌ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ๋Œ€์‹  ์ €๋„์˜ ๋‚ด๊ตฌ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.

WiredTiger์—์„œ ๊ธฐ๋ณธ ์ €๋„ ์ปค๋ฐ‹ ๊ฐ„๊ฒฉ์€ 100๋ฐ€๋ฆฌ์ดˆ์ž…๋‹ˆ๋‹ค. j:true๋ฅผ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ์•”์‹œํ•˜๋Š” ์“ฐ๊ธฐ๋Š” ์ฆ‰์‹œ ์ €๋„ ๋™๊ธฐํ™”๋ฅผ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ๋™๊ธฐํ™” ๋นˆ๋„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ถ”๊ฐ€ ์กฐ๊ฑด๊ณผ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ €๋„๋ง ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” mongod ์ธ์Šคํ„ด์Šค์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

--wiredTigerCacheSizeGB <float>

WiredTiger๊ฐ€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉํ•˜๋Š” ๋‚ด๋ถ€ ์บ์‹œ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค ๋นŒ๋“œ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ(maxIndexBuildMemoryUsageMegabytes ์ฐธ์กฐ)๋Š” WiredTiger ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’์˜ ๋ฒ”์œ„๋Š” 0.25GB์—์„œ 10000GB๊นŒ์ง€์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ WiredTiger ๋‚ด๋ถ€ ์บ์‹œ ํฌ๊ธฐ๋Š” ๋‹ค์Œ ์ค‘ ๋” ํฐ ๊ฐ’์ž…๋‹ˆ๋‹ค.

  • (RAM - 1GB)์˜ 50%

  • 256 MB.

์˜ˆ๋ฅผ ๋“ค์–ด ์ด 4 GB RAM์ด ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ WiredTiger ์บ์‹œ๋Š” 1.5 GB RAM(0.5 * (4 GB - 1 GB) = 1.5 GB)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ, ์ด RAM์ด 1.25 GB์ธ ์‹œ์Šคํ…œ์—์„œ๋Š” WiredTiger๋Š” WiredTiger ์บ์‹œ์— 256 MB๋ฅผ ํ• ๋‹นํ•˜๋Š”๋ฐ, ์ด๋Š” ์ „์ฒด RAM์—์„œ 1 GB(0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB)๋ฅผ ๋บ€ ๊ฐ’์˜ ์ ˆ๋ฐ˜ ์ด์ƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ํ•  ๋•Œ ๋“ฑ์˜ ์ผ๋ถ€ ์ธ์Šคํ„ด์Šค์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์ด ์ด ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋‚ฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์Šคํ„ด์Šค์—์„œ๋Š” ์ด ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์ด ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ RAM์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์„ ๋ณด๋ ค๋ฉด hostInfo.system.memLimitMB ์ฐธ์กฐํ•˜์„ธ์š”.

WiredTiger ๋‚ด๋ถ€ ์บ์‹œ ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ณธ๊ฐ’ ์ด์ƒ์œผ๋กœ ๋Š˜๋ฆฌ์ง€ ๋งˆ์„ธ์š”.

MongoDB๋Š” WiredTiger๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์บ์‹œ์™€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์บ์‹œ ๋ชจ๋‘๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

MongoDB๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์บ์‹œ๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ WiredTiger ์บ์‹œ๋‚˜ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

--wiredTigerCacheSizeGB๋Š” WiredTiger ๋‚ด๋ถ€ ์บ์‹œ์˜ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ ์บ์‹œ์— ์‚ฌ์šฉํ•˜์—ฌ ์••์ถ•๋œ MongoDB ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์šด์˜ ์ฒด์ œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ RAM์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ฐจ๋‹จ๊ณผ ํŒŒ์ผ ์‹œ์Šคํ…œ ์บ์‹œ๋ฅผ ๋ฒ„ํผ๋งํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์ธ RAM ์†Œ๋น„๋ฅผ ์ˆ˜์šฉํ•˜๋ ค๋ฉด WiredTiger ๋‚ด๋ถ€ ์บ์‹œ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ WiredTiger ๋‚ด๋ถ€ ์บ์‹œ ํฌ๊ธฐ ๊ฐ’์€ ์ปดํ“จํ„ฐ๋‹น ํ•˜๋‚˜์˜ mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์— ์—ฌ๋Ÿฌ MongoDB ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ mongod ์ธ์Šคํ„ด์Šค๋ฅผ ์ˆ˜์šฉํ•˜๋„๋ก ์„ค์ •์„ ์ค„์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  RAM์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ์ปจํ…Œ์ด๋„ˆ(์˜ˆ๋ฅผ ๋“ค์–ด, lxc, cgroups, Docker ๋“ฑ)์—์„œ mongod๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ --wiredTigerCacheSizeGB๋ฅผ ๋ฐ˜๋“œ์‹œ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ RAM์˜ ์–‘๋ณด๋‹ค ์ ์€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ์–‘์€ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. memLimitMB๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

--wiredTigerJournalCompressor <compressor>

๊ธฐ๋ณธ๊ฐ’: snappy

WiredTiger ์ €๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์••์ถ• ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์••์ถ• ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

--wiredTigerDirectoryForIndexes

mongod๋ฅผ --wiredTigerDirectoryForIndexes์™€ ํ•จ๊ป˜ ์‹œ์ž‘ํ•˜๋ฉด, mongod๋Š” ๋ฐ์ดํ„ฐ ํ•˜์˜ ๋ณ„๋„ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ(์ฆ‰, --dbpath) ๋””๋ ‰ํ† ๋ฆฌ์— ์ธ๋ฑ์Šค์™€ ์ปฌ๋ ‰์…˜์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ mongod ์€ index๋ผ๋Š” ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๊ณ  collection์ด๋ผ๋Š” ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์ปฌ๋ ‰์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํ˜ธ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ๋ฑ์Šค์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ด ์•„๋‹Œ ๊ฒฝ์šฐ, index ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ด๋™ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์— ์ƒˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ index๋ผ๋Š” ๊ธฐํ˜ธ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

--wiredTigerCollectionBlockCompressor <compressor>

๊ธฐ๋ณธ๊ฐ’: snappy

์ปฌ๋ ‰์…˜ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ณธ ์••์ถ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค ๋•Œ ์ปฌ๋ ‰์…˜๋ณ„๋กœ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์••์ถ• ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

--wiredTigerCollectionBlockCompressor(์€)๋Š” ์ƒ์„ฑ๋œ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ๊ธฐ์กด MongoDB ๋ฐฐํฌ์—์„œ --wiredTigerCollectionBlockCompressor ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ชจ๋“  ์‹ ๊ทœ ์ปฌ๋ ‰์…˜์ด ์ง€์ •๋œ ์••์ถ•๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ปฌ๋ ‰์…˜์€ ์ƒ์„ฑ ์‹œ ์ง€์ •๋œ ์••์ถ•๊ธฐ ๋˜๋Š” ๋‹น์‹œ์˜ ๊ธฐ๋ณธ ์••์ถ•๊ธฐ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--wiredTigerIndexPrefixCompression <boolean>

๊ธฐ๋ณธ๊ฐ’: true

์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๋‘์‚ฌ ์••์ถ• ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ ‘๋‘์‚ฌ ์••์ถ•์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด --wiredTigerIndexPrefixCompression์— true๋ฅผ ์ง€์ •ํ•˜๊ณ , ์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ์˜ ์ ‘๋‘์‚ฌ ์••์ถ•์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด false๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--wiredTigerIndexPrefixCompression ์„ค์ •์€ ์ƒ์„ฑ๋œ ๋ชจ๋“  ์ธ๋ฑ์Šค์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ๊ธฐ์กด MongoDB ๋ฐฐํฌ์—์„œ --wiredTigerIndexPrefixCompression ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ชจ๋“  ์‹ ๊ทœ ์ธ๋ฑ์Šค๊ฐ€ ์ ‘๋‘์‚ฌ ์••์ถ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ธ๋ฑ์Šค๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--replSet <setname>

๋ณต์ œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ด๋ฆ„์„ ์ด ์„ธํŠธ์˜ ์ธ์ˆ˜๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ๋Š” ์„ธํŠธ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด 2๊ฐœ ์ด์ƒ์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ ๊ฐ ์„ธํŠธ์˜ ์ด๋ฆ„์ด ๋‹ฌ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋“œ๋ผ์ด๋ฒ„๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„์œผ๋กœ ๋ณต์ œ๋ณธ ์„ธํŠธ ์—ฐ๊ฒฐ์„ ๊ทธ๋ฃนํ™”ํ•ฉ๋‹ˆ๋‹ค.

--oplogSize <value>

oplog์˜ ์ตœ๋Œ€ ํฌ๊ธฐ(๋ฉ”๊ฐ€๋ฐ”์ดํŠธ)์ž…๋‹ˆ๋‹ค. oplogSize ์„ค์ •์€ ๋””์Šคํฌ์ƒ์˜ ํฌ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ oplog์˜ ์••์ถ•๋˜์ง€ ์•Š์€ ํฌ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

2}๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด oplog๊ฐ€ ๊ตฌ์„ฑ๋œ ํฌ๊ธฐ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์—ฌ ์ปค์งˆ ์ˆ˜ majority commit point ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ mongod ํ”„๋กœ์„ธ์Šค๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ๊ณต๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ oplog๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 64๋น„ํŠธ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ, ์ผ๋ฐ˜์ ์œผ๋กœ oplog๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋””์Šคํฌ ๊ณต๊ฐ„์˜ 5%์ž…๋‹ˆ๋‹ค.

mongod๊ฐ€ ์ฒ˜์Œ์œผ๋กœ oplog๋ฅผ ์ƒ์„ฑํ•œ ํ›„์—๋Š” --oplogSize ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•ด๋„ oplog์˜ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. mongod๋ฅผ ์‹œ์ž‘ํ•œ ํ›„ ์ตœ์†Œ oplog ๋ณด์กด ๊ธฐ๊ฐ„์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด replSetResizeOplog๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. replSetResizeOplog๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ oplog์˜ ํฌ๊ธฐ๋ฅผ ๋™์ ์œผ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์‹œ์ž‘์„ ํ†ตํ•ด replSetResizeOplog๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด --oplogSize์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ oplog ํฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

--oplogMinRetentionHours <value>

oplog ํ•ญ๋ชฉ์„ ๋ณด์กดํ•  ์ตœ์†Œ ์‹œ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์†Œ์ˆ˜ ๊ฐ’์€ ๋ถ„ ๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ’ 1.5๋Š” 1์‹œ๊ฐ„ 30๋ถ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ด ๊ฐ’์€ 0 ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด 0์ด๋ฉด mongod๊ฐ€ ๊ตฌ์„ฑ๋œ ์ตœ๋Œ€ oplog ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํ•ญ๋ชฉ๋ถ€ํ„ฐ oplog๋ฅผ ์ž˜๋ผ๋‚ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.

--oplogMinRetentionHours๋กœ ์‹œ์ž‘ํ•˜๋Š” mongod๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ oplog ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

  • oplog๊ฐ€ ๊ตฌ์„ฑ๋œ ์ตœ๋Œ€ ํฌ๊ธฐ์— ๋„๋‹ฌํ•˜๊ณ 

  • oplog ํ•ญ๋ชฉ์ด ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ์‹œ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ์„ฑ๋œ ์‹œ๊ฐ„๋ณด๋‹ค ์˜ค๋ž˜๋œ ๊ฒฝ์šฐ

์ตœ์†Œ oplog ๋ณด์กด ๊ธฐ๊ฐ„์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ mongod๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  • oplog๋Š” ๊ตฌ์„ฑ๋œ ์‹œ๊ฐ„ ๋™์•ˆ oplog ํ•ญ๋ชฉ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ œํ•œ ์—†์ด ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋กœ ์ธํ•ด ์“ฐ๊ธฐ์˜ ์–‘์ด ๋งŽ์•„์ง€๊ณ  ๋ณด์œ  ๊ธฐ๊ฐ„์ด ๋Š˜์–ด๋‚˜๋ฉฐ ์‹œ์Šคํ…œ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์ค„์–ด๋“ค๊ฑฐ๋‚˜ ๊ณ ๊ฐˆ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • oplog๊ฐ€ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜์—ฌ ์ปค์ง€๋ฉด, oplog๊ฐ€ ์ตœ๋Œ€ ํฌ๊ธฐ๋กœ ๋Œ์•„์˜ค๊ฑฐ๋‚˜ ๋˜๋Š” ๋” ์ž‘์€ ์ตœ๋Œ€ ํฌ๊ธฐ๋กœ ๊ตฌ์„ฑ๋˜๋”๋ผ๋„ mongod๊ฐ€ ํ•ด๋‹น ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๊ณ„์† ๋ณด์œ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. oplog ํฌ๊ธฐ ๊ฐ์†Œ๋กœ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์ฆ‰์‹œ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • mongod๋Š” oplog ํ•ญ๋ชฉ ๋ณด์กด์„ ์ ์šฉํ•  ๋•Œ ์‹œ์Šคํ…œ์ƒ ์‹œ๊ฐ„๊ณผ oplog ํ•ญ๋ชฉ ์ƒ์„ฑ ์‹œ๊ฐ„์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ํด๋Ÿญ ๋“œ๋ฆฌํ”„ํŠธ๋Š” ์˜ˆ๊ธฐ์น˜ ์•Š์€ oplog ๋ณด์กด ๋™์ž‘์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๋ฉค๋ฒ„ ๊ฐ„์˜ ์‹œ๊ณ„ ๋™๊ธฐํ™”์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‹œ๊ณ„ ๋™๊ธฐํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

mongod๋ฅผ ์‹œ์ž‘ํ•œ ํ›„ ์ตœ์†Œ oplog ๋ณด์กด ๊ธฐ๊ฐ„์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด replSetResizeOplog๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. replSetResizeOplog๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ oplog์˜ ํฌ๊ธฐ๋ฅผ ๋™์ ์œผ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. replSetResizeOplog ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ์žฌ์‹œ์ž‘ ํ›„์—๋„ ์œ ์ง€ํ•˜๋ ค๋ฉด --oplogMinRetentionHours์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

--enableMajorityReadConcern

๊ธฐ๋ณธ๊ฐ’: true

"majority" ์ฝ๊ธฐ ๊ณ ๋ ค๋ฅผ ์œ„ํ•œ ์ง€์›์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

MongoDB 5.0๋ถ€ํ„ฐ๋Š” --enableMajorityReadConcern๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ณ  ์–ธ์ œ๋‚˜ true๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ MongoDB์—์„œ๋Š” --enableMajorityReadConcern์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

ํ”„๋ผ์ด๋จธ๋ฆฌ-์„ธ์ปจ๋”๋ฆฌ-์ค‘์žฌ์ž(PSA) ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด ๋‹ค์Œ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

  • ์“ฐ๊ธฐ ๊ณ ๋ ค "majority"๋Š” ์„ธ์ปจ๋”๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์ง€์—ฐ๋˜์—ˆ์„ ๋•Œ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์กฐ์–ธ์€ ์ž์ฒด ๊ด€๋ฆฌ PSA ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ๋ฌธ์ œ ์™„ํ™”๋ฅผ์ฐธ์กฐํ•˜์„ธ์š”.

  • ๊ธ€๋กœ๋ฒŒ ๊ธฐ๋ณธ๊ฐ’ "majority"๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ , ์“ฐ๊ธฐ ๊ณ ๋ ค๊ฐ€ ๊ณผ๋ฐ˜์ˆ˜ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ฟผ๋ฆฌ๊ฐ€ ์˜ค๋ž˜๋œ (์™„์ „ํžˆ ๋ณต์ œ๋˜์ง€ ์•Š์€) ๋ถ€์‹ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--configsvr

config ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ config ์„œ๋ฒ„ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์œผ๋กœ ์‹คํ–‰ํ•  ๋•Œ ํด๋ผ์ด์–ธํŠธ(์˜ˆ: ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ)๋Š” config ๋ฐ admin ์ด์™ธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์ด ์žˆ๋Š” mongod์˜ ๊ธฐ๋ณธ ํฌํŠธ๋Š” 27019์ด๊ณ , ๋‹ฌ๋ฆฌ ์ง€์ •๋˜์–ด ์žˆ์ง€ ์•Š๋Š” ํ•œ ๊ธฐ๋ณธ --dbpath ๋””๋ ‰ํ† ๋ฆฌ๋Š” /data/configdb์ž…๋‹ˆ๋‹ค.

์ค‘์š”

--configsvr๋กœ MongoDB ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ --replSet๋„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ด ์ค‘๋‹จ๋œ ๋ฏธ๋Ÿฌ๋ง๋œ mongod ์ธ์Šคํ„ด์Šค๋ฅผ config ์„œ๋ฒ„(SCCC)๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์€ ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ์„œ๋ฒ„(CSRS)๋Š” WiredTiger ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--configsvr ์˜ต์…˜์€ ๋กœ์ปฌ oplog๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

--configsvr ์˜ต์…˜์„ --shardsvr์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. config ์„œ๋ฒ„๋Š” ์ƒค๋“œ ์„œ๋ฒ„๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

--configsvr๋ฅผ skipShardingConfigurationChecks ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ์œ ์ง€ ๊ด€๋ฆฌ ์ž‘์—…์„ ์œ„ํ•ด ์ž„์‹œ๋กœ mongod๋ฅผ ๋…๋ฆฝํ˜•์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ skipShardingConfigurationChecks ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜๊ณ  --configsvr๋ฅผ ์ œ์™ธํ•˜์„ธ์š”. ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด skipShardingConfigurationChecks ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  --configsvr๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”.

--shardsvr

์ƒค๋“œ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด mongod ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒค๋“œ๋กœ ๊ตฌ์„ฑํ•˜์„ธ์š”. ์ด๋Ÿฌํ•œ ์ธ์Šคํ„ด์Šค์˜ ๊ธฐ๋ณธ ํฌํŠธ๋Š” 27018์ž…๋‹ˆ๋‹ค.

์ค‘์š”

--shardsvr๋กœ MongoDB ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ --replSet๋„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--shardsvr๋ฅผ skipShardingConfigurationChecks ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ์œ ์ง€ ๊ด€๋ฆฌ ์ž‘์—…์„ ์œ„ํ•ด ์ž„์‹œ๋กœ mongod๋ฅผ ๋…๋ฆฝํ˜•์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ skipShardingConfigurationChecks ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜๊ณ  --shardsvr๋ฅผ ์ œ์™ธํ•˜์„ธ์š”. ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด skipShardingConfigurationChecks ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  --shardsvr๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”.

ํŒ

์ฐธ์กฐ:

MongoDB๊ฐ€ ์ง€์›ํ•˜๋Š” ์„ค๋ช…์„œ ์ „์ฒด๋ฅผ ํ™œ์šฉํ•˜๋ ค๋ฉด TLS/SSL์— mongod์™€ mongos๋ฅผ ๊ตฌ์„ฑํ•˜์„ธ์š”.

--tlsMode <mode>

๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์—์„œ TLS๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. --tlsMode ์˜ต์…˜์˜ ์ธ์ˆ˜๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

disabled

์„œ๋ฒ„๊ฐ€ TLS๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

allowTLS

์„œ๋ฒ„ ๊ฐ„ ์—ฐ๊ฒฐ์ด TLS๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ˆ˜์‹  ์—ฐ๊ฒฐ์˜ ๊ฒฝ์šฐ, ์„œ๋ฒ„๋Š” TLS์™€ ๋น„TLS๋ฅผ ๋ชจ๋‘ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

preferTLS

์„œ๋ฒ„ ๊ฐ„ ์—ฐ๊ฒฐ์ด TLS๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹  ์—ฐ๊ฒฐ์˜ ๊ฒฝ์šฐ, ์„œ๋ฒ„๋Š” TLS์™€ ๋น„TLS๋ฅผ ๋ชจ๋‘ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

requireTLS

์„œ๋ฒ„๊ฐ€ TLS๋กœ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

--tlsCAFile ๋˜๋Š” tls.CAFile์ด(๊ฐ€) ์ง€์ •๋˜์ง€ ์•Š์•˜๊ณ  x.509 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ tlsUseSystemCA ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ true(์œผ)๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ MongoDB๋Š” TLS ํ™œ์„ฑํ™” ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‹œ์Šคํ…œ ์ „์ฒด CA ์ธ์ฆ์„œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

x.509 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ --tlsCertificateSelector๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ --tlsCAFile ๋˜๋Š” tls.CAFile์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsCertificateKeyFile <filename>

TLS ์ธ์ฆ์„œ์™€ ํ‚ค๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ๋Š” .pem ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

macOS ๋˜๋Š” Windows์—์„œ๋Š” --tlsCertificateSelector ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ PEM ํ‚ค ํŒŒ์ผ ๋Œ€์‹  ์šด์˜ ์ฒด์ œ์˜ ๋ณด์•ˆ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --tlsCertificateKeyFile ๋ฐ --tlsCertificateSelector ์˜ต์…˜์€ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ด๋ฏ€๋กœ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Linux/BSD์—์„œ TLS/SSL์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ --tlsCertificateKeyFile์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Windows ๋˜๋Š” macOS์—์„œ TLS/SSL์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ --tlsCertificateKeyFile ๋˜๋Š” --tlsCertificateSelector๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ค‘์š”

    Windows์—์„œ๋งŒ MongoDB๋Š” ์•”ํ˜ธํ™”๋œ PEM ํŒŒ์ผ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ PEM ํŒŒ์ผ์„ ๋งˆ์ฃผ์น  ๊ฒฝ์šฐ mongod(์ด)๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows์—์„œ TLS์— ์‚ฌ์šฉํ•  ์ธ์ฆ์„œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด --tlsCertificateSelector๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsCertificateKeyFilePassword <value>

์ธ์ฆ์„œ-ํ‚ค ํŒŒ์ผ ํ•ด๋…์„ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: --tlsCertificateKeyFile). ์ธ์ฆ์„œ ํ‚ค ํŒŒ์ผ์ด ์•”ํ˜ธํ™”๋œ ๊ฒฝ์šฐ์—๋งŒ --tlsCertificateKeyFilePassword ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. mongod ์€(๋Š”) ํ•ญ์‹œ ๋ชจ๋“  ๋กœ๊น… ๊ฒฐ๊ณผ์™€ ๋ณด๊ณ  ๊ฒฐ๊ณผ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

  • Linux/BSD์—์„œ PEM ํŒŒ์ผ์˜ ๊ฐœ์ธ ํ‚ค๊ฐ€ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ๊ณ  --tlsCertificateKeyFilePassword ์˜ต์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, MongoDB๋Š” ํŒจ์Šคํ”„๋ ˆ์ด์ฆˆ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL ์ธ์ฆ์„œ ํŒจ์Šคํ”„๋ ˆ์ด์ฆˆ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • macOS์—์„œ PEM ํŒŒ์ผ์˜ ๊ฐœ์ธ ํ‚ค๊ฐ€ ์•”ํ˜ธํ™”๋œ ๊ฒฝ์šฐ --tlsCertificateKeyFilePassword ์˜ต์…˜์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” PEM ํŒŒ์ผ ๋Œ€์‹  ๋ณด์•ˆ ์‹œ์Šคํ…œ ์ €์žฅ์†Œ(--tlsCertificateSelector ์ฐธ์กฐ)์˜ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ PEM ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Windows์—์„œ๋Š” ์•”ํ˜ธํ™”๋œ ์ธ์ฆ์„œ๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ PEM ํŒŒ์ผ์—์„œ๋Š” mongod์ด(๊ฐ€) ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  --tlsCertificateSelector ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--clusterAuthMode <option>

๊ธฐ๋ณธ๊ฐ’: keyFile

ํด๋Ÿฌ์Šคํ„ฐ ์ธ์ฆ์— ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฆ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ x.509 ์ธ์ฆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์—์„œ ์ง€์ •ํ•˜์„ธ์š”. ์ด ์˜ต์…˜์€ ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ .

๊ฐ’
์„ค๋ช…

keyFile

์ธ์ฆ์— ํ‚คํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ‚คํŒŒ์ผ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

sendKeyFile

๋กค๋ง ์—…๊ทธ๋ ˆ์ด๋“œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ์‹œ ํ‚คํŒŒ์ผ์„ ์ „์†กํ•˜์ง€๋งŒ ํ‚คํŒŒ์ผ๊ณผ x.509 ์ธ์ฆ์„œ๋ฅผ ๋ชจ๋‘ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sendX509

๋กค๋ง ์—…๊ทธ๋ ˆ์ด๋“œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ์‹œ x.509 ์ธ์ฆ์„œ๋ฅผ ์ „์†กํ•˜์ง€๋งŒ ํ‚คํŒŒ์ผ๊ณผ x.509 ์ธ์ฆ์„œ๋ฅผ ๋ชจ๋‘ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

x509

๊ถŒ์žฅํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ์ธ์ฆ ์‹œ x.509 ์ธ์ฆ์„œ๋ฅผ ์ „์†กํ•˜๊ณ  x.509 ์ธ์ฆ์„œ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

--tlsCAFile ๋˜๋Š” tls.CAFile์ด(๊ฐ€) ์ง€์ •๋˜์ง€ ์•Š์•˜๊ณ  x.509 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ tlsUseSystemCA ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ true(์œผ)๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ MongoDB๋Š” TLS ํ™œ์„ฑํ™” ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‹œ์Šคํ…œ ์ „์ฒด CA ์ธ์ฆ์„œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

x.509 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ --tlsCertificateSelector๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ --tlsCAFile ๋˜๋Š” tls.CAFile์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsClusterFile <filename>

ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” ๋ณต์ œ ์„ธํŠธ์˜ ๊ตฌ์„ฑ์› ์ธ์ฆ์„ ์œ„ํ•œ x.509 ์ธ์ฆ์„œ ํ‚ค ํŒŒ์ผ์ด ๋“ค์–ด ์žˆ๋Š” .pem ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

macOS ๋˜๋Š” Windows์—์„œ๋Š” --tlsClusterCertificateSelector ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ PEM ํ‚ค ํŒŒ์ผ ๋Œ€์‹  ์šด์˜ ์ฒด์ œ์˜ ๋ณด์•ˆ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --tlsClusterFile ๋ฐ --tlsClusterCertificateSelector ์˜ต์…˜์€ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ด๋ฏ€๋กœ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--tlsClusterFile์—์„œ ๋‚ด๋ถ€ ํด๋Ÿฌ์Šคํ„ฐ ์ธ์ฆ์„ ์œ„ํ•ด .pem ํŒŒ์ผ์ด๋‚˜ ๋Œ€์•ˆ์ธ --tlsClusterCertificateSelector๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํด๋Ÿฌ์Šคํ„ฐ๋Š” --tlsCertificateKeyFile ์˜ต์…˜์— ์ง€์ •๋œ .pem ํŒŒ์ผ ๋˜๋Š” --tlsCertificateSelector์—์„œ ๋ฐ˜ํ™˜๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

x.509 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ --tlsCertificateSelector๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ --tlsCAFile ๋˜๋Š” tls.CAFile์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mongod / mongos๋Š” ์ œ์‹œ๋œ x.509 ์ธ์ฆ์„œ๊ฐ€ mongod/mongos ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ์‹œ๊ฐ„์œผ๋กœ๋ถ€ํ„ฐ 30์ผ ์ด๋‚ด์— ๋งŒ๋ฃŒ๋˜๋Š” ๊ฒฝ์šฐ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ค‘์š”

Windows๋Š” ์œ ์ผํ•˜๊ฒŒ MongoDB๊ฐ€ ์•”ํ˜ธํ™”๋œ PEM ํŒŒ์ผ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์šด์˜ ์ฒด์ œ์ž…๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ PEM ํŒŒ์ผ์„ ๋ฐœ๊ฒฌํ•  ๊ฒฝ์šฐmongod(์ด)๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows์—์„œ ๊ตฌ์„ฑ์› ์ธ์ฆ์— ์‚ฌ์šฉํ•  ์ธ์ฆ์„œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด --tlsClusterCertificateSelector(์„)๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

--tlsCertificateSelector <parameter>=<value>

์ฐธ๊ณ 

--tlsCertificateKeyFile ๋Œ€์‹  Windows ๋ฐ macOS์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TLS์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜ ์ฒด์ œ์˜ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์—์„œ ์ผ์น˜ํ•˜๋Š” ์ธ์ฆ์„œ๋ฅผ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ธ์ฆ์„œ ์†์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--tlsCertificateKeyFile ๋ฐ --tlsCertificateSelector ์˜ต์…˜์€ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค. ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--tlsCertificateSelector๋Š” <property>=<value> ํ˜•์‹์˜ ์ธ์ˆ˜๋ฅผ ๋ฐ›์œผ๋ฉฐ, ์—ฌ๊ธฐ์„œ ์†์„ฑ์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†์„ฑ
๊ฐ’ ์œ ํ˜•
์„ค๋ช…

subject

ASCII ๋ฌธ์ž์—ด

์ธ์ฆ์„œ์˜ ์ฃผ์ฒด ์ด๋ฆ„ ๋˜๋Š” ์ผ๋ฐ˜ ์ด๋ฆ„

thumbprint

16์ง„์ˆ˜ ๋ฌธ์ž์—ด

16์ง„์ˆ˜๋กœ ํ‘œํ˜„๋˜๋Š” ์ผ๋ จ์˜ ๋ฐ”์ดํŠธ๋กœ, SHA-1 ๋‹ค์ด์ œ์ŠคํŠธ๋กœ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

thumbprint์„(๋ฅผ) fingerprint(์ด)๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ SSL ์ธ์ฆ์„œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์˜จ๋ผ์ธ ์ธ์ฆ์„œ ์ƒํƒœ ํ”„๋กœํ† ์ฝœ(OCSP)์„ ์‚ฌ์šฉํ•ด ์ธ์ฆ์„œ์˜ ํ•ด์ง€ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด, TLS/SSL ์ธ์ฆ์„œ๊ฐ€ ๋‹จ์ผ ๋ฃจํŠธ CA ์ธ์ฆ์„œ๋กœ ์„œ๋ช…๋œ ๊ฒฝ์šฐ, ๋ณด์•ˆ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์— ํ•ด๋‹น ๋ฃจํŠธ CA ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. TLS/SSL ์ธ์ฆ์„œ๊ฐ€ ์ค‘๊ฐ„ CA ์ธ์ฆ์„œ๋กœ ์„œ๋ช…๋œ ๊ฒฝ์šฐ, ๋ณด์•ˆ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์—๋Š” ์ค‘๊ฐ„ CA ์ธ์ฆ์„œ ๋ฐ ๋ฃจํŠธ CA ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

thumbprint๋กœ ์„ค์ •๋œ net.tls.certificateSelector ๋˜๋Š” --tlsCertificateSelector๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ rotateCertificates ๋ช…๋ น ๋˜๋Š” db.rotateCertificates() ์…ธ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

--tlsClusterCertificateSelector <parameter>=<value>

์ฐธ๊ณ 

--tlsClusterFile ๋Œ€์‹  Windows ๋ฐ macOS์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šด์˜ ์ฒด์ œ์˜ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์—์„œ ๋‚ด๋ถ€ x.509 ๊ตฌ์„ฑ์› ์ž๊ฒฉ ์ธ์ฆ์„ ์œ„ํ•œ ๋งค์นญ๋˜๋Š” ์ธ์ฆ์„œ๋ฅผ ์„ ํƒํ•  ๋•Œ ์ธ์ฆ์„œ ์†์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--tlsClusterFile ๋ฐ --tlsClusterCertificateSelector ์˜ต์…˜์€ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค. ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--tlsClusterCertificateSelector๋Š” <property>=<value> ํ˜•์‹์˜ ์ธ์ˆ˜๋ฅผ ๋ฐ›์œผ๋ฉฐ, ์—ฌ๊ธฐ์„œ ์†์„ฑ์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†์„ฑ
๊ฐ’ ์œ ํ˜•
์„ค๋ช…

subject

ASCII ๋ฌธ์ž์—ด

์ธ์ฆ์„œ์˜ ์ฃผ์ฒด ์ด๋ฆ„ ๋˜๋Š” ์ผ๋ฐ˜ ์ด๋ฆ„

thumbprint

16์ง„์ˆ˜ ๋ฌธ์ž์—ด

16์ง„์ˆ˜๋กœ ํ‘œํ˜„๋˜๋Š” ์ผ๋ จ์˜ ๋ฐ”์ดํŠธ๋กœ, SHA-1 ๋‹ค์ด์ œ์ŠคํŠธ๋กœ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

thumbprint์„(๋ฅผ) fingerprint(์ด)๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด, ํด๋Ÿฌ์Šคํ„ฐ ์ธ์ฆ์„œ๊ฐ€ ๋‹จ์ผ ๋ฃจํŠธ CA ์ธ์ฆ์„œ๋กœ ์„œ๋ช…๋œ ๊ฒฝ์šฐ, ๋ณด์•ˆ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์— ํ•ด๋‹น ๋ฃจํŠธ CA ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ์ธ์ฆ์„œ๊ฐ€ ์ค‘๊ฐ„ CA ์ธ์ฆ์„œ๋กœ ์„œ๋ช…๋œ ๊ฒฝ์šฐ, ๋ณด์•ˆ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์—๋Š” ์ค‘๊ฐ„ CA ์ธ์ฆ์„œ ๋ฐ ๋ฃจํŠธ CA ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mongod / mongos๋Š” ์ œ์‹œ๋œ x.509 ์ธ์ฆ์„œ๊ฐ€ mongod/mongos ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ์‹œ๊ฐ„์œผ๋กœ๋ถ€ํ„ฐ 30์ผ ์ด๋‚ด์— ๋งŒ๋ฃŒ๋˜๋Š” ๊ฒฝ์šฐ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

--tlsClusterPassword <value>

--tlsClusterFile๋กœ ์ง€์ •๋œ x.509 ์ธ์ฆ์„œ-ํ‚ค ํŒŒ์ผ ํ•ด๋…์„ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ํ‚ค ํŒŒ์ผ์ด ์•”ํ˜ธํ™”๋œ ๊ฒฝ์šฐ์—๋งŒ --tlsClusterPassword ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. mongod๋Š” ์–ธ์ œ๋‚˜ ๋ชจ๋“  ๋กœ๊น… ๊ฒฐ๊ณผ์™€ ๋ณด๊ณ  ๊ฒฐ๊ณผ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

  • Linux/BSD์—์„œ x.509 ํŒŒ์ผ์˜ ๊ฐœ์ธ ํ‚ค๊ฐ€ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ๊ณ  --tlsClusterPassword ์˜ต์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, MongoDB๋Š” ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. TLS/SSL ์ธ์ฆ์„œ ์•”ํ˜ธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”

  • macOS์—์„œ x.509 ํŒŒ์ผ์˜ ๋น„๊ณต๊ฐœ ํ‚ค๊ฐ€ ์•”ํ˜ธํ™”๋œ ๊ฒฝ์šฐ --tlsClusterPassword ์˜ต์…˜์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ PEM ํŒŒ์ผ ๋Œ€์‹  ๋ณด์•ˆ ์‹œ์Šคํ…œ ์ €์žฅ์†Œ(--tlsClusterCertificateSelector ์ฐธ์กฐ)์˜ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ PEM ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Windows์—์„œ๋Š” ์•”ํ˜ธํ™”๋œ ์ธ์ฆ์„œ๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ PEM ํŒŒ์ผ์—์„œ๋Š” mongod์ด(๊ฐ€) ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  --tlsClusterCertificateSelector ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsCAFile <filename>

์ธ์ฆ ๊ธฐ๊ด€์˜ ๋ฃจํŠธ ์ธ์ฆ์„œ ์ฒด์ธ์ด ํฌํ•จ๋œ .pem ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .pem ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

TLS/SSL์ด ํ™œ์„ฑํ™”๋œ mongod ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ --tlsCAFile ํ”Œ๋ž˜๊ทธ, net.tls.CAFile ๊ตฌ์„ฑ ์˜ต์…˜ ๋˜๋Š” tlsUseSystemCA ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฐ’์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--tlsCAFile, tls.CAFile ๋ฐ tlsUseSystemCA ๋ชจ๋‘ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค.

Windows/macOS ์ „์šฉ
--tlsCertificateSelector ๋ฐ/๋˜๋Š” --tlsClusterCertificateSelector๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, --tlsCAFile์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฃจํŠธ ๋ฐ ์ค‘๊ฐ„ CA ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. --tlsCertificateSelector ๋ฐ/๋˜๋Š” --tlsClusterCertificateSelector ์ธ์ฆ์„œ์˜ ์ „์ฒด ์‹ ๋ขฐ ์ฒด์ธ์„ ๊ฒ€์ฆํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  CA ์ธ์ฆ์„œ๋ฅผ ๋ณด์•ˆ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsClusterCAFile <filename>

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ์ œ์‹œํ•œ ์ธ์ฆ์„œ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•  ๋•Œ ์‚ฌ์šฉ๋œ ์ธ์ฆ ๊ธฐ๊ด€์˜ ๋ฃจํŠธ ์ธ์ฆ์„œ ์ฒด์ธ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” .pem ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .pem ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --tlsClusterCAFile์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด --tlsCAFile ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

--tlsClusterCAFile์ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ์„œ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•  ๋•Œ .pem ํŒŒ์ผ์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํด๋Ÿฌ์Šคํ„ฐ๋Š” --tlsCAFile ์˜ต์…˜์— ์ง€์ •๋œ .pem ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--tlsClusterCAFile์€(๋Š”) TLS ํ•ธ๋“œ์…ฐ์ดํฌ์˜ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ์ธ์ฆ์— ๋ณ„๋„์˜ ์ธ์ฆ ๊ธฐ๊ด€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

Windows/macOS ์ „์šฉ
--tlsCertificateSelector ๋ฐ/๋˜๋Š” --tlsClusterCertificateSelector๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, --tlsClusterCAFile์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฃจํŠธ ๋ฐ ์ค‘๊ฐ„ CA ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. --tlsCertificateSelector ๋ฐ/๋˜๋Š” --tlsClusterCertificateSelector ์ธ์ฆ์„œ์˜ ์ „์ฒด ์‹ ๋ขฐ ์ฒด์ธ์„ ๊ฒ€์ฆํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  CA ์ธ์ฆ์„œ๋ฅผ ๋ณด์•ˆ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsCRLFile <filename>

์ธ์ฆ์„œ ํ•ด์ง€ ๋ชฉ๋ก์ด ํฌํ•จ๋œ .pem ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ .pem ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

  • macOS์—์„œ๋Š” CRL ํŒŒ์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  OCSP(์˜จ๋ผ์ธ ์ธ์ฆ์„œ ์ƒํƒœ ํ”„๋กœํ† ์ฝœ)๋ฅผ ์‚ฌ์šฉํ•ด ์ธ์ฆ์„œ์˜ ํ•ด์ง€ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ์‹œ์Šคํ…œ SSL ์ธ์ฆ์„œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ SSL ์ธ์ฆ์„œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด --tlsCertificateSelector(์„)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ์ธ์ฆ์„œ ์ทจ์†Œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด MongoDB๋Š” CRL ํŒŒ์ผ์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ SSL ์ธ์ฆ์„œ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉ enables ๋Œ€์‹  ๊ธฐ๋ณธ์ ์œผ๋กœ OCSP(์˜จ๋ผ์ธ ์ธ์ฆ์„œ ์ƒํƒœ ํ”„๋กœํ† ์ฝœ)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsAllowInvalidCertificates

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

์ฐธ๊ณ 

x.509 ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ๋•Œ --tlsAllowInvalidCertificates ๋˜๋Š” tls.allowInvalidCertificates: true์„(๋ฅผ) ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ, ์œ ํšจํ•˜์ง€ ์•Š์€ ์ธ์ฆ์„œ๋Š” TLS ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ๋Š” ์ถฉ๋ถ„ํ•˜์ง€๋งŒ, ์ธ์ฆ์—๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--tlsAllowInvalidCertificates ์„ค์ •์„ ์‚ฌ์šฉํ•  ๋•Œ MongoDB๋Š” ์œ ํšจํ•˜์ง€ ์•Š์€ ์ธ์ฆ์„œ ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ๋œ ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsAllowInvalidHostnames

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

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsAllowConnectionsWithoutCertificates

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

  • ์ธ์ฆ์„œ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๊ฒฝ์šฐ, mongod ๋˜๋Š” mongos๋Š” ์—ฐ๊ฒฐ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ด๋ฃจ์–ด์กŒ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ TLS/SSL ์—ฐ๊ฒฐ์„ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ธ์ฆ์„œ๋ฅผ ์ œ์‹œํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๊ฒฝ์šฐ mongod๋Š” --tlsCAFile์—์„œ ์ง€์ •ํ•œ ๋ฃจํŠธ ์ธ์ฆ์„œ ์ฒด์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์œ ํšจํ•˜์ง€ ์•Š์€ ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง„ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

mongod์— ์ธ์ฆ์„œ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ œ๊ณตํ•  ์ˆ˜ ์—†๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ํ˜ผํ•ฉ ๋ฐฐํฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ --tlsAllowConnectionsWithoutCertificates ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

TLS ๋ฐ MongoDB์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS/SSL์„ ์œ„ํ•œ mongod ๋ฐ mongos ๊ตฌ์„ฑ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ TLS/SSL ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsDisabledProtocols <protocol(s)>

TLS๋กœ ์‹คํ–‰ ์ค‘์ธ MongoDB ์„œ๋ฒ„๊ฐ€ 1๊ฐœ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ํŠน์ • ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜์‹  ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœํ† ์ฝœ์„ ์ง€์ •ํ•˜๋ ค๋ฉด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ํ”„๋กœํ† ์ฝœ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--tlsDisabledProtocols๋Š” TLS1_0, TLS1_1, TLS1_2 ๋ฐ TLS1_3 ํ”„๋กœํ† ์ฝœ์„ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

  • macOS์—์„œ๋Š” TLS1_1์„(๋ฅผ) ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  TLS1_0 ๋ฐ TLS1_2์„(๋ฅผ) ์ „๋ถ€ ํ™œ์„ฑํ™”๋œ ์ƒํƒœ๋กœ ๋‘˜ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. TLS1_0,TLS1_1์™€(๊ณผ) ๊ฐ™์ด ๋‹ค๋ฅธ 2๊ฐœ์˜ ํ”„๋กœํ† ์ฝœ ์ค‘ ์ ์–ด๋„ ํ•˜๋‚˜๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฌ๋Ÿฌ ํ”„๋กœํ† ์ฝœ์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ํ”„๋กœํ† ์ฝœ ๋ชฉ๋ก์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค( ์˜ˆ์‹œ: TLS1_0,TLS1_1).

  • ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ง€์ •ํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์ง€์ •๋œ ๋น„ํ™œ์„ฑํ™” ํ”„๋กœํ† ์ฝœ์€ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •๋œ ๋น„ํ™œ์„ฑํ™” ํ”„๋กœํ† ์ฝœ์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

TLS 1.1 ์ด์ƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ MongoDB๋Š” ์‹œ์Šคํ…œ์—์„œ TLS 1.0์˜ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™”๋œ TLS 1.0์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด none์„ --tlsDisabledProtocols๋กœ ์ง€์ •ํ•˜์„ธ์š”.

๋ณต์ œ๋ณธ ์„ธํŠธ์™€ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ์„ฑ์›์€ ์ ์–ด ํ•˜๋‚˜์˜ ๊ณตํ†ต๋œ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

--tlsFIPSMode

mongod๊ฐ€ TLS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ FIPS ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. --tlsFIPSMode ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ์— FIPS ํ˜ธํ™˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

FIPS์™€ ํ˜ธํ™˜๋˜๋Š” TLS/SSL์€ MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ FIPS์šฉ MongoDB ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--profile <level>

๊ธฐ๋ณธ๊ฐ’: 0

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์ˆ˜์ค€์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์ˆ˜์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

0
ํ”„๋กœํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊บผ์ ธ ์žˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ ์„ค์ •๋œ ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค.
1

ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” slowms ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•˜๊ฑฐ๋‚˜ ์ง€์ •๋œ ํ•„ํ„ฐํ•˜๋‹ค ์™€ ์ผ์น˜ํ•˜๋Š” ์ž‘์—…์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

ํ•„ํ„ฐ๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ:

  • slowms, sampleRate ์˜ต์…˜์€ ํ”„๋กœํŒŒ์ผ๋ง์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” ํ•„ํ„ฐ์ผ์น˜ํ•˜๋Š” ์ž‘์—…๋งŒ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค.

2
ํ”„๋กœํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ชจ๋“  ์ž‘์—…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

ํ”„๋กœํŒŒ์ผ๋ง์€ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ค๊ณ  ์‹œ์Šคํ…œ ๋กœ๊ทธ์—์„œ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ์ฟผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ถœ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ์„œ๋ฒ„์—์„œ ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์ „์— ์ด๊ฒƒ์ด ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ณ ๋ คํ•˜์„ธ์š”.

์ž ์žฌ์ ์ธ ์„ฑ๋Šฅ ์ €ํ•˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

--slowms <integer>

๊ธฐ๋ณธ๊ฐ’: 100

๋Š๋ฆฐ ์ž‘๋™ ์‹œ๊ฐ„ ์ž„๊ณ„๊ฐ’(๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„)์ž…๋‹ˆ๋‹ค. ์ด ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ์˜ค๋ž˜ ์‹คํ–‰๋˜๋Š” ์ž‘์—…์€ ๋Š๋ฆฐ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

๋Š๋ฆฐ ์ž‘์—…์€ MongoDB๊ฐ€ ํ•ด๋‹น ์ž‘์—…์— ์†Œ์š”ํ•˜๋Š” ์‹œ๊ฐ„์ธ workingMillis๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์ž ๊ธˆ ๋Œ€๊ธฐ ๋ฐ ํ๋ฆ„ ์ œ์–ด์™€ ๊ฐ™์€ ์š”์†Œ๋Š” ์ž‘์—…์ด ๋Š๋ฆฐ ์ž‘์—… ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

logLevel์„ 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด, MongoDB๋Š” slowOpSampleRate ์— ์˜ํ•ด ๊ฒฐ์ •๋˜๋Š” ์†๋„๋กœ ๋Š๋ฆฐ ์ž‘์—…์„ ์ง„๋‹จ ๋กœ๊ทธ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

logLevel์„ ๋” ๋†’๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๋†’์œผ๋ฉด ๋ชจ๋“  ์ž‘์—…์ด ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ๊ด€๊ณ„์—†์ด ์ง„๋‹จ ๋กœ๊ทธ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, ์„ธ์ปจ๋”๋ฆฌ์˜ ์ €์† oplog ํ•ญ๋ชฉ ๋ฉ”์‹œ์ง€ ๋กœ๊น…์€ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. ์„ธ์ปจ๋”๋ฆฌ ๋กœ๊ทธ๋Š” oplog ํ•ญ๋ชฉ๋งŒ ๊ธฐ๋กํ•˜๋ฉฐ, logLevel ์„ ๋†’์—ฌ๋„ ๋ชจ๋“  oplog ํ•ญ๋ชฉ์ด ๊ธฐ๋ก๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

mongod ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ์šฐ --slowms๋Š” ์ง„๋‹จ ๋กœ๊ทธ์™€ ํ”„๋กœํŒŒ์ผ๋Ÿฌ(ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ)์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

--slowOpSampleRate <double>

๊ธฐ๋ณธ๊ฐ’: 1.0

ํ”„๋กœํŒŒ์ผ๋งํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋กํ•ด์•ผ ํ•˜๋Š” ์ €์† ์ž‘์—…์˜ ๋น„์œจ์ž…๋‹ˆ๋‹ค. --slowOpSampleRate๋Š” 0 ์™€ 1์‚ฌ์ด์˜ ๊ฐ’์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

--slowOpSampleRate๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์„ธ์ปจ๋”๋ฆฌ ๊ตฌ์„ฑ์›์— ์˜ํ•œ ์ €์† oplog ํ•ญ๋ชฉ ๋กœ๊น…์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ธ์ปจ๋”๋ฆฌ ๊ตฌ์„ฑ์›์€ --slowOpSampleRate์™€ ๊ด€๊ณ„์—†์ด ์ €์† ์ž‘์—… ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋ชจ๋“  oplog ํ•ญ๋ชฉ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

mongod ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ์šฐ --slowOpSampleRate๋Š” ์ง„๋‹จ ๋กœ๊ทธ์™€ ํ”„๋กœํŒŒ์ผ๋Ÿฌ(ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ)์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

--auditCompressionMode

๋ฒ„์ „ 5.3์— ์ถ”๊ฐ€.

๊ฐ์‚ฌ ๋กœ๊ทธ ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ ์••์ถ• ๋ชจ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ --auditEncryptionKeyUID ๋˜๋Š” --auditLocalKeyFile์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์‚ฌ ๋กœ๊ทธ ์•”ํ˜ธํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--auditCompressionMode๋Š” ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

zstd

zstd ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค.

none (๊ธฐ๋ณธ๊ฐ’)

๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์••์ถ•ํ•˜์ง€ ๋งˆ์„ธ์š”.

์ฐธ๊ณ 

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MongoDB Enterprise์™€ Atlas์˜ ๊ตฌ์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

--auditDestination

๊ฐ์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  mongod์ด(๊ฐ€) ๊ฐ์‚ฌ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--auditDestination๋Š” ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

syslog

์‹œ์Šคํ…œ ๋กœ๊ทธ์— ๊ฐ์‚ฌ ์ด๋ฒคํŠธ๋ฅผ JSON ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. Windows์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ๋ฉ”์‹œ์ง€์˜ ์‹œ์Šคํ…œ ๋กœ๊ทธ ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€์€ info์ด๊ณ , ์‹œ์„ค ์ˆ˜์ค€์€ user์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ์ œํ•œ์œผ๋กœ ์ธํ•ด ๊ฐ์‚ฌ ๋ฉ”์‹œ์ง€๊ฐ€ ์ž˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ์‹œ์Šคํ…œ์€ ์ž˜๋ฆผ์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜๋ฉฐ, ์ž˜๋ฆผ์ด ๋ฐœ์ƒํ•จ์œผ๋กœ ์ธํ•œ ์˜ค๋ฅ˜๋„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

console

stdout์— ๊ฐ์‚ฌ ์ด๋ฒคํŠธ๋ฅผ JSON ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

file

--auditFormat์— --auditPath์ง€์ •๋œ ํ˜•์‹์œผ๋กœ ์— ์ง€์ •๋œ ํŒŒ์ผ ์— ๊ฐ์‚ฌ ์ด๋ฒคํŠธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB Enterprise ๋ฐ MongoDB Atlas์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--auditEncryptionKeyUID

๋ฒ„์ „ 6.0์— ์ถ”๊ฐ€.

๊ฐ์‚ฌ ๋กœ๊ทธ ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ Key Management Interoperability Protocol(KMIP) ํ‚ค์˜ ๊ณ ์œ  ์‹๋ณ„์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--auditEncryptionKeyUID์™€ --auditLocalKeyFile์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MongoDB Enterprise์™€ Atlas์˜ ๊ตฌ์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

--auditFormat

--auditDestination์ด file์ธ ๊ฒฝ์šฐ ๊ฐ์‚ฌ ์ถœ๋ ฅ ํŒŒ์ผ์˜ ํ˜•์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --auditFormat ์˜ต์…˜์€ ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

JSON

--auditPath์—์ง€์ •๋œ ํŒŒ์ผ ์— ๊ฐ์‚ฌ ์ด๋ฒคํŠธ๋ฅผ JSON ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

BSON

๊ฐ์‚ฌ ์ด๋ฒคํŠธ๋ฅผ BSON ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์œผ๋กœ ์— ์ง€์ •๋œ ํŒŒ์ผ --auditPath ์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ์ด๋ฒคํŠธ๋ฅผ JSON ํ˜•์‹์œผ๋กœ ํŒŒ์ผ์— ์ถœ๋ ฅํ•˜๋ฉด BSON ํ˜•์‹์œผ๋กœ ํŒŒ์ผ์— ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์„œ๋ฒ„ ์„ฑ๋Šฅ์ด ๋” ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB Enterprise ๋ฐ MongoDB Atlas์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--auditLocalKeyFile

๋ฒ„์ „ 5.3์— ์ถ”๊ฐ€.

๊ฐ์‚ฌ ๋กœ๊ทธ ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ ๋กœ์ปฌ ๊ฐ์‚ฌ ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์™€ ํŒŒ์ผ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

ํ‚ค๊ฐ€ ๋ณดํ˜ธ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ --auditLocalKeyFile์€ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”. ํ‚ค๋ฅผ ๋ณดํ˜ธํ•˜๋ ค๋ฉด --auditEncryptionKeyUID์™€ ์™ธ๋ถ€ Key Management Interoperability Protocol(KMIP) ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

--auditLocalKeyFile์™€ --auditEncryptionKeyUID์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MongoDB Enterprise์™€ Atlas์˜ ๊ตฌ์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

--auditPath

--auditDestination์˜ ๊ฐ’์ด file์ธ ๊ฒฝ์šฐ ๊ฐ์‚ฌ ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --auditPath ์˜ต์…˜์€ ์ „์ฒด ๊ฒฝ๋กœ ์ด๋ฆ„ ๋˜๋Š” ์ƒ๋Œ€ ๊ฒฝ๋กœ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB Enterprise ๋ฐ MongoDB Atlas์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--auditFilter

๊ฐ์‚ฌ ์‹œ์Šคํ…œ์—์„œ ๊ธฐ๋กํ•˜๋Š” ์ž‘์—… ์œ ํ˜•์„ ์ œํ•œํ•˜๋Š” ํ•„ํ„ฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ฟผ๋ฆฌ ๋ฌธ์„œ์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด์„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

{ <field1>: <expression1>, ... }

<field>์€(๋Š”) param ๋ฌธ์„œ์—์„œ ๋ฐ˜ํ™˜๋œ ํ•„๋“œ๋ฅผ ํฌํ•จํ•ด ๊ฐ์‚ฌ ๋ฉ”์‹œ์ง€์— ์žˆ๋Š” ๊ทธ ์–ด๋–ค ํ•„๋“œ๋„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. <expression>์€(๋Š”) ์ฟผ๋ฆฌ ์กฐ๊ฑด ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค.

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

๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ๊ฐ์‚ฌ ํ•„ํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ ํŒŒ์ผ์˜ YAML ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB Enterprise ๋ฐ MongoDB Atlas์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--auditSchema

๊ธฐ๋ณธ๊ฐ’: mongo

๋ฒ„์ „ 8.0์— ์ถ”๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ๋กœ๊ทธ์— ์‚ฌ์šฉ๋˜๋Š” ํ˜•์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --auditSchema์— ๋Œ€ํ•ด ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

mongo

๋กœ๊ทธ๋Š” MongoDB์—์„œ ์„ค๊ณ„ํ•œ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด์„œ๋Š” mongo ์Šคํ‚ค๋งˆ ๊ฐ์‚ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

OCSF

๋กœ๊ทธ๋Š” OCSF ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋กœ๊ทธ ํ”„๋กœ์„ธ์„œ์™€ ํ˜ธํ™˜๋˜๋Š” ํ‘œ์ค€ํ™”๋œ ํ˜•์‹์˜ ๋กœ๊ทธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋Š” OCSF ์Šคํ‚ค๋งˆ ๊ฐ์‚ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

--inMemorySizeGB <float>

๊ธฐ๋ณธ๊ฐ’: ๋ฌผ๋ฆฌ์  RAM์—์„œ 1GB๋ฅผ ๋บ€ ๊ฐ’์˜ 50%

์ธ๋ฑ์Šค, oplog(mongod๊ฐ€ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ), ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๋กฏํ•ด ์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๋ฐ์ดํ„ฐ์— ํ• ๋‹นํ•  ๋ฉ”๋ชจ๋ฆฌ์˜ ์ตœ๋Œ€๋Ÿ‰์ž…๋‹ˆ๋‹ค.

๊ฐ’์˜ ๋ฒ”์œ„๋Š” 256MB์—์„œ 10TB๊นŒ์ง€์ด๋ฉฐ, ๋ถ€๋™ ์†Œ์ˆ˜์ ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์€ ๋ฌผ๋ฆฌ์  RAM์—์„œ 1GB๋ฅผ ๋บ€ ๊ฐ’์˜ 50%๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ธฐ๋ณธ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--enableEncryption

๊ธฐ๋ณธ๊ฐ’: false

WiredTiger ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์˜ ์•”ํ˜ธํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™” ํ‚ค์™€ ๊ตฌ์„ฑ์„ ์ „๋‹ฌํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--encryptionCipherMode <string>

๊ธฐ๋ณธ๊ฐ’: AES256-CBC

๋ฏธ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•”ํ˜ธํ™” ๋ชจ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ชจ๋“œ
์„ค๋ช…

AES256-CBC

Cipher Block Chaining ๋ชจ๋“œ์—์„œ 256๋น„ํŠธ ๊ณ ๊ธ‰ ์•”ํ˜ธํ™” ํ‘œ์ค€

AES256-GCM

Galois/Counter ๋ชจ๋“œ์—์„œ 256๋น„ํŠธ ๊ณ ๊ธ‰ ์•”ํ˜ธํ™” ํ‘œ์ค€

Linux์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows์˜ MongoDB Enterprise๋Š” ๋” ์ด์ƒ ์ €์žฅ๋œ ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ ๋ธ”๋ก ์•”ํ˜ธ๋กœ AES256-GCM ์„(๋ฅผ) ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ ๋ฐฉ์‹์€ Linux์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--encryptionKeyFile <string>

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

ํ‚คํŒŒ์ผ์—๋Š” ํ•˜๋‚˜์˜ ํ‚ค๋งŒ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๋Š” 16์ž ๋˜๋Š” 32์ž ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

--enableEncryption์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipKeyIdentifier <string>

KMIP ์„œ๋ฒ„์— ์žˆ๋Š” ๊ธฐ์กด ํ‚ค์˜ ๊ณ ์œ  KMIP ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. ์‹๋ณ„์ž์™€ ์—ฐ๊ฒฐ๋œ ํ‚ค๋ฅผ ์‹œ์Šคํ…œ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ mongod ์ธ์Šคํ„ด์Šค์˜ ์•”ํ˜ธํ™”๋ฅผ ์ฒ˜์Œ ํ™œ์„ฑํ™”ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --enableEncryption์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ง€์ •๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ MongoDB๋Š” KMIP ์„œ๋ฒ„์— ์‹œ์Šคํ…œ ํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ƒˆ๋กœ์šด ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

KMIP ์„œ๋ฒ„๊ฐ€ ์ง€์ •๋œ ์‹๋ณ„์ž์˜ ํ‚ค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ MongoDB๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipRotateMasterKey <boolean>

๊ธฐ๋ณธ๊ฐ’: false

์ฐธ์ธ ๊ฒฝ์šฐ, ๋งˆ์Šคํ„ฐํ‚ค๋ฅผ ์ˆœํ™˜์‹œํ‚ค๊ณ  ๋‚ด๋ถ€ ํ‚ค ์ €์žฅ์†Œ๋ฅผ ๋‹ค์‹œ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

--kmipServerName <string>

์—ฐ๊ฒฐํ•  KMIP ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. --enableEncryption ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ KMIP ์„œ๋ฒ„๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: server1.example.com,server2.example.com). ์Šคํƒ€ํŠธ์—… ์‹œ mongod๋Š” ๋‚˜์—ด๋œ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์„ค์ •์„ ์‹œ๋„ํ•˜๊ณ , ์—ฐ๊ฒฐ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. KMIP ์„œ๋ฒ„ ์„ ํƒ์€ ์Šคํƒ€ํŠธ์—… ์‹œ์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

KMIP ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ๋•Œ mongod๋Š” ์ง€์ •๋œ --kmipServerName์ด KMIP ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•œ ์ธ์ฆ์„œ์˜ ์ฃผ์ฒด ๋Œ€์ฒด ์ด๋ฆ„ SAN(SAN์ด ์—†๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜ ์ด๋ฆ„ CN)๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. SAN์ด ์žˆ๋Š” ๊ฒฝ์šฐ mongod๋Š” CN๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด SAN(๋˜๋Š” CN)๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ mongod๋Š” ์—ฐ๊ฒฐ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

MongoDB 4.2๋ถ€ํ„ฐ๋Š” SAN ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ MongoDB์—์„œ DNS ์ด๋ฆ„ ๋˜๋Š” IP ์ฃผ์†Œ ๋น„๊ต๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” MongoDB์—์„œ DNS ์ด๋ฆ„ ๋น„๊ต๋งŒ ์ง€์›๋์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipPort <number>

๊ธฐ๋ณธ๊ฐ’: 5696

KMIP ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. --kmipServerName์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. --enableEncryption์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

--kmipServerName๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ KMIP ์„œ๋ฒ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ mongod๋Š” ์ œ๊ณต๋œ ๋ชจ๋“  KMIP ์„œ๋ฒ„์— ๋Œ€ํ•ด --kmipPort๋กœ ์ง€์ •๋œ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipConnectRetries <number>

๊ธฐ๋ณธ๊ฐ’: 0

KMIP ์„œ๋ฒ„ ์ดˆ๊ธฐ ์—ฐ๊ฒฐ์„ ์žฌ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. --kmipConnectTimeoutMS์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด mongod๊ฐ€ ๋‹ค์Œ ์žฌ์‹œ๋„๋ฅผ ํ•  ๋•Œ๊นŒ์ง€ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipConnectTimeoutMS <number>

๊ธฐ๋ณธ๊ฐ’: 5000

KMIP ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆด ๋•Œ ํƒ€์ž„์•„์›ƒ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค. --kmipConnectRetries ์„ค์ •์ด ๋ช…์‹œ๋œ ๊ฒฝ์šฐ mongod๋Š” ์ด ์‹œ๊ฐ„ ๋™์•ˆ ๋‹ค์Œ ์žฌ์‹œ๋„๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

๊ฐ’์€ 1000 ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipClientCertificateSelector <string>

5.0๋ฒ„์ „์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ: --kmipClientCertificateFile ๋Œ€์‹  Windows ๋ฐ macOS์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipClientCertificateFile ๋ฐ --kmipClientCertificateSelector ์˜ต์…˜์€ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ž…๋‹ˆ๋‹ค. ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์šด์˜ ์ฒด์ œ์˜ ์ธ์ฆ์„œ ์ €์žฅ์†Œ์—์„œ ์ผ์น˜ํ•˜๋Š” ์ธ์ฆ์„œ๋ฅผ ์„ ํƒํ•ด MongoDB๋ฅผ KMIP ์„œ๋ฒ„์— ์ธ์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ธ์ฆ์„œ ์†์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--kmipClientCertificateSelector๋Š” <property>=<value> ํ˜•์‹์˜ ์ธ์ˆ˜๋ฅผ ๋ฐ›์œผ๋ฉฐ, ์—ฌ๊ธฐ์„œ ์†์„ฑ์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†์„ฑ
๊ฐ’ ์œ ํ˜•
์„ค๋ช…

subject

ASCII ๋ฌธ์ž์—ด

์ธ์ฆ์„œ์˜ ์ฃผ์ฒด ์ด๋ฆ„ ๋˜๋Š” ์ผ๋ฐ˜ ์ด๋ฆ„

thumbprint

16์ง„์ˆ˜ ๋ฌธ์ž์—ด

16์ง„์ˆ˜๋กœ ํ‘œํ˜„๋˜๋Š” ์ผ๋ จ์˜ ๋ฐ”์ดํŠธ๋กœ, SHA-1 ๋‹ค์ด์ œ์ŠคํŠธ๋กœ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

thumbprint์„(๋ฅผ) fingerprint(์ด)๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipClientCertificateFile <string>

KMIP ์„œ๋ฒ„์— MongoDB๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” .pem ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ํ‘œ์‹œ๋œ .pem ํŒŒ์ผ์—๋Š” TLS/SSL ์ธ์ฆ์„œ์™€ ํ‚ค๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด --kmipServerName ์˜ต์…˜๋„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

--kmipClientCertificateFile ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  KMIP ์„œ๋ฒ„๊ฐ€ TLS 1.2 ์„(๋ฅผ) ์‹œํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ Windows์—์„œ KMIP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•œ ์•”ํ˜ธํ™” ํ™œ์„ฑํ™”๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Windows์—์„œ KMIP๋ฅผ ์‚ฌ์šฉํ•œ ๋ฏธ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋ฅผ Windows ์ธ์ฆ์„œ ์ €์žฅ์†Œ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  • --kmipClientCertificateSelector ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

macOS๋‚˜ Windows์—์„œ๋Š” PEM ํ‚ค ํŒŒ์ผ ๋Œ€์‹  ์šด์˜ ์ฒด์ œ์˜ ๋ณด์•ˆ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --kmipClientCertificateSelector(์„)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipClientCertificatePassword <string>

KMIP ์„œ๋ฒ„ ์— ์—ฐ๊ฒฐํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ์˜ ๊ฐœ์ธ ํ‚ค๋ฅผ ํ•ด๋…ํ•˜๊ธฐ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ KMIP ์„œ๋ฒ„ ์— MongoDB ์ธ์ฆํ•˜๋ฉฐ ์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.--kmipClientCertificateFile

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipServerCAFile <string>

CA ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. KMIP ์„œ๋ฒ„์— ๋Œ€ํ•œ ๋ณด์•ˆ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

macOS๋‚˜ Windows์—์„œ๋Š” PEM ํ‚ค ํŒŒ์ผ ๋Œ€์‹  ์šด์˜ ์ฒด์ œ์˜ ๋ณด์•ˆ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ --kmipClientCertificateSelector๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ๋ณด์•ˆ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ --kmipServerCAFile์„ ๋ฐ˜๋“œ์‹œ ์ง€์ •ํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

--kmipActivateKeys <boolean>

๊ธฐ๋ณธ๊ฐ’: true

๋ฒ„์ „ 5.3์— ์ถ”๊ฐ€.

ํ‚ค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ชจ๋“  KMIP ํ‚ค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ , ์ด๋Ÿฌํ•œ ํ‚ค๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ์— ์žˆ๋Š”์ง€ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

--kmipActivateKeys๊ฐ€ true์ด๊ณ  KMIP ์„œ๋ฒ„์— ๊ธฐ์กด ํ‚ค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋จผ์ € ํ‚ค๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด mongod ๋…ธ๋“œ๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

mongod์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ํ‚ค๊ฐ€ ๋น„ํ™œ์„ฑ ์ƒํƒœ๋กœ ์ „ํ™˜๋˜๋ฉด, kmipActivateKeys๊ฐ€ ๊ฑฐ์ง“์ด ์•„๋‹Œ ํ•œ mongod ๋…ธ๋“œ๋Š” ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ํ™œ์„ฑ ํ‚ค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด --kmipRotateMasterKey๋ฅผ ์‚ฌ์šฉํ•ด KMIP ๋งˆ์Šคํ„ฐํ‚ค๋ฅผ ์ˆœํ™˜ํ•ฉ๋‹ˆ๋‹ค.

--kmipKeyStatePollingSeconds <integer>

๊ธฐ๋ณธ๊ฐ’: 900์ดˆ

๋ฒ„์ „ 5.3์— ์ถ”๊ฐ€.

mongod์ด(๊ฐ€) ํ™œ์„ฑ ํ‚ค๋ฅผ ์œ„ํ•ด KMIP ์„œ๋ฒ„๋ฅผ ํด๋งํ•˜๋Š” ๋นˆ๋„(์ดˆ)์ž…๋‹ˆ๋‹ค.

ํด๋ง ๋น„ํ™œ์„ฑํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๊ฐ’์„ -1 ~๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

--kmipUseLegacyProtocol <boolean>

๊ธฐ๋ณธ๊ฐ’: false

๋ฒ„์ „ 7.0์— ์ถ”๊ฐ€๋จ: (๋ฐ 6.0.6)

true์ผ ๋•Œ mongod์€(๋Š”) ๊ธฐ๋ณธ ๋ฒ„์ „ ๋Œ€์‹  KMIP ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „์ธ 1.0 ๋˜๋Š” 1.1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ KMIP ํ”„๋กœํ† ์ฝœ์€ ๋ฒ„์ „ 1.2์ž…๋‹ˆ๋‹ค.

KMIP ๋ฒ„์ „ 1.0 ๋˜๋Š” 1.1์—์„œ ๊ฐ์‚ฌ ๋กœ๊ทธ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์Šคํƒ€ํŠธ์—… ์‹œ auditEncryptKeyWithKMIPGet์„(๋ฅผ) ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--eseDatabaseKeyRollover

AES256-GCM ์•”ํ˜ธ๋กœ ๊ตฌ์„ฑ๋œ ์•”ํ˜ธํ™”๋œ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ‚ค๋ฅผ ๋กค์˜ค๋ฒ„ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์œผ๋กœ mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ํ‚ค๋ฅผ ์ˆœํ™˜ํ•œ ํ›„ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธฐ๋Šฅ

MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.