.tgz tarball์ ์ฌ์ฉํ์ฌ Red Hat ๋๋ CentOS์ MongoDB Community๋ฅผ ์ค์นํฉ๋๋ค.
์ด ํ์ด์ง์ ๋ด์ฉ
๊ฐ์
์ด ํํ ๋ฆฌ์ผ์ ์ฌ์ฉํ์ฌ MongoDB 8.0 ์ ์๋์ผ๋ก ์ค์นํฉ๋๋ค. MongoDB Community Edition Red Hat Enterprise Linux, CentOS Linux ๋๋ Oracle Linux [1] ์์ ์ ์คํํ๋ ค๋ฉด ๋ค์ด๋ก๋ํ .tgz
tarball์ ์ฌ์ฉํฉ๋๋ค.
MongoDB ๋ฒ์
์ด ํํ ๋ฆฌ์ผ์์๋ MongoDB 8.0 ๋ฅผ ์ค์นํฉ๋๋ค. Community Edition. ๋ค๋ฅธ ๋ฒ์ ์ MongoDB Community๋ฅผ ์ค์นํ๋ ค๋ฉด ํ์ด์ง ์ผ์ชฝ ์๋จ์ ๋ฒ์ ๋๋กญ๋ค์ด ๋ฉ๋ด์์ ํด๋น ๋ฒ์ ์ ๋ํ ๋ฌธ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
์ค์น ๋ฐฉ๋ฒ
์ด ๋ฌธ์์ ์ค๋ช
๋๋ก ๋ค์ด๋ก๋ํ .tgz
tarball์ ํตํด MongoDB๋ฅผ ์๋์ผ๋ก ์ค์นํ ์ ์์ง๋ง ๊ฐ๋ฅํ๋ฉด ์์คํ
์ yum
ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ MongoDB๋ฅผ ์ค์นํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ํ ๋ชจ๋ ์ข
์ ํ๋ก๊ทธ๋จ์ด ์๋์ผ๋ก ์ค์น๋๊ณ , ์์์ ๋์์ด ๋๋ ์์ mongod.conf
ํ์ผ์ด ์ ๊ณต๋๋ฉฐ, ํฅํ ์
๊ทธ๋ ์ด๋ ๋ฐ ์ ์ง ๊ด๋ฆฌ ์์
์ด ๊ฐ์ํ๋ฉ๋๋ค.
์์ธํ ๋ด์ฉ์ yum ํจํค์ง ๊ด๋ฆฌ์ ๋ฅผ ์ฌ์ฉํ์ฌ MongoDB ์ค์น ๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ณ ๋ ค ์ฌํญ
MongoDB Shell mongosh
.tgz
ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ์ค์นํ๋ ๊ฒฝ์ฐ mongosh ์ค์น ์ง์นจ์ ๋ฐ๋ผ mongosh๋ฅผ ๋ณ๋๋ก ๋ค์ด๋ก๋ํ์ฌ ์ค์นํด์ผ ํฉ๋๋ค.
ํ๋ซํผ ์ง์
MongoDB 8.0 MongoDB Community Edition 64 LinuxCentOS LinuxOracle Linux 1์ Linux x86์์ Red Hat64 Enterprise (RHEL), , [ ] , Rocky ๋ฐ AlmaLinux [2] ์ ๋นํธ ๋ฒ์ ์ ์ง์ํฉ๋๋ค. _ ์ํคํ ์ฒ:
RHEL / CentOS Stream / Oracle / Rocky / AlmaLinux 9
RHEL / CentOS Stream / Oracle / Rocky / AlmaLinux 8
MongoDB๋ ์ด๋ฌํ ํ๋ซํผ์ 64๋นํธ ๋ฒ์ ๋ง ์ง์ํฉ๋๋ค.
RHEL/CentOS/Oracle/Rocky/AlmaLinux์ MongoDB 8.0 Community Edition์ ์ผ๋ถ ํ๋ซํผ์์ ARM64 ์ํคํ ์ฒ๋ ์ง์ํฉ๋๋ค.
์์ธํ ์ ๋ณด๋ ํ๋ซํผ ์ง์์์ ํ์ธํ ์ ์์ต๋๋ค.
[1] | (1, 2) MongoDB๋ Red Hat ํธํ ์ปค๋(RHCK)์ ์คํํ๋ Oracle Linux๋ง ์ง์ํฉ๋๋ค. MongoDB๋ UEK(Unbreakable Enterprise Kernel)๋ฅผ ์ง์ํ์ง ์์ต๋๋ค . |
[2] | RHEL ๋ฒ์ 8.0 ์ด์์ ์ง์ํ๋๋ก ์ถ์๋ MongoDB ์จํ๋ ๋ฏธ์ค ์ ํ์ ํด๋น ๋ฐฐํฌํ์ด ์์ ํ RHEL ํธํ์ฑ์ ์ ๊ณตํ ์๋ฌด๋ฅผ ์ถฉ์กฑํ๋ ๊ฒฝ์ฐ Rocky Linux ๋ฒ์ 8.0 ์ด์๊ณผ AlmaLinux ๋ฒ์ 8.0 ์ด์์ ํธํ ๋ฐ ์ง์ํฉ๋๋ค. |
ํ๋ก๋์ ์ ๋ณด
ํ๋ก๋์ MongoDB ๋ฐฐํฌ์ ๋ํ ์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ ๋ฐ ๊ตฌ์ฑ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํ๋ ์์ฒด ๊ด๋ฆฌํ ๋ฐฐํฌ๋ฅผ ์ํ ํ๋ก๋์ ๋ ธํธ ๋ฌธ์๋ฅผ ๊ฒํ ํ ์ดํ์ ํ๋ก๋์ ํ๊ฒฝ์ MongoDB๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
MongoDB Community Edition ์ค์น
์ ์ ์กฐ๊ฑด
์๋ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ MongoDB Community .tgz
tarball์ ํ์ํ ์ข
์์ฑ์ ์ค์นํฉ๋๋ค.
sudo yum install libcurl openssl xz-libs
์ ์ฐจ
๋ค์ ๋จ๊ณ์ ๋ฐ๋ผ .tgz
์์ MongoDB Community Edition์ ์๋์ผ๋ก ์ค์นํฉ๋๋ค.
ํ๋ฅด๋ณผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
ํ์ ์ฌ์ ํจํค์ง๋ฅผ ์ค์นํ ํ ๋ค์ ๋งํฌ์์ MongoDB Community tgz
tarball์ ๋ค์ด๋ก๋ํฉ๋๋ค.
โค MongoDB ๋ค์ด๋ก๋ ์ผํฐ
Version ๋๋กญ๋ค์ด ๋ฉ๋ด์์ ๋ค์ด๋ก๋ํ๋ ค๋ MongoDB ๋ฒ์ ์ ์ ํํฉ๋๋ค.
Platform ๋๋กญ๋ค์ด ๋ฉ๋ด์์ ์ด์ ์ฒด์ ๋ฒ์ ๋ฐ ์ํคํ ์ฒ๋ฅผ ์ ํํฉ๋๋ค.
Package ๋๋กญ๋ค์ด ๋ฉ๋ด์์ tgz๋ฅผ ์ ํํฉ๋๋ค.
Download๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ฐ์ด๋๋ฆฌ๊ฐ PATH
ํ๊ฒฝ ๋ณ์์ ๋์ด๋ ๋๋ ํ ๋ฆฌ์ ์๋์ง ํ์ธํ์ธ์.
MongoDB ๋ฐ์ด๋๋ฆฌ๋ tarball์ bin/
๋๋ ํฐ๋ฆฌ์ ์์ต๋๋ค. ๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ฐ์ด๋๋ฆฌ๋ฅผ
PATH
๋ณ์์ ๋์ด๋ ๋๋ ํ ๋ฆฌ(์:/usr/local/bin
์ ๋ณต์ฌํฉ๋๋ค (์ ์ ํ ์ค์น ๋๋ ํ ๋ฆฌ๋ก/path/to/the/mongodb-directory/
๋ฅผ ์ ๋ฐ์ดํธํ์ธ์).sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/ PATH
๋ณ์์ ๋์ด๋ ๋๋ ํ ๋ฆฌ (์:/usr/local/bin
)์์ ๋ฐ์ด๋๋ฆฌ์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋ญ๋๋ค (์ ์ ํ ์ค์น ๋๋ ํฐ๋ฆฌ๋ก/path/to/the/mongodb-directory/
๋ฅผ ์ ๋ฐ์ดํธํ์ธ์).sudo ln -s /path/to/the/mongodb-directory/bin/* /usr/local/bin/
MongoDB Shell(mongosh
)๋ฅผ ์ค์นํฉ๋๋ค.
์ค์น mongosh
๊ทธ ๋ค์ MongoDB Shell์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ์๋ฒ์ ์ฐ๊ฒฐํฉ๋๋ค.
MongoDB ๋ค์ด๋ก๋ ์ผํฐ์์ ํ์ํ mongosh
๋ฒ์ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์์ถ์ ํด์ ํฉ๋๋ค.
MongoDB Community Edition ์คํ
ulimit
๋๋ถ๋ถ์ Unix ๊ณ์ด ์ด์ ์ฒด์ ๋ ํ๋ก์ธ์ค ๊ฐ ์ฌ์ฉํ ์ ์๋ ์์คํ
๋ฆฌ์์ค๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ฌํ ์ ํ์ MongoDB ์์
์ ๋ถ์ ์ ์ธ ์ํฅ ์ ์์ผ๋ฏ๋ก ์กฐ์ ํด์ผ ํฉ๋๋ค. ํ๋ซํผ์ ๊ถ์ฅ ๋๋ ์ค์ ์ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์๋ฒ๋ฅผ ์ํ UNIX ulimit
์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ
์ด๋ ค ์๋ ํ์ผ ์์ ulimit
๊ฐ์ด 64000
๋ฏธ๋ง์ธ ๊ฒฝ์ฐ MongoDB๊ฐ ์์ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํฉ๋๋ค.
๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก
๋ค์๊ณผ ๊ฐ์ด ๊ธฐ๋ณธ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ธ์.
๊ธฐ๋ณธ์ ์ผ๋ก MongoDB๋ mongod
์ฌ์ฉ์ ๊ณ์ ์ ์ฌ์ฉํ์ฌ ์คํ๋๋ฉฐ ๋ค์ ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
/var/lib/mongo
(๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ)/var/log/mongodb
(๋ก๊ทธ ๋๋ ํ ๋ฆฌ)
MongoDB ๋ฐ์ดํฐ ๋ฐ ๋ก๊ทธ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค:
sudo mkdir -p /var/lib/mongo sudo mkdir -p /var/log/mongodb
๊ธฐ๋ณธ์ ์ผ๋ก MongoDB๋ mongod
์ฌ์ฉ์ ๊ณ์ ์ ์ฌ์ฉํ์ฌ ์คํ๋ฉ๋๋ค. mongod
์ mongodb
๊ทธ๋ฃน์ ์์ฑํ์ธ์.mongod
์ด ๊ทธ๋ฃน์ ์ํ๋์ง ํ์ธํ ๋ค์ ์ด๋ฌํ ๋๋ ํ ๋ฆฌ์ ์์ ์ ๋ฐ ๊ทธ๋ฃน์ mongod
๋ก ์ค์ ํฉ๋๋ค.
sudo chown -R mongod:mongod /var/lib/mongo sudo chown -R mongod:mongod /var/log/mongodb
๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ ์ฌ์ฉ
๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ ์ด์ธ์ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ ๋ฐ ๋ก๊ทธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.
์ ๋๋ ํ ๋ฆฌ๋ฅผ ํ๋ ์ด์ ์์ฑํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ
/etc/mongod.conf
๋ฅผ ํธ์งํ๊ณ ๊ทธ์ ๋ฐ๋ผ ๋ค์ ํ๋๋ฅผ ์์ ํฉ๋๋ค.storage.dbPath
๋ก ์๋ก์ด ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก ์ง์ (์:/some/data/directory
)systemLog.path
๋ก ์๋ก์ด ๋ก๊ทธ ํ์ผ ๊ฒฝ๋ก ์ง์ (์:/some/log/directory/mongod.log
)
MongoDB๋ฅผ ์คํํ๋ ์ฌ์ฉ์๊ฐ ๋๋ ํ ๋ฆฌ์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
sudo chown -R mongod:mongod <directory> MongoDB ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ์ฌ์ฉ์๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์๋ก์ด ์ฌ์ฉ์์๊ฒ ๋๋ ํ ๋ฆฌ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค.
SELinux๊ฐ ์ ์ฉ๋์ด ์๋ค๋ฉด, SELinux๋ฅผ ๊ตฌ์ฑํ์ธ์. ์์ธํ ๋ด์ฉ์ SELinux ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
SELinux ๊ตฌ์ฑ
๊ฒฝ๊ณ
๋ถ์ ์ ํ๊ฒ ๊ตฌ์ฑ๋ SELinux ์ ์ฑ
์ ์์ ํ์ง ์๊ฑฐ๋ mongod
์ธ์คํด์ค์ ์๋์ ์ค์ง์ํฌ ์ ์์ต๋๋ค.
SELinux๊ฐ enforcing
๋ชจ๋์ธ ๊ฒฝ์ฐ MongoDB์ ๋ํ SELinux ์ ์ฑ
์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ์ ์ง์ ํด์ผ ํฉ๋๋ค.
๋ค์์ ๋ํ ์ก์ธ์ค ํ์ฉ
cgroup
๋ค์์ ๋ํ ์ก์ธ์ค ํ์ฉ
netstat
๋ค์์ ๋ํ ์ก์ธ์ค ํ์ฉ cgroup
ํ์ฌ SELinux ์ ์ฑ
์ MongoDB ํ๋ก์ธ์ค๊ฐ ์์คํ
์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ํ์ํ /sys/fs/cgroup
์ ์ ๊ทผํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค.enforcing
๋ชจ๋์์ SELinux๋ฅผ ์คํํ๋ ค๋ฉด SELinux ์ ์ฑ
์ ๋ค์๊ณผ ๊ฐ์ด ์กฐ์ ํด์ผ ํฉ๋๋ค.
์์คํ ์
checkpolicy
ํจํค์ง๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํฉ๋๋ค:sudo yum install checkpolicy ์ฌ์ฉ์ ์ง์ ์ ์ฑ ํ์ผ
mongodb_cgroup_memory.te
์ ๋ง๋ญ๋๋ค.cat > mongodb_cgroup_memory.te <<EOF module mongodb_cgroup_memory 1.0; require { type cgroup_t; type mongod_t; class dir search; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir search; allow mongod_t cgroup_t:file { getattr open read }; EOF ์์ฑ๋๋ฉด ๋ค์ ์ธ ๊ฐ์ง ๋ช ๋ น์ ์คํํ์ฌ ์ฌ์ฉ์ ์ง์ ์ ์ฑ ๋ชจ๋์ ์ปดํ์ผํ๊ณ ๋ก๋ํฉ๋๋ค.
checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod sudo semodule -i mongodb_cgroup_memory.pp
์ด์ SELinux๋ฅผ enforcing
๋ก ์ค์ ํ์ฌ MongoDB ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฐ๋ฅธ ํ์ผ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
FTDC์ ๋ํ netstat
์ก์ธ์ค ํ์ฉ
ํ์ฌ SELinux ์ ์ฑ
์ MongoDB ํ๋ก์ธ์ค๊ฐ FTDC (ํํ์ ์ง๋จ ๋ฐ์ดํฐ ์บก์ฒ)์ ํ์ํ /proc/net/netstat
์ ์ด๊ณ ์ฝ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค.enforcing
๋ชจ๋์์ SELinux๋ฅผ ์คํํ๋ ค๋ฉด SELinux ์ ์ฑ
์ ๋ค์๊ณผ ๊ฐ์ด ์กฐ์ ํด์ผ ํฉ๋๋ค.
์์คํ ์
checkpolicy
ํจํค์ง๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํฉ๋๋ค:sudo yum install checkpolicy ์ฌ์ฉ์ ์ง์ ์ ์ฑ ํ์ผ
mongodb_proc_net.te
์ ๋ง๋ญ๋๋ค.cat > mongodb_proc_net.te <<EOF module mongodb_proc_net 1.0; require { type cgroup_t; type configfs_t; type file_type; type mongod_t; type proc_net_t; type sysctl_fs_t; type var_lib_nfs_t; class dir { search getattr }; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir { search getattr } ; allow mongod_t cgroup_t:file { getattr open read }; allow mongod_t configfs_t:dir getattr; allow mongod_t file_type:dir { getattr search }; allow mongod_t file_type:file getattr; allow mongod_t proc_net_t:file { open read }; allow mongod_t sysctl_fs_t:dir search; allow mongod_t var_lib_nfs_t:dir search; EOF ์์ฑ๋๋ฉด ๋ค์ ์ธ ๊ฐ์ง ๋ช ๋ น์ ์คํํ์ฌ ์ฌ์ฉ์ ์ง์ ์ ์ฑ ๋ชจ๋์ ์ปดํ์ผํ๊ณ ๋ก๋ํฉ๋๋ค.
checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod sudo semodule -i mongodb_proc_net.pp
์ฌ์ฉ์ ์ ์ MongoDB ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก ์ฌ์ฉํ๊ธฐ
mongod
์๋น์ค๊ฐ ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก SELinux ์ ์ฑ ์ ์ ๋ฐ์ดํธํ์ธ์.sudo semanage fcontext -a -t <type> </some/MongoDB/directory.*> ๋ค์ ์ ํ ์ค ํ๋๋ฅผ ์ ์ ํ ์ง์ ํฉ๋๋ค.
mongod_var_lib_t
๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐmongod_log_t
๋ก๊ทธ ํ์ผ ๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐmongod_var_run_t
pid ํ์ผ ๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐ
์ฐธ๊ณ
๋๋ ํ ๋ฆฌ ๋์
.*
์ ํฌํจํ๋ ๊ฒ์ ์์ง ๋ง์ธ์.์ ๋๋ ํฐ๋ฆฌ์ ๋ํ SELinux ์ฌ์ฉ์ ์ ์ฑ ์ ์ ๋ฐ์ดํธํ์ธ์.
sudo chcon -Rv -u system_u -t <type> </some/MongoDB/directory> ๋ค์ ์ ํ ์ค ํ๋๋ฅผ ์ ์ ํ ์ง์ ํฉ๋๋ค.
mongod_var_lib_t
๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐmongod_log_t
๋ก๊ทธ ๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐmongod_var_run_t
pid ํ์ผ ๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐ
์ ๋ฐ์ดํธ๋ SELinux ์ ์ฑ ์ ๋๋ ํฐ๋ฆฌ์ ์ ์ฉํฉ๋๋ค.
sudo restorecon -R -v </some/MongoDB/directory>
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ
semanage fcontext
์์
์ ๊ฒฝ์ฐ ๋๋ ํฐ๋ฆฌ ๋์ .*
๋ฅผ ๋ฐ๋์ ํฌํจ์ํค์ธ์.
/mongodb/data
์ ๊ธฐ๋ณธ์ด ์๋ MongoDB ๋ฐ์ดํฐ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:sudo semanage fcontext -a -t mongod_var_lib_t '/mongodb/data.*' sudo chcon -Rv -u system_u -t mongod_var_lib_t '/mongodb/data' sudo restorecon -R -v '/mongodb/data' ๊ธฐ๋ณธ๊ฐ์ด ์๋
/mongodb/log
์ MongoDB ๋ก๊ทธ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ (์: ๋ก๊ทธ ํ์ผ ๊ฒฝ๋ก๊ฐ/mongodb/log/mongod.log
์ธ ๊ฒฝ์ฐ):sudo semanage fcontext -a -t mongod_log_t '/mongodb/log.*' sudo chcon -Rv -u system_u -t mongod_log_t '/mongodb/log' sudo restorecon -R -v '/mongodb/log'
์ฌ์ฉ์ ์ง์ MongoDB ํฌํธ ์ฌ์ฉํ๊ธฐ
sudo semanage port -a -t mongod_port_t -p tcp <portnumber>
์ค์
์์ ์ฌํญ ์ธ์๋ SELinux๊ฐ enforcing
๋ชจ๋์ธ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฐ ์ํฉ์ ๋ํด SELinux ์ ์ฑ
์ ์ถ๊ฐ๋ก ์ฌ์ฉ์ ์ง์ ํด์ผ ํ ์๋ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์กฐํฉ์ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ฌ์ฉ์ ์ง์ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๊ธฐ๋ณธ MongoDB ํฌํธ ์ฌ์ฉํ๋ ๋์ ์ฌ์ฉ์ ์ง์ ํฌํธ ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
MongoDB ์ค์น์ ๋ค๋ฅธ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ๊ฒฝ์ฐ.
์ ์ฐจ
๋ค์ ๋จ๊ณ์ ๋ฐ๋ผ ์์คํ ์์ MongoDB Community Edition์ ์คํํฉ๋๋ค. ์ด ์ง์นจ์ ๊ธฐ๋ณธ ์ค์ ์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๋ฐ์ดํฐ ๋ฐ ๋ก๊ทธ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
MongoDB ์ธ์คํด์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. ์์:
sudo mkdir -p /var/lib/mongo
MongoDB ์ธ์คํด์ค๊ฐ ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค. ์์:
sudo mkdir -p /var/log/mongodb
MongoDB ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ์ฌ์ฉ์๋ ์ด๋ฌํ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ถํ์ ๋ฐ๋์ ๋ณด์ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด MongoDB๋ฅผ ์ง์ ์คํํ๋ ค๋ฉด ๋ค์์ด ํ์ํฉ๋๋ค.
sudo chown `whoami` /var/lib/mongo # Or substitute another user sudo chown `whoami` /var/log/mongodb # Or substitute another user
MongoDB๋ฅผ ์คํํฉ๋๋ค.
MongoDB๋ฅผ ์คํํ๋ ค๋ฉด ์์คํ
ํ๋กฌํํธ์์ mongod
ํ๋ก์ธ์ค๋ฅผ ์คํํฉ๋๋ค.
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
๋ช
๋ น์ค ์ต์
--dbpath
๋ฐ --logpath
์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ต์
์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
MongoDB๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์๋์๋์ง ํ์ธํฉ๋๋ค.
๋ก๊ทธ ํ์ผ /var/log/mongodb/mongod.log
์์ ๋ค์ ์ค์ ๋ํ ํ๋ก์ธ์ค ์ถ๋ ฅ์ ํ์ธํ์ฌ MongoDB๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์๋์๋์ง ํ์ธํฉ๋๋ค.
[initandlisten] waiting for connections on port 27017
ํ๋ก์ธ์ค ์ถ๋ ฅ์ ์ค์ํ์ง ์์ ๊ฒฝ๊ณ ๊ฐ ํ์๋ ์ ์์ต๋๋ค. ์์ ๋ก๊ทธ ์ค์ด ํ์๋์ด ์๋ค๋ฉด MongoDB๋ฅผ ์ฒ์ ํ๊ฐํ๋ ๋์์๋ ์ด๋ฌํ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํด๋ ๋ฉ๋๋ค.
MongoDB ์ฌ์ฉ์ ์์ํฉ๋๋ค.
mongod
์ ๋์ผํ ํธ์คํธ ๋จธ์ ์์ mongosh
์ธ์
์ ์์ํฉ๋๋ค. ๋ช
๋ น์ค ์ต์
์์ด mongosh
๋ฅผ ์คํํ์ฌ ๊ธฐ๋ณธ ํฌํธ 27017์์ localhost์์ ์คํ ์ค์ธ mongod
์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
mongosh
๋ค๋ฅธ ํธ์คํธ ๋ฐ/๋๋ ํฌํธ์์ ์คํํ๋ mongod
์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ๋ฑ mongosh
(์)๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ mongosh ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
MongoDB๋ ์ฌ์ฉ์ ์์ํ๋ ๋ฐ ๋์์ด ๋๋๋ก ๋ค์ํ ๋๋ผ์ด๋ฒ ์๋์ ์ ๋ํด ์์ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋๋ผ์ด๋ฒ ์ค๋ช ์๋ MongoDB๋ก ๊ฐ๋ฐ ์์ํ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ถ๊ฐ ์ ๋ณด
๊ธฐ๋ณธ ๋ก์ปฌ ํธ์คํธ ๋ฐ์ธ๋ฉ
MongoDB๋ bindIp
๊ฐ ๋ก์ปฌ ํธ์คํธ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ฐ์ธ๋ฉ๋๋ 127.0.0.1
๋ก ์ค์ ๋์ด ์คํ๋๋๋ก ๊ธฐ๋ณธ ์ค์ ๋์ด ์์ต๋๋ค. ์ด๋ mongod
๊ฐ ๋์ผํ ์์คํ
์์ ์คํ ์ค์ธ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ๋ง ํ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์๊ฒฉ ํด๋ผ์ด์ธํธ๋ mongod
์ ์ฐ๊ฒฐํ ์ ์์ผ๋ฉฐ, ์ด ๊ฐ์ด ์ ํจํ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ก ์ค์ ๋์ด ์์ง ์์ผ๋ฉด mongod
๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ด๊ธฐํํ ์ ์์ต๋๋ค.
์ด ๊ฐ์ ๋ค์ ์ค ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๊ฒฝ๊ณ
์ธ์คํด์ค๋ฅผ ๊ณต๊ฐ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ IP ์ฃผ์์ ๋ฐ์ธ๋ฉํ๊ธฐ ์ ์ ๋ฌด๋จ ์ ๊ทผ์ผ๋ก๋ถํฐ ํด๋ฌ์คํฐ๋ฅผ ๋ณดํธํด์ผ ํฉ๋๋ค. ๋ณด์ ๊ถ์ฅ ์ฌํญ์ ์ ์ฒด ๋ชฉ๋ก์ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์๋ฒ์ ๋ํ ๋ณด์ ๊ฒ์ฌ ๋ชฉ๋ก์ ์ฐธ์กฐํ์ธ์. ์ต์ํ ์ธ์ฆ์ ํ์ฑํํ๊ณ ๋คํธ์ํฌ ์ธํ๋ผ๋ฅผ ๊ฐํํ๋ ๊ฒ์ ๊ณ ๋ คํฉ๋๋ค.
bindIp
๊ตฌ์ฑ์ ๋ํ ์์ธํ ๋ด์ฉ ์ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์๋ฒ์ IP ๋ฐ์ธ๋ฉ์ ์ฐธ์กฐํ์ธ์.