๐ฏ ์์ฝ
| 1 | (sudo -iu root ํ์) openssl rand -base64 756 > mongo-keyfile |
| 2 | chmod 600 & chown mongod |
| 3 | ๋ชจ๋ ๋ ธ๋ /etc/mongo-keyfile๋ก SCP |
| 4 | mongod.conf์ authorization + keyFile ์ค์ |
| 5 | replica set ๋กค๋ง ์ฌ์์ |
| 6 | rs.status() ํ์ธ |
3์๋ฒ์ ์์ ํ ๋์ผํ mongo-keyfile์ด ๋ณต์ฌ๋์ด์ผ ํจ
์์ธ ์ค๋ช
:
MongoDB Replica Set์์ auth๋ฅผ ์ผ๋ ค๋ฉด ๋
ธ๋ ๊ฐ ์ธ์ฆ์ฉ keyFile์ ๋์ผํ๊ฒ ๋ง๋ค์ด์ ๋ชจ๋ ์๋ฒ์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค.
AWS EC2(๋ฆฌ๋
์ค) ๊ธฐ์ค์ผ๋ก MongoDB 5.0.23์์ ์ฌ์ฉํ ์ ์๋ ์์ ํ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ ๊ฒ์.
๐ Mongo KeyFile ์์ฑ & ๋ฐฐํฌ ์ ์ฐจ (EC2 / Linux)
๐ 1) EC2 ํ ๋์์ keyFile ์์ฑ
์๋ ๋ช ๋ น์ ์คํ (์ง๊ธ ๋ก๊ทธ์ธํ ์๋ฒ ์๋ฌด ๊ณณ์ด๋ ์๊ด์์):
- ํ์ผ ๊ธธ์ด๋ at least 32 bytes ํ์ํ์ง๋ง
MongoDB ๊ถ์ฅ๊ฐ์ธ 756 bytes ์ฌ์ฉ (5.x์์๋ OK) - ํ์ผ ์ด๋ฆ์ ์๋ฌด๊ฑฐ๋ ๊ฐ๋ฅ (mongo-keyfile, rs.key, ๋ฑ)
๐ 2) ๊ถํ ์ค์ (๋ฐ๋์ 600)
MongoDB๋ keyFile ๊ถํ์ด 600 ์๋๋ฉด ์คํ ์คํจํฉ๋๋ค.
(์์ ์๋ MongoDB ์ฌ์ฉ์๋ฉด ๋ ์์ ํจ)
๋ง์ฝ MongoDB ํ๋ก์ธ์ค๊ฐ mongod ์ ์ ๊ฐ ์๋ root๋ก ์คํ๋๊ณ ์๋ค๋ฉด
chown ํ์ง ์์๋ ๋จ. (๊ถ์ฅ X → ๋๋๋ก mongod ์ ์ ๋ก)
๐ 3) keyFile์ Replica Set ๋ชจ๋ ์๋ฒ์ ๋ณต์ฌ
๊ฐ EC2 ์ธ์คํด์ค์ SSH๋ก ๋ณต์ฌ:
๊ทธ๋ฆฌ๊ณ ๊ฐ ์๋ฒ์์ ๋ค์ ๊ถํ ์ฌํ์ธ:
3๊ฐ ๋ ธ๋๊ฐ ์์ ํ ๋์ผํ keyFile์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ ๋ ๊ฐ๊ฐ ์์ฑํ๋ฉด ์ ๋ฉ๋๋ค.
๐ 4) mongod.conf ์์ (๊ฐ ์๋ฒ ๊ณตํต)
/etc/mongod.conf ํ์ผ ํธ์ง:
๋๋ ๊ธฐ์กด์ security: ๋ธ๋ก์ด ์๋ค๋ฉด ์๋์ฒ๋ผ ํตํฉ:
keyFile ์ค์ + authorization์ ๊ฐ์ด ์จ์ผ ํฉ๋๋ค.
keyFile๋ง ๋ฃ๊ณ auth ์ ๋ฃ์ผ๋ฉด replica set ์ธ์ฆ๋ง ๋๊ณ ํด๋ผ์ด์ธํธ๋ ๋ฌด์กฐ๊ฑด ์คํจํฉ๋๋ค.
๐ 5) ๋ ธ๋๋ณ ๋กค๋ง ์ฌ์์
๊ฐ ์๋ฒ์์ ํ ๋์ฉ ์์๋๋ก:
๐จ ์ฃผ์
Primary๋ฅผ ๋ง์ง๋ง์ ์ฌ์์ํด์ผ ํฉ๋๋ค.
Secondary 2๋ → Primary ์์.
Primary ๋จผ์ ๋๋ฉด ๋ค์ดํ์ ๋ฐ์.
๐ 6) ์ํ ํ์ธ
Primary์ ์ ์ํ ํ:
์ ์ replica set์ด๋ฉด OK.
๐ง ์ถ๊ฐ Tip (AWS EC2 ์ด์ ์ ์ถ์ฒ)
โ KeyFile ๋ณด์์ ์ํด ๊ถ์ฅ
MongoDB๋ 600 ๋๋ 400 ๋ชจ๋ ํ์ฉํฉ๋๋ค.
โ EC2 UserData๋ก ์๋ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ
- Cloud-init์์ keyFile copy ํ chmod + chown ๋ฐ๋์ ์ ์ฉ
โ KeyFile Backup
- keyFile์ ๋ถ์คํ๋ฉด replica set์ด ์ ๋๋ก ๋ถํ ๋ชปํฉ๋๋ค.
- ์์ ํ S3/KMS ๋๋ Parameter Store์ ๋ฐฑ์ ๊ถ์ฅ



