์ ์ด๋ฆ์ Denis Rozhkov์ด๊ณ Gazinformservice ํ์ฌ์ ์ ํ ํ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ฑ
์์์
๋๋ค.
์ด ๊ธฐ์ฌ๋ ๋ค์์ ์ฐ์ค์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
์ด ๊ธฐ์ฌ๋ ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์ฐ๊ฒฐ์ ๋ณดํธํ๋ ๋ฐฉ๋ฒ.
- ์์ ๊ฐ์ฌ๋ ๋ฌด์์ด๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธก์์ ๋ฐ์ํ๊ณ ์ฐ๊ฒฐ๋๋ ์ํฉ์ ๊ธฐ๋กํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ์ ์ ๋ฌด์์ ๋๊น?
DBMS ๋ณด์์ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์: ์ฐ๊ฒฐ ๋ณดํธ, ํ๋ ๊ฐ์ฌ ๋ฐ ๋ฐ์ดํฐ ๋ณดํธ
์ฐ๊ฒฐ ๋ณด์
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด ์ง์ ๋๋ ๊ฐ์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋น์ฆ๋์ค ์ฌ์ฉ์, ์ฆ DBMS๋ฅผ ๋ค๋ฃจ๋ ์ฌ๋์ ๊ฐ์ ์ ์ผ๋ก DBMS์ ์ํธ ์์ฉํฉ๋๋ค.
์ฐ๊ฒฐ ๋ณดํธ์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ ์ ์ ๋ณด์ ์กฐ์น๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋๋์ง ๊ฒฐ์ ํ๋ ์ค์ํ ์ง๋ฌธ์ ๋ตํด์ผ ํฉ๋๋ค.
- ๋น์ฆ๋์ค ์ฌ์ฉ์ XNUMX๋ช ์ด DBMS ์ฌ์ฉ์ XNUMX๋ช ๊ณผ ๋์ผํฉ๋๊น?
- DBMS ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค๊ฐ ๊ทํ๊ฐ ์ ์ดํ๋ โโAPI๋ฅผ ํตํด์๋ง ์ ๊ณต๋๋์ง, ์๋๋ฉด ํ ์ด๋ธ์ ์ง์ ์ก์ธ์ค๋๋์ง ์ฌ๋ถ
- DBMS๊ฐ ๋ณ๋์ ๋ณดํธ ์ธ๊ทธ๋จผํธ์ ํ ๋น๋์๋์ง ์ฌ๋ถ, ๋๊ฐ DBMS์ ์ํธ ์์ฉํ๋์ง, ์ด๋ป๊ฒ
- ํ๋ง/ํ๋ก์ ๋ฐ ์ค๊ฐ ๋ ์ด์ด๊ฐ ์ฌ์ฉ๋๋์ง ์ฌ๋ถ๋ ์ฐ๊ฒฐ ๊ตฌ์ถ ๋ฐฉ๋ฒ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ด์ ์ฐ๊ฒฐ์ ๋ณดํธํ๋ ๋ฐ ์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฉํ๋ฒฝ ํด๋์ค ์๋ฃจ์ ์ ์ฌ์ฉํ์ญ์์ค. ์ถ๊ฐ ๋ณดํธ ๊ณ์ธต์ ์ต์ํ DBMS์์ ๋ฐ์ํ๋ ์์ ์ ํฌ๋ช ์ฑ์ ๋์ด๊ณ ์ต๋๋ก ์ถ๊ฐ ๋ฐ์ดํฐ ๋ณดํธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ๋น๋ฐ๋ฒํธ ์ ์ฑ
์ ์ฌ์ฉํ์ธ์. ์ฉ๋๋ ์ํคํ
์ฒ ๊ตฌ์ถ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ DBMS์ ์ฐ๊ฒฐ๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑ ํ์ผ์ ์๋ ๋น๋ฐ๋ฒํธ ํ๋๋ง์ผ๋ก๋ ๋ณดํธ๊ฐ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ฐ์ดํธํด์ผ ํ๋์ง ์ ์ดํ ์ ์๋ ๋ค์ํ DBMS ๋๊ตฌ๊ฐ ์์ต๋๋ค.
์ฌ์ฉ์ ํ๊ฐ ๊ธฐ๋ฅ์ ๋ํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ , MS SQL ์ทจ์ฝ์ ํ๊ฐ์์ ๋ํด์๋ ์์๋ณผ ์ ์์ต๋๋ค.์ฌ๊ธฐ์ . - ํ์ํ ์ ๋ณด๋ก ์ธ์ ์ ๋งฅ๋ฝ์ ํ๋ถํ๊ฒ ๋ง๋์ธ์. ์ธ์ ์ด ๋ถํฌ๋ช ํ๊ณ ํด๋น ํ๋ ์์ํฌ ๋ด์์ ๋๊ฐ DBMS์์ ์์ ํ๊ณ ์๋์ง ์ดํดํ ์ ์๋ ๊ฒฝ์ฐ ์ํ ์ค์ธ ์์ ํ๋ ์์ํฌ ๋ด์์ ๋๊ฐ ๋ฌด์์ ์ ์ํํ๋์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด ์ ๋ณด๋ ๊ฐ์ฌ์์ ํ์ธํ ์ ์์ต๋๋ค.
- DBMS์ ์ต์ข ์ฌ์ฉ์ ์ฌ์ด์ ๋คํธ์ํฌ ๋ถ๋ฆฌ๊ฐ ์๊ณ ๋ณ๋์ VLAN์ ์์ง ์์ ๊ฒฝ์ฐ SSL์ ๊ตฌ์ฑํ์ญ์์ค. ์ด๋ฌํ ๊ฒฝ์ฐ ์๋น์์ DBMS ์์ฒด ๊ฐ์ ์ฑ๋์ ๋ณดํธํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ๋ณด์ ๋๊ตฌ๋ ์คํ ์์ค์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๊ฒ์ด DBMS ์ฑ๋ฅ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์?
SSL์ด CPU ๋ก๋์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๊ณ , ํ์ด๋ฐ์ ๋๋ฆฌ๊ณ , TPS๋ฅผ ์ค์ด๋์ง, ํ์ฑํํ ๊ฒฝ์ฐ ๋๋ฌด ๋ง์ ๋ฆฌ์์ค๋ฅผ ์๋นํ๋์ง ์ฌ๋ถ๋ฅผ ์์๋ณด๊ธฐ ์ํด PostgreSQL์ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
pgbench๋ฅผ ์ฌ์ฉํ์ฌ PostgreSQL์ ๋ก๋ํ๋ ๊ฒ์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์คํํ๊ธฐ ์ํ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ ๋๋ค. ๋ณ๋ ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ ์์ ๋จ์ผ ๋ช ๋ น ์ํ์ค๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ ๋ค์ ํ๊ท ํธ๋์ญ์ ์๋๋ฅผ ๊ณ์ฐํฉ๋๋ค.
SSL ์์ด SSL์ ์ฌ์ฉํ๋ ํ ์คํธ 1 โ ๊ฐ ํธ๋์ญ์ ์ ๋ํด ์ฐ๊ฒฐ์ด ์ค์ ๋ฉ๋๋ค.
pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"
vs
pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"
SSL ์์ด SSL์ ์ฌ์ฉํ๋ ํ ์คํธ 2 โ ๋ชจ๋ ํธ๋์ญ์ ์ ํ๋์ ์ฐ๊ฒฐ์์ ์ํ๋ฉ๋๋ค.
pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"
vs
pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"
๋ค๋ฅธ ์ค์ :
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 5000
number of transactions actually processed: 50000/50000
ํ ์คํธ ๊ฒฐ๊ณผ:
SSL ์์
SSL
๋ชจ๋ ๊ฑฐ๋์ ๋ํด ์ฐ๊ฒฐ์ด ์ค์ ๋ฉ๋๋ค.
๋๊ธฐ ์๊ฐ ํ๊ท
171.915 MS
187.695 MS
์ฐ๊ฒฐ ์ค์ ์ ํฌํจํ tps
58.168112
53.278062
์ฐ๊ฒฐ ์ค์ ์ ์ ์ธํ tps
64.084546
58.725846
CPU
24%
28%
๋ชจ๋ ํธ๋์ญ์ ์ ํ๋์ ์ฐ๊ฒฐ๋ก ์ํ๋ฉ๋๋ค.
๋๊ธฐ ์๊ฐ ํ๊ท
6.722 MS
6.342 MS
์ฐ๊ฒฐ ์ค์ ์ ํฌํจํ tps
1587.657278
1576.792883
์ฐ๊ฒฐ ์ค์ ์ ์ ์ธํ tps
1588.380574
1577.694766
CPU
17%
21%
๊ฐ๋ฒผ์ด ๋ถํ์์ SSL์ ์ํฅ์ ์ธก์ ์ค๋ฅ์ ๋น์ทํฉ๋๋ค. ์ ์ก๋๋ ๋ฐ์ดํฐ์ ์์ด ๋งค์ฐ ๋ง์ผ๋ฉด ์ํฉ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ํธ๋์ญ์ ๋น ํ๋์ ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ฒฝ์ฐ(๋๋ฌธ ๊ฒฝ์ฐ, ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์ ๊ฐ์ ์ฐ๊ฒฐ์ด ๊ณต์ ๋จ) ์ฐ๊ฒฐ/์ฐ๊ฒฐ ๋๊น ์๊ฐ ๋ง์ ์ํฅ์ด ์กฐ๊ธ ๋ ์ปค์ง ์ ์์ต๋๋ค. ์ฆ, ์ฑ๋ฅ ์ ํ์ ์ํ์ด ์์ ์ ์์ง๋ง ๋ณดํธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์์ ์ ๋๋ก ์ฐจ์ด๋ ํฌ์ง ์์ต๋๋ค.
์๋ ๋ชจ๋๋ฅผ ๋น๊ตํ๋ฉด ํฐ ์ฐจ์ด๊ฐ ์๋ค๋ ์ ์ ์ ์ํ์ญ์์ค. ๋์ผํ ์ธ์ ๋ด์์ ์์ ์ค์ด๊ฑฐ๋ ๋ค๋ฅธ ์ธ์ ์์ ์์ ์ค์ ๋๋ค. ์ด๋ ์ดํดํ ์ ์์ต๋๋ค. ๊ฐ ์ฐ๊ฒฐ์ ์์ฑํ๋ ๋ฐ ๋ฆฌ์์ค๊ฐ ์๋น๋ฉ๋๋ค.
Zabbix๋ฅผ ์ ๋ขฐ ๋ชจ๋๋ก ์ฐ๊ฒฐํ์ ๋, ์ฆ md5๊ฐ ํ์ธ๋์ง ์์ ์ธ์ฆ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ณ ๊ฐ์ md5 ์ธ์ฆ ๋ชจ๋๋ฅผ ํ์ฑํํ๋๋ก ์์ฒญํ์ต๋๋ค. ์ด๋ก ์ธํด CPU์ ๊ณผ๋ํ ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๊ณ ์ฑ๋ฅ์ด ์ ํ๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ต์ ํ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ ์์ํ์ต๋๋ค. ๋ฌธ์ ์ ๋ํ ๊ฐ๋ฅํ ํด๊ฒฐ์ฑ ์ค ํ๋๋ ๋คํธ์ํฌ ์ ํ์ ๊ตฌํํ๊ณ , DBMS์ ๋ํด ๋ณ๋์ VLAN์ ๋ง๋ค๊ณ , ๋๊ฐ ์ด๋์ ์ฐ๊ฒฐํ๋์ง ๋ช ํํ๊ฒ ํ๋ ์ค์ ์ ์ถ๊ฐํ๊ณ , ์ธ์ฆ์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ์ธ์ฆ ํ์ฑํ ์ ๋น์ฉ์ ์ค์ด๊ธฐ ์ํด ์ธ์ฆ ์ค์ ์ ์ต์ ํํ ์๋ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ๋ค์ํ ์ธ์ฆ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ฉฐ DBMS์ฉ ์๋ฒ(ํ๋์จ์ด)์ ์ปดํจํ ์ฑ๋ฅ์ ์ค๊ณํ ๋ ์ด๋ฌํ ์์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก : ์ฌ๋ฌ ์๋ฃจ์ ์์ ์ธ์ฆ์ ์์ ์ฐจ์ด๋ ํ๋ก์ ํธ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฉฐ ํ๋ก๋์ ํ๊ฒฝ์์ ๊ตฌํ๋ ๋๋ง ์ด๊ฒ์ด ๋ช ํํด์ง๋ฉด ์ข์ง ์์ต๋๋ค.
์กฐ์น ๊ฐ์ฌ
๊ฐ์ฌ๋ DBMS๋ฟ๋ง์ด ์๋๋๋ค. ๊ฐ์ฌ๋ ๋ค์ํ ๋ถ๋ฌธ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ป๋ ๊ฒ์ ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฉํ๋ฒฝ์ผ ์๋ ์๊ณ DBMS๊ฐ ๊ตฌ์ถ๋ ์ด์ ์ฒด์ ์ผ ์๋ ์์ต๋๋ค.
์์ ์ฉ ์ํฐํ๋ผ์ด์ฆ ์์ค DBMS์์๋ ๊ฐ์ฌ๋ฅผ ํตํด ๋ชจ๋ ๊ฒ์ด ์ ์์ด์ง๋ง ์คํ ์์ค์์๋ ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. PostgreSQL์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ธฐ๋ณธ ๋ก๊ทธ - ๋ด์ฅ๋ ๋ก๊น ;
- ํ์ฅ: pgaudit - ๊ธฐ๋ณธ ๋ก๊น ์ด ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ ๋ณ๋์ ์ค์ ์ ์ฌ์ฉํ์ฌ ์ผ๋ถ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์์์ ๋ณด๊ณ ์์ ์ถ๊ฐ:
"๊ธฐ๋ณธ ๋ช ๋ น๋ฌธ ๋ก๊น ์ log_statement = all์ ์ฌ์ฉํ์ฌ ํ์ค ๋ก๊น ๊ธฐ๋ฅ์ผ๋ก ์ ๊ณต๋ ์ ์์ต๋๋ค.
์ด๋ ๋ชจ๋ํฐ๋ง ๋ฐ ๊ธฐํ ์ฉ๋๋ก ํ์ฉ๋์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฌ์ ํ์ํ ์ธ๋ถ ์์ค์ ์ ๊ณตํ์ง๋ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํ๋๋ ๋ชจ๋ ์์ ์ โโ๋ชฉ๋ก์ ๊ฐ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
๋ํ ๊ฐ์ฌ์ธ์ด ๊ด์ฌ์ ๊ฐ์ง ๋งํ ํน์ ์ง์ ์ ์ฐพ๋ ๊ฒ๋ ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
ํ์ค ๋ก๊น ์ ์ฌ์ฉ์๊ฐ ์์ฒญํ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๊ณ , pgAudit์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ๋ ๋ฐ์ํ ์ธ๋ถ ์ฌํญ์ ์ค์ ์ ๋ก๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฐ์ฌ์๋ ๋ฌธ์ํ๋ ์ ์ง ๊ด๋ฆฌ ๊ธฐ๊ฐ ๋ด์ ํน์ ํ ์ด๋ธ์ด ์์ฑ๋์๋์ง ํ์ธํ๋ ค๊ณ ํ ์ ์์ต๋๋ค.
์ด๋ ๊ธฐ๋ณธ ๊ฐ์ฌ ๋ฐ grep์ ์ฌ์ฉํ๋ ๊ฐ๋จํ ์์ ์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋ง ๋ค์๊ณผ ๊ฐ์(์๋์ ์ผ๋ก ํผ๋์ค๋ฌ์ด) ์์ ๊ฐ ํ์๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
DO$$
BEGIN
EXECUTE 'CREATE TABLE ๊ฐ์ ธ์ค๊ธฐ' || 'ant_table(id int)';
์ข
๋ฃ$$;
ํ์ค ๋ก๊น ์ ๋ค์์ ์ ๊ณตํฉ๋๋ค.
๋ก๊ทธ: ๋ช
๋ น๋ฌธ: DO $$
BEGIN
EXECUTE 'CREATE TABLE ๊ฐ์ ธ์ค๊ธฐ' || 'ant_table(id int)';
์ข
๋ฃ$$;
ํ ์ด๋ธ์ด ๋์ ์ผ๋ก ์์ฑ๋๋ ๊ฒฝ์ฐ ๊ด์ฌ ์๋ ํ ์ด๋ธ์ ์ฐพ์ผ๋ ค๋ฉด ์ฝ๊ฐ์ ์ฝ๋ ์ง์์ด ํ์ํ ์ ์์ต๋๋ค.
๋จ์ํ ํ ์ด๋ธ ์ด๋ฆ์ผ๋ก ๊ฒ์ํ๋ ๊ฒ์ด ๋ ๋ฐ๋์งํ๊ธฐ ๋๋ฌธ์ ์ด๋ ์ด์์ ์ด์ง ์์ต๋๋ค.
์ด๊ฒ์ด pgAudit์ด ์ ์ฉํ ๊ณณ์ ๋๋ค.
๋์ผํ ์ ๋ ฅ์ ๋ํด ๋ก๊ทธ์ ๋ค์ ์ถ๋ ฅ์ด ์์ฑ๋ฉ๋๋ค.
๊ฐ์ฌ: ์ธ์
,33,1,๊ธฐ๋ฅ,DO,,,"DO $$
BEGIN
EXECUTE 'CREATE TABLE ๊ฐ์ ธ์ค๊ธฐ' || 'ant_table(id int)';
END$$;"
๊ฐ์ฌ: ์ธ์
,33,2,DDL,CREATE TABLE,TABLE,public.important_table,CREATE TABLE important_table(ID INT)
DO ๋ธ๋ก๋ฟ๋ง ์๋๋ผ ๋ช ๋ น๋ฌธ ์ ํ, ๊ฐ์ฒด ์ ํ ๋ฐ ์ ์ฒด ์ด๋ฆ์ด ํฌํจ๋ CREATE TABLE์ ์ ์ฒด ํ ์คํธ๋ ๊ธฐ๋ก๋๋ฏ๋ก ๊ฒ์์ด ๋ ์ฝ์ต๋๋ค.
SELECT ๋ฐ DML ๋ฌธ์ ๊ธฐ๋กํ ๋ pgAudit์ ๋ฌธ์์ ์ฐธ์กฐ๋๋ ๊ฐ ๊ด๊ณ์ ๋ํด ๋ณ๋์ ํญ๋ชฉ์ ๊ธฐ๋กํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
ํน์ ํ
์ด๋ธ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๋ช
๋ น๋ฌธ์ ์ฐพ๊ธฐ ์ํด ๊ตฌ๋ฌธ ๋ถ์์ด ํ์ํ์ง ์์ต๋๋ค(
์ด๊ฒ์ด DBMS ์ฑ๋ฅ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์?
์ ์ฒด ๊ฐ์ฌ๋ฅผ ํ์ฑํํ ์ํ์์ ํ ์คํธ๋ฅผ ์คํํ๊ณ PostgreSQL ์ฑ๋ฅ์ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ ๋งค๊ฐ๋ณ์์ ๋ํด ์ต๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊น ์ ํ์ฑํํด ๋ณด๊ฒ ์ต๋๋ค.
๊ตฌ์ฑ ํ์ผ์์๋ ๊ฑฐ์ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ต๋ ์ ๋ณด๋ฅผ ์ป์ผ๋ ค๋ฉด debug5 ๋ชจ๋๋ฅผ ์ผ๋ ๊ฒ์ ๋๋ค.
postgresql.conf
log_destination = 'stderr'
๋ก๊น
_์์ง๊ธฐ = ์ผ์ง
log_truncate_on_rotation = ์ผ์ง
log_rotation_age = 1์ผ
log_rotation_size = 10MB
log_min_messages = ๋๋ฒ๊ทธ5
log_min_error_statement = ๋๋ฒ๊ทธ5
log_min_duration_statement = 0
debug_print_parse = ์ผ์ง
debug_print_rewrite = ์ผ์ง
debug_print_plan = ์ผ์ง
debug_pretty_print = ์ผ์ง
log_checkpoints = ์ผ์ง
log_connections = ์ผ์ง
log_disconnections = ์ผ์ง
log_duration = ์ผ์ง
log_hostname = ์ผ์ง
log_lock_waits = ์ผ์ง
log_replication_commands = ์ผ์ง
log_temp_files = 0
log_timezone = '์ ๋ฝ/๋ชจ์คํฌ๋ฐ'
๋งค๊ฐ๋ณ์๊ฐ CPU 1๊ฐ, 2,8GHz, 2GB RAM, 40GB HDD์ธ PostgreSQL DBMS์์ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ธ ๊ฐ์ง ๋ก๋ ํ ์คํธ๋ฅผ ์ํํฉ๋๋ค.
$ pgbench -p 3389 -U postgres -i -s 150 benchmark
$ pgbench -p 3389 -U postgres -c 50 -j 2 -P 60 -T 600 benchmark
$ pgbench -p 3389 -U postgres -c 150 -j 2 -P 60 -T 600 benchmark
์ํ ๊ฒฐ๊ณผ:
๋ก๊น
์์
๋ก๊น
ํฌํจ
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ์ฐ๊ธฐ ์๊ฐ
43,74 ์ด
53,23 ์ด
๋จ
24%
40%
CPU
72%
91%
ํ ์คํธ 1(50๊ฐ ์ฐ๊ฒฐ)
10๋ถ ๋์์ ๊ฑฐ๋ ์
74169
32445
ํธ๋์ญ์
/์ด
123
54
ํ๊ท ์ง์ฐ ์๊ฐ
405 ๋ฐ๋ฆฌ ์ด
925 ๋ฐ๋ฆฌ ์ด
ํ ์คํธ 2(150๊ฐ ์ฐ๊ฒฐ ๊ฐ๋ฅ, 100๊ฐ ๊ฐ๋ฅ)
10๋ถ ๋์์ ๊ฑฐ๋ ์
81727
31429
ํธ๋์ญ์
/์ด
136
52
ํ๊ท ์ง์ฐ ์๊ฐ
550 ๋ฐ๋ฆฌ ์ด
1432 ๋ฐ๋ฆฌ ์ด
์ฌ์ด์ฆ ์ ๋ณด
DB ํฌ๊ธฐ
2251 MB
2262 MB
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ ํฌ๊ธฐ
0 ะะฑ
4587 ะะฑ
๊ฒฐ๋ก : ์ ์ฒด ๊ฐ์ฌ๋ ๊ทธ๋ค์ง ์ข์ง ์์ต๋๋ค. ๊ฐ์ฌ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด์ ๋ฐ์ดํฐ๋งํผ ํฌ๊ฑฐ๋ ๊ทธ ์ด์์ ๋๋ค. DBMS ์์ ์ ์์ฑ๋๋ ๋ก๊น ์ ์์ ํ๋ก๋์ ํ๊ฒฝ์์ ํํ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋๋ค.
๋ค๋ฅธ ๋งค๊ฐ๋ณ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ์๋๋ ํฌ๊ฒ ๋ณํ์ง ์์ต๋๋ค. ๋ก๊น ์์ - 43,74์ด, ๋ก๊น ํฌํจ - 53,23์ด.
- ๊ฐ์ฌ ํ์ผ์ ์์ฑํด์ผ ํ๋ฏ๋ก RAM ๋ฐ CPU ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค. ์ด๋ ์์ฐ์ฑ ์ธก๋ฉด์์๋ ๋๋๋ฌ์ง๋๋ค.
์ฐ๊ฒฐ ์๊ฐ ๋์ด๋๋ฉด ๋น์ฐํ ์ฑ๋ฅ์ด ์กฐ๊ธ์ฉ ์ ํ๋ฉ๋๋ค.
๊ฐ์ฌ๋ฅผ ๋ฐ๋ ๊ธฐ์ ์์๋ ๋์ฑ ์ด๋ ต์ต๋๋ค.
- ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ๋ง์์.
- SIEM์ syslog๋ฟ๋ง ์๋๋ผ ํ์ผ์์๋ ๊ฐ์ฌ๊ฐ ํ์ํฉ๋๋ค. syslog์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ๊น์ด ํ์ผ์ด ์์ด์ผ ํฉ๋๋ค.
- ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํ๋ฏ๋ก I/O ๋์คํฌ๋ฅผ ๋ญ๋นํ์ง ์๋๋ก ๊ฐ์ฌ๋ฅผ ์ํด ๋ณ๋์ ์ ๋ฐ์ด ํ์ํฉ๋๋ค.
- ์ ๋ณด ๋ณด์ ์ง์์ ์ด๋์์๋ GOST ํ์ค์ด ํ์ํ๋ฉฐ ๊ตญ๊ฐ ์๋ณ์ด ํ์ํฉ๋๋ค.
๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค ์ ํ
์์ฉ DBMS์ ์คํ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ์ ๊ทผํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ์ ์ ์ดํด๋ณด์.
์ผ๋ฐ์ ์ผ๋ก ๋ฌด์์ ์ฌ์ฉํ ์ ์์ต๋๊น?
- ํ๋ก์์ ๋ฐ ํจ์์ ์ํธํ ๋ฐ ๋๋ ํ(๋ํ) - ์ฆ, ์ฝ์ ์ ์๋ ์ฝ๋๋ฅผ ์ฝ์ ์ ์๊ฒ ๋ง๋๋ ๋ณ๋์ ๋๊ตฌ ๋ฐ ์ ํธ๋ฆฌํฐ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ค์ ๋ฆฌํฉํ ๋งํ ์ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ ์ด๋ DBMS ์ธก์์๋ ๋๋๋ก ํ์ํฉ๋๋ค. ์ฆ, ๋ผ์ด์ผ์ค ์ ํ ๋ ผ๋ฆฌ ๋๋ ๊ถํ ๋ถ์ฌ ๋ ผ๋ฆฌ๋ ํ๋ก์์ ๋ฐ ๊ธฐ๋ฅ ์์ค์์ ์ ํํ๊ฒ ์ํธํ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ๊ฐ์์ฑ์ ํ(RLS)์ผ๋ก ์ ํํ๋ ๊ฒ์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ํ๋์ ํ ์ด๋ธ์ ๋ณผ ์ ์์ง๋ง ๊ทธ ์์ ํ ๊ตฌ์ฑ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ, ์ฆ ํ ์์ค์์ ๋๊ตฐ๊ฐ์๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ํ์ํ ์ ์๋ ๊ฒฝ์ฐ์ ๋๋ค.
- ํ์๋ ๋ฐ์ดํฐ๋ฅผ ํธ์ง(๋ง์คํน)ํ๋ ๊ฒ์ ํ ์ด๋ธ์ ํ ์ด์ ์๋ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ฑฐ๋ ๋ณํ๋ง ๋ณด๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ฆ, ์ผ๋ถ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ์ ๋ณด๊ฐ ๋ซํ๋๋ค. ์ด ๊ธฐ์ ์ ์ก์ธ์ค ์์ค์ ๋ฐ๋ผ ์ด๋ค ์ฌ์ฉ์์๊ฒ ๋ฌด์์ ํ์ํ ์ง ๊ฒฐ์ ํฉ๋๋ค.
- ๋ณด์ DBA/์ ํ๋ฆฌ์ผ์ด์ DBA/DBA ์ ๊ทผ ์ ์ด๋ ์คํ๋ ค DBMS ์์ฒด์ ๋ํ ์ ๊ทผ์ ์ ํํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ ๋ณด๋ณด์ ๋ด๋น์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ์๋ก ๋ถ๋ฆฌํ ์ ์์ต๋๋ค. ์คํ์์ค์๋ ๊ทธ๋ฌํ ๊ธฐ์ ์ด ๊ฑฐ์ ์์ง๋ง ์์ฉ DBMS์๋ ๊ทธ๋ฌํ ๊ธฐ์ ์ด ๋ง์ด ์์ต๋๋ค. ์๋ฒ ์์ฒด์ ์ก์ธ์คํ๋ ์ฌ์ฉ์๊ฐ ๋ง์ ๋ ํ์ํฉ๋๋ค.
- ํ์ผ ์์คํ ์์ค์์ ํ์ผ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํฉ๋๋ค. ๊ฐ ๊ด๋ฆฌ์๊ฐ ํ์ํ ๋ฐ์ดํฐ์๋ง ์ก์ธ์คํ ์ ์๋๋ก ๋๋ ํฐ๋ฆฌ์ ๋ํ ๊ถํ๊ณผ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
- ํ์ ์ก์ธ์ค ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ง์ฐ๊ธฐ - ์ด๋ฌํ ๊ธฐ์ ์ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
- DBMS์์ ์ง์ ์ํํ๋ ์ข ๋จ ๊ฐ ์ํธํ๋ ์๋ฒ ์ธก์์ ํค๋ฅผ ๊ด๋ฆฌํ๋ ํด๋ผ์ด์ธํธ ์ธก ์ํธํ์ ๋๋ค.
- ๋ฐ์ดํฐ ์ํธํ. ์๋ฅผ ๋ค์ด, ์ด ๊ธฐ๋ฐ ์ํธํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋จ์ผ ์ด์ ์ํธํํ๋ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
์ด๊ฒ์ด DBMS์ ์ฑ๋ฅ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์?
PostgreSQL์ ์ด ์ํธํ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. pgcrypto ๋ชจ๋์ด ์์ด ์ ํํ ํ๋๋ฅผ ์ํธํ๋ ํ์์ผ๋ก ์ ์ฅํ ์ ์์ต๋๋ค. ์ผ๋ถ ๋ฐ์ดํฐ๋ง ๊ฐ์น ์๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค. ์ํธํ๋ ํ๋๋ฅผ ์ฝ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ๋ ์ํธ ํด๋ ํค๋ฅผ ์ ์กํ๊ณ , ์๋ฒ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธ ํด๋ ํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ฐํํฉ๋๋ค. ํค๊ฐ ์์ผ๋ฉด ๋๊ตฌ๋ ๊ทํ์ ๋ฐ์ดํฐ๋ก ์๋ฌด๊ฒ๋ ํ ์ ์์ต๋๋ค.
pgcrypto๋ก ํ ์คํธํด๋ณด์. ์ํธํ๋ ๋ฐ์ดํฐ์ ์ผ๋ฐ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ํ ์ด๋ธ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๋ค์์ ํ ์ด๋ธ์ ์์ฑํ๋ ๋ช ๋ น์ ๋๋ค. ์ฒซ ๋ฒ์งธ ์ค์๋ DBMS ๋ฑ๋ก์ ํตํด ํ์ฅ ์์ฒด๋ฅผ ์์ฑํ๋ ์ ์ฉํ ๋ช ๋ น์ด ์์ต๋๋ค.
CREATE EXTENSION pgcrypto;
CREATE TABLE t1 (id integer, text1 text, text2 text);
CREATE TABLE t2 (id integer, text1 bytea, text2 bytea);
INSERT INTO t1 (id, text1, text2)
VALUES (generate_series(1,10000000), generate_series(1,10000000)::text, generate_series(1,10000000)::text);
INSERT INTO t2 (id, text1, text2) VALUES (
generate_series(1,10000000),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'));
๋ค์์ผ๋ก, ๊ฐ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ์ํ์ ๋ง๋ค์ด ์คํ ํ์ด๋ฐ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ํธํ ๊ธฐ๋ฅ์ด ์๋ ํ ์ด๋ธ์์ ์ ํ:
psql -c "timing" -c "select * from t1 limit 1000;" "host=192.168.220.129 dbname=taskdb
user=postgres sslmode=disable" > 1.txt
์คํฑ์์น๊ฐ ์ผ์ ธ ์์ต๋๋ค.
์์ด๋ | ํ
์คํธ1 | ํ
์คํธ2
โโ+โโ-+โโ-
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
...
997 | 997 | 997
998 | 998 | 998
999 | 999 | 999
1000 | 1000 | 1000
(1000๋ผ์ธ)
์๊ฐ: 1,386ms
์ํธํ ๊ธฐ๋ฅ์ด ์๋ ํ ์ด๋ธ์์ ์ ํ:
psql -c "timing" -c "select id, decrypt(text1, 'key'::bytea, 'bf'),
decrypt(text2, 'key'::bytea, 'bf') from t2 limit 1000;"
"host=192.168.220.129 dbname=taskdb user=postgres sslmode=disable" > 2.txt
์คํฑ์์น๊ฐ ์ผ์ ธ ์์ต๋๋ค.
์์ด๋ | ํด๋
| ํด๋
ํ๋ค
โโ+โโโโโ+โโโโ
1 | x31 | x31
2 | x32 | x32
3 | x33 | x33
...
999 | x393939 | x393939
1000 | x31303030 | x31303030
(1000๋ผ์ธ)
์๊ฐ: 50,203ms
ํ ์คํธ ๊ฒฐ๊ณผ:
์ํธํ ์์ด
Pgcrypto(์ํธํด๋
)
1000๊ฐ ํ ์ํ๋ง
1,386 ๋ฐ๋ฆฌ ์ด
50,203 ๋ฐ๋ฆฌ ์ด
CPU
15%
35%
๋จ
5%
์ํธํ๋ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ํธํ๋ ๋ฐ์ดํฐ์ ์ํธ ํด๋ ์์ (๋ฐ ์ํธ ํด๋ ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ ํ ๋ ผ๋ฆฌ์ ๋ํ๋์ด ์์)์ ์๋นํ ๋ฆฌ์์ค๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ํ์ด๋ฐ์ด ๋์ด๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ฆ, ์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๋ชจ๋ ์ด์ ์ํธํํ๋ค๋ ์์ด๋์ด๋ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ํธํ๊ฐ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ง๋ฅ์ ์๋๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณตํธํํ๊ณ ์ ์กํ๋ ๊ณผ์ ์์ ๋ณตํธํ๋ ๋ฐ์ดํฐ์ ๋ณตํธํ ํค๋ ์๋ฒ์ ๋ณด๊ด๋ฉ๋๋ค. ๋ฐ๋ผ์ ์์คํ ๊ด๋ฆฌ์์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ๋ํ ์ ์ฒด ์ก์ธ์ค ๊ถํ์ ๊ฐ์ง ์ฌ๋์ด ํค๋ฅผ ๊ฐ๋ก์ฑ ์ ์์ต๋๋ค.
๋ชจ๋ ์ฌ์ฉ์์ ์ ์ฒด ์ด์ ๋ํด ํ๋์ ํค๊ฐ ์๋ ๊ฒฝ์ฐ(๋ชจ๋๋ ์๋์ง๋ง ์ ํ๋ ์ธํธ์ ํด๋ผ์ด์ธํธ์ ๊ฒฝ์ฐ) ์ด๊ฒ์ด ํญ์ ์ข๊ณ ์ฌ๋ฐ๋ฅธ ๊ฒ์ ์๋๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ค์ ์๋ํฌ์๋ ์ํธํ๋ฅผ ์์ํ๊ณ , DBMS์์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ธก์์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ์ต์ ์ ๊ณ ๋ คํ๊ธฐ ์์ํ์ผ๋ฉฐ ๋์ผํ ํค ๋ณผํธ ์ ์ฅ์๊ฐ ๋ํ๋ฌ์ต๋๋ค. ์ฆ, DBMS์์ ํค ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๋ณ๋์ ์ ํ์ ๋๋ค. ์.
์์ฉ ๋ฐ ์คํ ์์ค DBMS์ ๋ณด์ ๊ธฐ๋ฅ
๊ธฐ๋ฅ
์ ํ
์ํธ ์ ์ฑ
ํ๊ณ ๊ฐ์ฌ
ํ๋ก์์ ๋ฐ ํจ์์ ์์ค ์ฝ๋ ๋ณดํธ
RLS
์ํธํ
์ ํ
์์
์ฉ
+
+
+
+
+
MsSQL
์์
์ฉ
+
+
+
+
+
์์
์ฉ
+
+
+
+
ํ์ฅ
PostgreSQL
๋ฌด๋ฃ
ํ์ฅ
ํ์ฅ
-
+
ํ์ฅ
๋ชฝ๊ณ DB
๋ฌด๋ฃ
-
+
-
-
MongoDB Enterprise์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
ํ๋ ์์ ํ์ง ์์ง๋ง ์ํฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์์ฉ ์ ํ์์๋ ๋ณด์ ๋ฌธ์ ๊ฐ ์ค๋ซ๋์ ํด๊ฒฐ๋์์ผ๋ฉฐ ์คํ ์์ค์์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ณด์์ ์ํด ์ผ์ข
์ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ์ฌ์ฉ๋๋ฉฐ ๋ง์ ๊ธฐ๋ฅ์ด ๋๋ฝ๋์์ต๋๋ค. , ๋๋ก๋ ๋ญ๊ฐ๋ฅผ ์ถ๊ฐํด์ผ ํ ๋๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋น๋ฐ๋ฒํธ ์ ์ฑ
- PostgreSQL์๋ ๋ค์ํ ํ์ฅ ๊ธฐ๋ฅ์ด ์์ต๋๋ค(
์ด๋์๋ ํ์ํ ๊ฒ์ด ์๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?? ์๋ฅผ ๋ค์ด, ๊ณ ๊ฐ์ด ์๊ตฌํ๋ ๊ธฐ๋ฅ์ด ์๋ ํน์ DBMS๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ Crypto DB ๋๋ Garda DB์ ๊ฐ์ ๋ค์ํ DBMS์์ ์๋ํ๋ ํ์ฌ ์๋ฃจ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ตญ๋ด ๋ถ๋ฌธ์ ์๋ฃจ์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ฉด ์คํ ์์ค๋ณด๋ค GOST์ ๋ํด ๋ ์ ์๊ณ ์์ต๋๋ค.
๋ ๋ฒ์งธ ์ต์ ์ ํ์ํ ๊ฒ์ ์ง์ ์์ฑํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก์์ ์์ค์์ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ฐ ์ํธํ๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค. ์ฌ์ค, GOST๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ํ์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์จ๊ธฐ๊ณ DBMS์ ๋ฃ์ ๋ค์ ํ์์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ค์์ ๋ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ณ ํด๋ ํ ์ ์์ต๋๋ค. ๋์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ป๊ฒ ๋ณดํธํ ๊ฒ์ธ์ง ์ฆ์ ์๊ฐํด ๋ณด์ญ์์ค. ์ฐ๋ฆฌ ์๊ฐ์๋ ์ด ์์ ์ด ๋ ๋น ๋ฅด๊ฒ ์๋ํ๊ธฐ ๋๋ฌธ์ DBMS ์์ค์์ ์ํ๋์ด์ผ ํฉ๋๋ค.
์ด ๋ณด๊ณ ์๋ ์์ ์ฒ์ ๋ฐํ๋์์ต๋๋ค.
์ฃผ์ ์ ๋ํด ๋ ์ฝ์ ๋ด์ฉ:
Ceph ๊ทธ ์ด์: MCS ํด๋ผ์ฐ๋ ๋ธ๋ก ์คํ ๋ฆฌ์ง .๋ค์ ์ ํํ ํ์๊ฐ ์๋๋ก ํ๋ก์ ํธ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ .
์ถ์ฒ : habr.com