MongoDB ๋ฐฑ์ ์์ ์์ฒด ๊ด๋ฆฌํ ๋ณต์ ๋ณธ ์ธํธ ๋ณต์ํ๊ธฐ
์ด ํ์ด์ง์ ๋ด์ฉ
์ด ์ ์ฐจ์์๋ MongoDB ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ ๋ณต์ ๋ณธ ์ธํธ๋ก ๋ณต์ํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํฉ๋๋ค. ํ๋ก๋์ ๋ฐฑ์ ์์ ํ ์คํธ ๋ฐฐํฌ์๋ฒ๋ฅผ ์๋ฉํ๊ฑฐ๋ ์ฌํด ๋ณต๊ตฌ์ ์ผํ์ผ๋ก ์ด๋ฌํ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
์ค์
๋จ์ผ ๋ฐ์ดํฐ ์ธํธ๋ฅผ 3๊ฐ์ ์๋ก์ด mongod
์ธ์คํด์ค๋ก ๋ณต์ํ๊ณ ๊ทธ ํ์ ๋ณต์ ๋ณธ ์ธํธ์ ๋ง๋ค ์๋ ์์ต๋๋ค. ๊ฐ mongod
์ธ์คํด์ค์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ณต์ฌํ ๋ค์ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ๋ง๋ค๋ฉด MongoDB์์ ์ธ์ปจ๋๋ฆฌ๊ฐ ์ด๊ธฐ ๋๊ธฐํ๋ฅผ ์ํํ๋๋ก ํฉ๋๋ค. ์ด ๋ฌธ์์ ์ ์ฐจ๋ ๋ณต์๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ ํํ๊ณ ํจ์จ์ ์ผ๋ก ๋ฐฐํฌํ๋ ์ค๋ช
ํฉ๋๋ค.
๋ํ mongorestore
๋ฅผ ์ฌ์ฉํด mongodump
๋ก ์์ฑํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ๋ณต์ํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ MongoDB ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด ๊ด๋ฆฌํ ๋ฐฐํฌ ๋ฐฑ์
๋ฐ ๋ณต์์ ์ฐธ์กฐํ์ธ์.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋จ์ผ ๋ ธ๋ ๋ณต์ ๋ณธ ์ธํธ๋ก ๋ณต์ํ๊ธฐ
๋ฐฑ์ MongoDB ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ๊ฐ์ ธ์ต๋๋ค.
๋ฐฑ์ ํ์ผ์ ํ์ผ ์์คํ ์ค๋ ์ท์์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. MongoDB Cloud Manager๋ ์ ์ฅ๋ ์ค๋ ์ท๊ณผ ํน์ ์์ ์ค๋ ์ท์ ๋ํ MongoDB database ํ์ผ์ ์์ฑํฉ๋๋ค. MongoDB Enterprise Advanced์์ ์ฌ์ฉํ ์ ์๋ ์จํ๋ ๋ฏธ์ค ์๋ฃจ์ Ops Manager์ ๊ฒฝ์ฐ Ops Manager ๋ฐฑ์ ๊ฐ์๋ ์ฐธ์กฐํ์ธ์.
- ์ํธํ๋ ์คํ ๋ฆฌ์ง ์์ง์ ๋ํ ๊ณ ๋ ค ์ฌํญ
AES256-GCM
์ํธํ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ์ํธํ ์คํ ๋ฆฌ์ง ์์ง์ ๊ฒฝ์ฐAES256-GCM
์ด ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ํค์ ํจ๊ป ๊ณ ์ ํ ์นด์ดํฐ ๋ธ๋ก ๊ฐ์ ์ฌ์ฉํ๋๋ก ์๊ตฌํฉ๋๋ค.AES256-GCM
์ํธ๋ก ๊ตฌ์ฑ๋ ์ํธํ ์คํ ๋ฆฌ์ง ์์ง encrypted ์คํ ๋ฆฌ์ง ์์ง์ ๊ฒฝ์ฐ- ํซ ๋ฐฑ์ ์์ ๋ณต์
- 4.2๋ถํฐ "hot" ๋ฐฑ์
์ ํตํด ๊ฐ์ ธ์จ ํ์ผ์์ ๋ณต์ํ๋ ๊ฒฝ์ฐ(์ฆ,
mongod
๊ฐ ์คํ ์ค์ผ ๋), MongoDB๋ ์์ ์ "๋ํฐ" ํค๋ฅผ ๊ฐ์งํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํค๋ฅผ ์๋์ผ๋ก ๋กค์ค๋ฒํ์ฌ IV(์ด๊ธฐํ ๋ฒกํฐ) ์ฌ์ฌ์ฉ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๋ฐฑ์ ์์ ๋ณต์
๊ทธ๋ฌ๋ "cold" ๋ฐฑ์ ์ ํตํด ๊ฐ์ ธ์จ ํ์ผ์์ ๋ณต์ํ๋ ๊ฒฝ์ฐ(์ฆ,
mongod
๊ฐ ์คํ ์ค์ด ์๋ ๊ฒฝ์ฐ), MongoDB๋ ์์ ์ "๋ํฐ" ํค๋ฅผ ๊ฐ์งํ ์ ์์ผ๋ฉฐ, IV๋ฅผ ์ฌ์ฌ์ฉํ๋ฉด ๊ธฐ๋ฐ์ฑ ๋ฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฆ์ด ๋ฌดํจํ๋ฉ๋๋ค.4.2๋ถํฐ ์ฝ๋ ํ์ผ ์์คํ ์ค๋ ์ท์์ ๋ณต์ํ ํ ํค ์ฌ์ฌ์ฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด MongoDB๋ ์๋ก์ด ๋ช ๋ น์ค ์ต์
--eseDatabaseKeyRollover
๋ฅผ ์ถ๊ฐํฉ๋๋ค.--eseDatabaseKeyRollover
์ต์ ์ผ๋ก ์์ํ๋ฉดmongod
์ธ์คํด์ค๋AES256-GCM
์ํธ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํค๋ฅผ ๋กค์ค๋ฒํ๊ณ ์ข ๋ฃํฉ๋๋ค.
๋ฐฑ์
์ local
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ ๊ฒฝ์ฐ ์ ๊ฑฐํฉ๋๋ค.
ํ์ผ ์์คํ
๋ฐฑ์
(๋๋ local
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํฌํจ๋ ๋ฐฑ์
)์์ ๋ณต์ํ๋ ๊ฒฝ์ฐ local
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
๋ฐฑ์
์ ๋ฐ์ดํฐ ํ์ผ์ ๋ฐ์ดํฐ ๊ฒฝ๋ก๋ก ์ฌ์ฉํ์ฌ ๋
๋ฆฝํ mongod
๋ฅผ ์์ํฉ๋๋ค.
๋ํ ์ค๋ ์ท์ ๋ง๋ค ๋ ์ฌ์ฉํ ๊ฒ๊ณผ ๋์ผํ ์์ ์ต์ ์ ์ง์ ํด์ผ ํฉ๋๋ค.
mongod --dbpath /data/db <startup options>
local
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
mongosh
๋ฅผ mongod
์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ local
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
use local db.dropDatabase()
๋ ๋ฆฝํ์ ์ข ๋ฃํฉ๋๋ค.
์ ๋จ์ผ ๋ ธ๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์์ํฉ๋๋ค.
mongod
์ธ์คํด์ค๋ฅผ ์ ๋จ์ผ ๋
ธ๋ ๋ณต์ ๋ณธ ์ธํธ๋ก ์์ํฉ๋๋ค. --dbpath
์ต์
์ ์ฌ์ฉํ์ฌ ๋ฐฑ์
๋ฐ์ดํฐ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๊ณ --replSet
์ ์ฌ์ฉํ์ฌ ๋ณต์ ๋ณธ ์ธํธ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. config ์๋ฒ ๋ณต์ ๋ณธ ์ธํธ(CSRS)์ ๊ฒฝ์ฐ --configsvr
์ต์
์ ํฌํจํฉ๋๋ค. ๋ฐฐํฌ์๋ฒ์ ์ ํฉํ ๋ค๋ฅธ ์ต์
์ ํฌํจํ ์ ์์ต๋๋ค.
๋ํ ์ค๋ ์ท์ ๋ง๋ค ๋ ์ฌ์ฉํ ๊ฒ๊ณผ ๋์ผํ ์์ ์ต์ ์ ์ง์ ํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ
๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๊ฐ ๋ค๋ฅธ ํธ์คํธ์์ ์คํ๋๊ฑฐ๋ ์๊ฒฉ ํด๋ผ์ด์ธํธ์ ์ธ์คํด์ค ์ฐ๊ฒฐ์ ์ง์ํ๋ ค๋ฉด net.bindIp
์ค์ (๋๋ --bind_ip
)์ ์ง์ ํด์ผ ํฉ๋๋ค.
๊ฒฝ๊ณ
์ธ์คํด์ค๋ฅผ ๊ณต๊ฐ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ IP ์ฃผ์์ ๋ฐ์ธ๋ฉํ๊ธฐ ์ ์ ๋ฌด๋จ ์ ๊ทผ์ผ๋ก๋ถํฐ ํด๋ฌ์คํฐ๋ฅผ ๋ณดํธํด์ผ ํฉ๋๋ค. ๋ณด์ ๊ถ์ฅ ์ฌํญ์ ์ ์ฒด ๋ชฉ๋ก์ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์๋ฒ์ ๋ํ ๋ณด์ ๊ฒ์ฌ ๋ชฉ๋ก์ ์ฐธ์กฐํ์ธ์. ์ต์ํ ์ธ์ฆ์ ํ์ฑํํ๊ณ ๋คํธ์ํฌ ์ธํ๋ผ๋ฅผ ๊ฐํํ๋ ๊ฒ์ ๊ณ ๋ คํฉ๋๋ค.
mongod --dbpath /data/db --replSet <replName> <startup options>
์ฐธ๊ณ
๋ชจ๋ MongoDB ์ปฌ๋ ์ ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก UUID๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. MongoDB๊ฐ ์ปฌ๋ ์ ์ ๋ณต์ํ ๋ ๋ณต์๋ ์ปฌ๋ ์ ์ ๋ณธ๋์ UUID๋ฅผ ์ ์งํฉ๋๋ค. UUID๊ฐ ์๋ ์ปฌ๋ ์ ์ ๋ณต์ํ๋ ๊ฒฝ์ฐ, MongoDB๋ ๋ณต์๋ ์ปฌ๋ ์ ์ ๋ํ UUID๋ฅผ ์์ฑํฉ๋๋ค.
์ปฌ๋ ์ UUID์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ปฌ๋ ์ ์ ์ฐธ์กฐํ์ธ์.
mongosh
mongod
๋ฅผ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
mongod
์ค ํ๋(์ด ํํ ๋ฆฌ์ผ์์๋ mongodb0.example.net
)๊ฐ ์คํ ์ค์ธ ๋์ผํ ๋จธ์ ์์๋ mongosh
๋ฅผ ์์ํฉ๋๋ค. mongod
27017
์ ๊ธฐ๋ณธ ํฌํธ์์ ๋ก์ปฌ ํธ์คํธ๋ฅผ ์์ ๋๊ธฐ ์ค์ธ mongod
์ ์ฐ๊ฒฐํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์คํํ๋ฉด ๋ฉ๋๋ค.
mongosh
๊ฒฝ๋ก์ ๋ฐ๋ผ mongosh
๋ฐ์ด๋๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ผ ํ ์๋ ์์ต๋๋ค.
mongod
๊ฐ ๊ธฐ๋ณธ ํฌํธ์์ ์คํ๋์ง ์๋ ๊ฒฝ์ฐ, mongosh
์ --port
์ต์
์ ์ง์ ํฉ๋๋ค.
์ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์์ํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ์ ์ผํ ๋ฉค๋ฒ์์ rs.initiate()
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
rs.initiate( { _id : <replName>, members: [ { _id : 0, host : <host:port> } ] })
MongoDB๋ ํ์ฌ ๋ฉค๋ฒ๋ก ๊ตฌ์ฑ๋๋ฉฐ ๊ธฐ๋ณธ ๋ณต์ ๋ณธ ์ธํธ ๊ตฌ์ฑ์ ์ด์ฉํ๋ ์ธํธ๋ฅผ ์์ํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ๋ฉค๋ฒ ์ถ๊ฐ
MongoDB์์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค.
๊ฐ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ์๋์ผ๋ก ๋ณต์ฌํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ฐฐํฌํฉ๋๋ค.
์ฐธ๊ณ
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํฐ ๊ฒฝ์ฐ ์ด๊ธฐ ๋๊ธฐํ๋ฅผ ์๋ฃํ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ๊ฐ ํธ์คํธ์ ๋ณต์ฌํ๋ ๊ฒ์ด ๋ฐ๋์งํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ ๋ณต์ฌ ๋ฐ mongod
์ธ์คํด์ค ๋ค์ ์์
๋ค์ ์์ ์์๋ฅผ ์ฌ์ฉํ์ฌ MongoDB ๋ฐ์ดํฐ ํ์ผ์ ์ง์ ๋ณต์ฌํ์ฌ ๋ณต์ ๋ณธ ์ธํธ์ ์ถ๊ฐ ๋ฉค๋ฒ์ ๋ณต์๋ ๋ฐ์ดํฐ๋ฅผ '์๋ฉ'ํฉ๋๋ค.
๋ณต์ํ mongod
์ธ์คํด์ค๋ฅผ ์ข
๋ฃํฉ๋๋ค.
--shutdown
๋๋ db.shutdownServer()
๋ฅผ ์ฌ์ฉํ์ฌ ์ ์์ ์ผ๋ก ์ข
๋ฃํ ์ ์์ต๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ ์ธ์ปจ๋๋ฆฌ์ ๋ณต์ฌํฉ๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณต์ ๋ณธ ์ธํธ์ ๋ค๋ฅธ ๋ฉค๋ฒ์ dbPath
์ ๋ณต์ฌํฉ๋๋ค.
๋ณต์ํ mongod
์ธ์คํด์ค๋ฅผ ์์ํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
mongosh
์ธ์
์์ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ฐ๊ฒฐ๋ ์ํ๋ก ์ธ์ปจ๋๋ฆฌ๋ฅผ rs.add()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์ ๋ณธ ์ธํธ์ ์ถ๊ฐํฉ๋๋ค. ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์์ฒด ๊ด๋ฆฌ ๋ณต์ ๋ณธ ์ธํธ ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด๊ธฐ ๋๊ธฐํ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ปจ๋๋ฆฌ ์ ๋ฐ์ดํธ
๋ค์์ ์์ ์์๋ก ๊ธฐ๋ณธ ์ด๊ธฐ ๋๊ธฐํ ์์ ์ ์ฌ์ฉํ์ฌ ๋ณต์ ๋ณธ ์ธํธ์ ์ถ๊ฐ ๊ตฌ์ฑ์์ ๋ณต์๋ ๋ฐ์ดํฐ๋ก๋ฅผ '์๋ฉ'ํ ์ ์์ต๋๋ค.
๊ฐ ์์ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๋ํ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ๋ฅผ ๋น์๋๋ค.
์๋ฅผ ๋ค์ด ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ /data/db
์ storage.dbPath
๋๋ --dbpath
๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฐ๋์ ๊ธฐ์กด ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ๊ณ ๋น์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
๊ฐ ์๋น ๋ฉค๋ฒ๋ฅผ ๋ณต์ ๋ณธ ์ธํธ์ ์ถ๊ฐํฉ๋๋ค.
mongo
์
ธ์ ์ฌ์ฉํ์ฌ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ฐ๊ฒฐํ๊ณ rs.add()
๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์ ๋ณธ ์ธํธ์ ๊ฐ ์ธ์ปจ๋๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ๋ฉค๋ฒ๋ฅผ ์ถ๊ฐํ๋ฉด ์ด๊ธฐ ๋๊ธฐํ๋ฅผ ํตํด ํ๋ผ์ด๋จธ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฉค๋ฒ๋ก ๋ณต์ฌํฉ๋๋ค.