ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ ๊ฐ์์ ๋ก์ปฌ์๋ฒ์์ ์ด์ํ๋ฉด์ ๊ฐ์ ๋ฐ์ดํฐ๋ค์ ๋ณ์๋ ๋ค๋ฅด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ถ๋ฌ์ค๋ ๋ฐฉ์๋ ๋ค๋ฅด๊ณ ํ๋ค๋ณด๋ ๋นจ๋ฆฌ ๋ฐ์ดํฐ๋ค์ ํค๊ฐ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๋ํ๋ ๋ฐฉ์๋ ํต์ผํด์ผํ๋ค๊ณ ์๊ฐ์ ํ์ต๋๋ค.
์ ํฌ๊ฐ ์ค์นํด์ผํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ธ๊ฐ์ง๋ก MySQL, MongoDB, redis์
๋๋ค.
์ค์ ์ฅ๊ณ ์์ ์ด์ํ๋ฉด์ ํ์์ ์ ๋ณด๋ค๊ณผ ๊ฒ์ํ์ ์ ๋ณด๋ค์ ์ ํด์ง ๋ฐ์ดํฐํ์ ์ผ๋ก ๋ฐ์์ผํ๊ณ , ํ์์ ๋ณด๋ค์ค ๊ธฐ๋ณธํค์ ์ธ๋ํค๋ฑ์ ์ด์ฉํด์ ์ค๋ณต์ ๋ฐฉ์งํ๊ฑฐ๋ joinํด์ ์ ๋ณด๋ค์ ๊ฐ์ ธ์ค๊ธฐ ์ํด์์ ๋๋ค.
์ด์ํ๋ฉด์ ํ์ํ๋ ์ํ์ ๋ณด์ด ๋ง๊ณ ๊ทธ๋ฐ ์ ๋ณด๋ค์ ์ฝ๊ธฐ์๋๊ฐ ๋น ๋ฅธ ๋น๊ด๊ณํ์ ์ฌ์ฉํ๋ฉด์ ์๋๋ฅผ ๊ฐ์ ํ์์ต๋๋ค.
์ต๊ทผ ๋ง์ด ์ฌ์ฉํ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ๋ SSD์ ๋๋๊ฒ์ด ์๋ ์๋ฒ์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฉด์ ์๋๊ฐ ๋น ๋ฅด๋ฉฐ, ๋์ ๋๋ฆฌ์ ํํ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฉด์ ์๋๊ฐ ๋๋น ๋ฅด๋ค๋ ์ฅ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ์ต๊ทผ์ ๊ฒ์ํ๊ฑฐ๋ ํด๋ฆญํ์ฌ ๋ค์ด๊ฐ ์ํ๋ค์ ํ์ด์ง ํ๋จ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด์ ์ ์ ํ์์ต๋๋ค.
์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ ์ด๋ป๊ฒ ํด๋ผ์ฐ๋ ์๋ฒ์ ๊ตฌ์ฑ์ ํด์ผํ ๊น ๊ณ ๋ฏผ์ ๋ง์ด ํ์์ต๋๋ค.
๊ณ ๋ฏผํ๋๊ฒ๋ค์ ์๋์ ๊ฐ์ต๋๋ค.
1๏ธโฃ. ๋์ปค์ปดํฌ์ฆ๋ก ๋ฌถ์ด์ ์ปจํ
์ด๋3๊ฐ๋ฅผ ๋ง๋ค์ด์ผ ํ ๊น?
2๏ธโฃ. ์ธ์คํด์ค๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฉ์ผ๋ก ๋ง๋ค์ด์ ์๋ฒ์ ๊ทธ๋ฅ ์ค์น๋ฅผ ํด์ผํ ๊น?
์ ๊ฐ ๊ฐ์ฅ ๊ณ ๋ฏผํ๋๊ฒ์ ํฌ๊ฒ 2๊ฐ์ง์ธ ๋ฐ์ดํฐ๋ค์ ์์์ฑ, ์์ ์ฑ์ด์์ต๋๋ค.
์ผ๋จ ์ปจํ
์ด๋์ ๋ชฉ์ ์ ๋น ๋ฅธ์์ฑ๊ณผ ํ๊ดด, ๋ฐ์ดํฐ๋ ์์๋์ด์ผํ๋ค๋ ๋ชฉ์ ์ด ์์ต๋๋ค.
์ด๋ฌํ ๋๊ฐ์ง์ ๋ชฉ์ ์ ์ฐจ์ด๋ถํฐ๊ฐ ๋ง์ง ์์์ต๋๋ค.
๋ฐ๋ผ์ ์ปจํ
์ด๋๋ ํ๋ฐ์ฑ์ด๊ณ ์ปจํ
์ด๋์ ์์ฑ์ฃผ๊ธฐ์ ๋ฐ๋ผ ์์ฑ,์์,์ค์ง,์ญ์ ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ ๊ทธ๋ง์ ์ปจํ
์ด๋๊ฐ ์ญ์ ๊ฐ ๋๋ค๋ฉด ์์ ์๋ ๋ฐ์ดํฐ๋ํ ์ฌ๋ผ์ง๋ฉด ์๋๊ธฐ๋๋ฌธ์ ์์์ฑ์ ๋ฌธ์ ๊ฐ ์๊ณ , ์ง์์ ์ธ ์คํ ๋ฆฌ์ง๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋ง์ง ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ์ฑ์ ์๊ฐํ ์ด์ ๋ ๋ง์ฝ ๊ฐ์ํ๊ฒฝ์ ๋์ปค๋ก ๊ฐ์ํ๊ฒฝ์ ๋๋ง๋ค๊ฒ ๋๋ค๋ฉด ๊ฐ์+๊ฐ์์ด๋๋ฉด์
๊ด๋ฆฌ๋ฅผ ํฌ์ธํธ๋ค๋ ๋ง๊ณ , ์๋ฌด๋ฆฌ ๋์ปค๋ก ๋ณผ๋ฅจ์ ํ์ด๋ ๋ฐ์ดํฐ๋ค์ ๋ฐ์ด๋๋ฆฌํ์ผ์ด๋ ๋ชจ๋ ์ฟผ๋ฆฌ๋ค์ด ๋ก๊ทธ๋ก ๊ด๋ฆฌ๊ฐ ์ด๋ ต๊ณ , AWS์ RDS์ฒ๋ผ ์์ ์ฑ์ด ๋ณด์ฅ๋๋ฉด์ ๋ฐฑ์
์ ๋ํ ๋ฌธ์ ์ ๋ ์์์ต๋๋ค.
์์ ๊ณ ๋ฏผ๋ค์ ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ ์ค์นํ๋ฉด์ ์ค์ํ๋ค๊ณ ์๊ฐํ๊ฒ์ ์๋ฒ์ ์ธ๋ฐ์ด๋์ ์์๋ฐ์ด๋๊ท์น, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๊ณ์ ์ ๊ถํ์ค์ ์ ๋๋ค.
์งง๊ฒ ์ค๋ช ํ์๋ฉด
- ์ธ๋ฐ์ด๋๋ ํฌํธ๋ฅผ ํตํด ๋ค์ด์ฌ์์๋ ip๋ฅผ ์ค์ ํ๋ฉฐ
- ์์๋ฐ์ด๋๋ ์๋ฒ๋ฅผ ๋๊ฐ๋ ๋ฐ์ดํฐ๋ค์ ๊ท์น์ ๋๋ค.
์ ์ผ๋จผ์ ์ ๋ ubuntu์ ์ค์นํ๊ธฐ ๋๋ฌธ์ ๋ฒ์ ์ ํ์ธํ๊ธฐ์ํด
$ lsb_release -dc
๋ฅผ ์ฌ์ฉํด์ ubuntu์ ๋ฒ์ ์ ํ์ธํ์์ต๋๋ค.
apt-get ์
๋ฐ์ดํธํ๊ธฐ
$ sudo install apt-get update
MySQL ์๋ฒ๋ค์ด๋ก๋
$ sudo apt-get install mysql-server
๊ณ์ ๊ด๋ฆฌ๋ฅผ ์ํ mysql_secure_installation ์ค์น
$ sudo apt-get install mysql_secure_installation
์๊ฒฉ์ ์ํ์ฉํ๊ธฐ
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
mysql์ ์ค์ ํ์ผ์ ์ด์ด์ ์ค์ ์ ๋ฐ๊ฟ์ฃผ์ด์ผ ํฉ๋๋ค.
bind-address ๋ณ๊ฒฝ
bind-address๋ฅผ 0.0.0.0๋ฐ๊ฟ์ ๋ชจ๋ ์์ดํผ๋ฅผ ์ ์์ ํ์ฉํด์ผํฉ๋๋ค.
ํ์ง๋ง ๋ณด์์ ํน์ ์์ดํผ๋ง ํ์ฉํ๋๊ฒ์ด ์ข์๋ณด์
๋๋ค.
apt-get ์
๋ฐ์ดํธํ๊ธฐ
MySQL์ค์นํ๋ฉด์ ํ๊ธฐ๋๋ฌธ์ ์๋ตํ์ต๋๋ค.
์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ ๋ฐ ํ์ํ ์ข
์์ฑ์ ์ค์น
$ sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
๋ก์ปฌ์์์ ํด๋ผ์ฐ๋์๋ฒ์์์ OS ์ค์ ๋ฐ ํจํค์ง ๊ด๋ฆฌ ๋ฐฉ์์ ์ฐจ์ด๋ก ์ธํด ์ค์น ๋ฐฉ๋ฒ์ด ๋ค๋ฆ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ต์ ๋ฒ์ ์ MongoDB๋ Ubuntu 20.04 ๊ธฐ๋ณธ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์คํ ์ ๊ณต์ MongoDB ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค
dirmngr : ํค ์ฌ์ฉ์ ๊ด๋ จ๋ ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฅผ ๋ด๋นํ๋ ๋ฐ๋ชฌ์ ๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์ GPG ํค๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ํ์ํฉ๋๋ค.
gnupg : GPG์ ๊ด๋ จ์ ๋๋ค.
apt-transport-https : apt๋ ๊ธฐ๋ณธ์ ์ผ๋ก http๋ง ์์ ์ด ๊ฐ๋ฅํ์ง๋ง https๋ก๋ ์์ ์ด ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
ca-certificates : ์ผ๋ฐ์ ์ธ root ์ธ์ฆ์๋ฅผ ์ฐ๋ถํฌ ์์คํ ์ ์ค์นํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ TLS/SSL ์ฐ๊ฒฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
software-properties-common : ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ ์ ์๋ ๋ช ๋ น์ ์ ๊ณตํฉ๋๋ค.
MongoDB์ GPGํค๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
MongoDB์ ๊ณต์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ubuntu์ ์ถ๊ฐ
$ sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'
mongodb-org ๋ฉํ ํํค์ง ์ค์น
$ sudo apt install mongodb-org
MongoDB ์์
$ sudo systemctl start mongod
MongoDB์ ์์ ๋ค์ด๊ฐ๊ธฐ
$ mongo
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ
> use ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
root ์ญํ ์ ๊ฐ์ง ๊ณ์ ๋ง๋ค๊ธฐ
>db.createUser(
{
user: "๊ณ์ ์ด๋ฆ",
pwd: "๊ณ์ ๋น๋ฐ๋ฒํธ",
roles: [ { role: "root", db: "๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
" } ]
}
)
> db
๋ฅผ ์น๊ฒ๋๋ฉด ํ์ฌ ์ฌ์ฉ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ธ์ด ๊ฐ๋ฅํ์ง๋ง> show dbs
๋ฅผ ์น๊ฒ๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชฉ๋ก์ค์๋ ์๋์ต๋๋ค.MySQL๊ณผ ๊ฐ์ด ์ค์ ํ์ผ์ ๋ค์ด๊ฐ bind-address๋ฅผ ํ์ด์ค์ผ ํฉ๋๋ค.
์ค์ ํ์ผ ๋ค์ด๊ฐ๊ธฐ
$ sudo vim /etc/mongod.conf
์ค์ ๋ณ๊ฒฝ
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
authorization: 'enabled'
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
๐ก ๋ณด์๊ด์ ์์๋ ๋ชจ๋ํ์ฉํ๋๊ฒ์ ์ข์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ํน์ ip๋ง ์ถ๊ฐํด์ ํ์ฉํ๋๊ฒ์ด ์ข์๋ณด์ ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด MongoDB์ ์ค์ ์ ๋ค ๋ง์ณค๊ณ
ํด์ด๋ ์ฝ๋์์ ์ ์์ ํ๊ธฐ์ํด์
mongodb://[๊ณ์ ์ด๋ฆ]:[๋น๋ฐ๋ฒํธ]@[IP]:27017/ ์ ํตํด์ ์ ์์ด ๊ฐ๋ฅํฉ๋๋ค.
์ต์ ์ ๋ชจ๋์ด๋ ์ค์นํ ๊ฒ๋ค์ ๊ฐ์ ธ์ต๋๋ค.
$ sudo apt update
redis-server๋ฅผ ์ค์นํด์ค๋๋ค.
$ sudo apt-get install redis-server
Redis์ ์ค์ ํ์ผ์ ip๋ฅผ ์์ ํด์ค๋๋ค.
$ sudo vim /etc/redis/redis.conf
bind 127.0.0.1 ::1
๋ฅผ bind 0.0.0.0 ::1
๋ก ๋ณ๊ฒฝํด์ฃผ๊ณ ์ฃผ์์ ํ์ด์ค๋๋ค.๐ก ์ด๋ ๊ฒํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค 3๊ฐ๋ฅผ ์ค์น๋ฅผ ๋ง์น๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ผ ์ฒ์ ์ค์ํ๋ค๊ณ ์ธ๊ธํ๋ AWS๋ ์ธ๋ฐ์ด๋๊ทธ๋ฃน, GCE๋ ๋ฐฉํ๋ฒฝ์ค์ ์์
๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํด๋นํฌํธ๋ค์ ์ด์ด์ฃผ๊ณ ๋ค์ด์ค๋ IP๋ ํ์ฉํด์ฃผ์ด์ผ ๋ก์ปฌ์์ ํด๋ค๋ก ๋ณผ์๊ฐ ์๊ณ
์๊ฒฉ์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค.