๋ ๋ฆฝํ ์์ฒด ๊ด๋ฆฌ mongod๋ฅผ ๋ณต์ ๋ณธ ์ธํธ๋ก ๋ณํ
๋
๋ฆฝํ mongod
์ธ์คํด์ค๋ ํ
์คํธ ๋ฐ ๊ฐ๋ฐ์ ์ ์ฉํฉ๋๋ค. ๋
๋ฆฝํ ์ธ์คํด์ค๋ ๋จ์ผ ์คํจ ์ง์ ์ด ๋ ์ ์์ผ๋ฏ๋ก ํ๋ก๋์
๋ฐฐํฌ์๋ฒ์๋ ์ ํฉํ์ง ์์ต๋๋ค. cluster๋ผ๊ณ ๋ ํ๋ ๋ณต์ ๋ณธ ์ธํธ๋ ์ค๋ณต์ฑ๊ณผ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํฉ๋๋ค. ํญ์ ํ๋ก๋์
ํ๊ฒฝ์์ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ฌ์ฉํ์ธ์.
ํ๋ก๋์ ์์ ์ฌ์ฉํ๋ ค๋ ๋ฐ์ดํฐ ํฌํจ ๋ ๋ฆฝํ ์๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ, ๋จผ์ ๋ ๋ฆฝํ ์๋ฒ๋ฅผ ๋ณต์ ๋ณธ ์ธํธ๋ก ๋ณํํฉ๋๋ค.
์ค์
ํ๋ก๋์ ์์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ๋ฐ ์๋ฒ๋ฅผ ๋ณต์ ๋ณธ ์ธํธ๋ก ๋ณํํ๋ ๊ฒฝ์ฐ, ํด๋ฌ์คํฐ๋ฅผ ์ธํฐ๋ท์ ๋ ธ์ถํ๊ธฐ ์ ์ ๋ณด์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ ๋ฆฝํ ์๋ฒ์์ MongoDB Atlas ํด๋ฌ์คํฐ๋ก ์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค. MongoDB Atlas๋ ํด๋ผ์ฐ๋์์์ MongoDB ๋ฐฐํฌ๋ฅผ ์ํ ์์ ๊ด๋ฆฌํ ์๋น์ค์ ๋๋ค. ์์ธํ ๋ด์ฉ์ MongoDB Atlas ์ค๋ช ์์์ ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ ๋๋ ๊ฐ์ ธ์ค๊ธฐ ๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ํ๊ธฐ ์ ์
ํด๋ฌ์คํฐ ์ ํ
๋ ๋ฆฝํ ์ธ์คํด์ค๋ฅผ ๋ณํํ๊ธฐ ์ ์ ๋ณต์ ๋ณธ ์ธํธ์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ์ค ์ด๋ ๊ฒ์ด ์ํฌ๋ก๋์ ๋ ์ ํฉํ์ง ๊ณ ๋ คํ์ธ์.
์ค๋ฉ๋ ํด๋ฌ์คํฐ๋ ํน๋ณํ ์ข ๋ฅ์ ํด๋ฌ์คํฐ์ ๋๋ค. ์ค๋ฉ๋ ํด๋ฌ์คํฐ๋ ์ค๋ณต์ฑ๊ณผ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํ๋ฉฐ, ์ค๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ์ํต๋๋ค. ์ค๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ์๋ฒ์์ ํธ์คํ ๋๋ฉฐ ์ํ ํ์ฅ์ด ๊ฐ๋ฅํฉ๋๋ค.
๊ถํ ๋ถ์ฌ
๋ณต์ ๋ณธ ์ธํธ์ ๊ถํ ๋ถ์ฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด X.509๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ฑฐ๋, ์ธ์ฆ์ ๋๋ ํค ํ์ผ์ ํ์ฌ ๋ด๋ถ ์ธ์ฆ๋ ์ํํด์ผ ํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์.
์ ์ฐจ
๋ ๋ฆฝํ ์ธ์คํด์ค๋ฅผ ์ข ๋ฃํฉ๋๋ค.
mongosh
(์)๋ฅผ ์ฌ์ฉํ์ฌ mongod
์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
mongosh
admin
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ ํํ๊ณ shutdown
์ ์คํํฉ๋๋ค.
use admin db.adminCommand( { shutdown: 1, comment: "Convert to cluster" } )
๋ณต์ ๋ณธ ์ธํธ ๋ ธ๋ ๊ตฌ์ฑ
๊ฐ ์๋ฒ์ ๊ตฌ์ฑ ํ์ผ์ ์
๋ฐ์ดํธํ๊ณ replSetName
์ค์ ์ ์ง์ ํฉ๋๋ค.
replication: replSetName: "rs0"
๋ฉค๋ฒ ์ธ์ฆ ๊ตฌ์ฑ
๋ณต์ ๋ณธ ์ธํธ์ ๊ฐ ์๋ฒ์ ๋ํ ๋ฉค๋ฒ ์ธ์ฆ์ ๊ตฌ์ฑํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ๊ฐ ๋ด๋ถ ๋ฉค๋ฒ ์ธ์ฆ์ ์ํด X.509 ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
์ค์ | ์ต์
| ์ค๋ช
|
---|---|---|
์ธ์ฆ์ ์ฌ์ฉํ TLS ๋ชจ๋๋ฅผ ์ค์ ํฉ๋๋ค. X.509 ์ธ์ฆ์ ์ธ์ฆ์ ์๊ตฌํ๋๋ก ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ์ด ์ต์
์ | ||
ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ์ํ TLS ์ธ์ฆ์๊ฐ ํฌํจ๋ | ||
์ธ์ฆ ๊ธฐ๊ด(CA)์ ๋ฃจํธ ์ธ์ฆ์ ์ฒด์ธ์ด ํฌํจ๋ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ค์ ํฉ๋๋ค. | ||
ํด๋ฌ์คํฐ ๋ฉค๋ฒ ์ฐ๊ฒฐ์ ์ํ TLS ์ธ์ฆ์๊ฐ ํฌํจ๋ | ||
ํด๋ฌ์คํฐ ๋ฉค๋ฒ๋ฅผ ์ธ์ฆํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ชจ๋๋ฅผ ์ค์ ํฉ๋๋ค. X.509 ์ธ์ฆ์ ์ฌ์ฉํ๋ ค๋ฉด ์ด ์ต์
์ |
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
replication: replSetName: "rs0" security: clusterAuthMode: x509 net: tls: mode: requireTLS certificateKeyFile: /etc/mongodb/client.pem CAFile: /etc/mongodb/ca.pem clusterFile: /etc/mongodb/member.pem
๋ด๋ถ ๋ฉค๋ฒ ์ธ์ฆ์ ํค ํ์ผ์ ์ฌ์ฉํ๋๋ก ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ธ์ฆ์ ์ํด์๋ ๊ฐ ๋ฉค๋ฒ๊ฐ ๋์ผํ ํค ํ์ผ์ ์ฌ๋ณธ์ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค.
์ค์ | ์ต์
| ์ค๋ช
|
---|---|---|
๋ณต์ ๋ณธ ์ธํธ ํค ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ค์ ํฉ๋๋ค. |
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
replication: replSetName: "rs0" security: keyFile: /etc/mongodb/keyfile
๊ถํ ๋ถ์ฌ ์์ด ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
๊ฒฝ๊ณ
๋คํธ์ํฌ๋ฅผ ํตํด ์ ๊ทผํ ์ ์๋ ๋ด๋ถ ๋ณต์ ๋ณธ ์ธํธ์๋ง ์ด ๊ตฌ์ฑ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ค์ | ์ต์
| ์ค๋ช
|
---|---|---|
MongoDB๊ฐ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ์์ ํ๋ ํธ์คํธ ์ด๋ฆ์ด๋ IP ์ฃผ์๋ฅผ ์ค์ ํฉ๋๋ค. ์๋ฒ์ ๋ํ ๋คํธ์ํฌ ์ก์ธ์ค๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด ์ด ์ต์
์ |
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
replication: replSetName: "rs0" net: bindIp: localhost
MongoDB ์์
๊ฐ ๋ฉค๋ฒ์ ๋ํด mongod
๋ฅผ ์์ํ์ธ์.
๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ด๊ธฐํํ๋ ค๋ฉด mongosh
๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ์ธ์คํด์ค์ ๋ค์ ์ฐ๊ฒฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ rs.initiate()
๋ฅผ ์คํํฉ๋๋ค.
rs.initiate()
๋ณต์ ๋ณธ ์ธํธ๋ ํ ๋ฒ๋ง ์์ํ๋ฉด ๋ฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ ๊ตฌ์ฑ์ ๋ณด๋ ค๋ฉด rs.conf()
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ์ํ๋ฅผ ํ์ธํ๋ ค๋ฉด rs.status()
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ ๋ณต์ ๋ณธ ์ธํธ์๋ ๋จ์ผ ํ๋ผ์ด๋จธ๋ฆฌ ๋ ธ๋๊ฐ ์์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ ๋ณต์ ๋ณธ ์ธํธ์ ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ธฐ ์ ์ ํด๋ฌ์คํฐ์ ๋ํ ์ค๋ช ์๋ฅผ ๊ฒํ ํ์ธ์.
๋
ธ๋๋ฅผ ์ถ๊ฐํ ์ค๋น๊ฐ ๋๋ฉด rs.add()
๋ฅผ ์ฌ์ฉํฉ๋๋ค.