
โ๋๊ท๋ชจ ํธ๋ํฝ ๊ฒฝํโ์ด๋ผ๋ ํ์
โ๋๊ท๋ชจ ํธ๋ํฝ ๊ฒฝํโ์ด๋ผ๋ ํ์ ๊ด๋ จ
โ์๋ฌด๋ ๋์๊ฒ ๋๊ท๋ชจ ํธ๋ํฝ์ ๊ฒฝํ์์ผ ์ฃผ์ง ์๋๋คโ
๋ผ๋ ๋ง์ ๋๊ตฐ๊ฐ ํ๋ค๋ ๊ฑธ ์ง๋๊ฐ๋ค ์ฃผ์๋ค์๋ค.
๋ญ ๋ฐ๋ผ๊ณ ํ ๋ง์ผ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.
๋ค๋ง ๋์์ด ๋ ์ ์๋ค๋ฉด ๋์ ์ด์ผ๊ธฐ๋ฅผ ๋ค๋ ค์ฃผ๊ณ ์ถ๋ค.
์ด๋ค ๊ธฐ๋๊ฐ ์์๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๋ค ๋ฃ๊ณ ๋๋ฉด ํ์์ด ๊นจ์ง์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.
์๋ฌธ
์ฃผ์ ๋ **โ๋๊ท๋ชจ ํธ๋ํฝโ**์ด๋ค.
**โํธ๋ํฝโ**์ด๋ผ๋ ๋ง์ด ๋ค์ด๊ฐ ์ด ๊ธ์์ ์ด๋ค ํค์๋๋ค์ด ๋์ฌ์ง ๊ฐ๋จํ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ํ์๋ฉด ์ด๋ ๋ค.

๋ค์ ํค์๋๋ฅผ ๊ธ๋ก ๋์ดํ์๋ฉด ์ด๋ฐ ๊ฒ๋ค์ด ์์ ๊ฒ์ด๋ค.
- ๋ง ๊ทธ๋๋ก, ์ ์ ์ ํธ๋ํฝ
- ํธ๋ํฝ์ด 1์ฐจ์ ์ผ๋ก ์ ๊ทผํ๋ ์ธํ๋ผ
- ์ธํ๋ผ๊ฐ ํธ๋ํฝ์ ์ ๋ฌํด ์ค ์์คํ
- ์์คํ ์ ํ๋ก์ธ์ฑ์ผ๋ก ๋ฐ์ํ๋ ๋ก๊ทธ
- ์์คํ ์ ์์ ํ๊ณ ๋ก๊ทธ๋ฅผ ๊ฒ์ํ๋ ๊ด๋ฆฌ ๋๊ตฌ
๋ฐฐ๊ฒฝ
๊ฐ๋ฐ์๋ฅผ ์ฒ์ ํ๋ ๋น์, ๋๋ ์ด ๋ชจ๋ ๊ฑธ ๋ค ๊ฒช์๋ค. 2018๋ 6์๋ถํฐ 2020๋ 3์์ฏค๊น์ง์๋ค.
๋๋ ์์๋ถํฐ ์ง์ ์ต๊ฐ์ ๊ฐ๋ฐ์์๋ ๊ฒ์ ์๋์๋ค.
๋ํ, ํ์ฌ ์ด๋ฆ์ ๋ฐ๋ก ์ธ๊ธํ์ง๋ ์๊ฒ ๋ค.
์ด ๊ธ์ ์ฝ๋ ์ฌ๋ฌ๋ถ ์ญ์ ํน์๋ ์ ๊ฒ ๊ฐ๋ค ํด๋ ์ธ๊ธํ์ง ์๊ธธ ๋ฐ๋๋ค.
๋น์ ๋๋ ์น ํผ๋ธ๋ฆฌ์ ๋ฅผ ๊ทธ๋ง๋๊ณ ๊ฐ๋ฐ์๋ก ์ฒซ ์ปค๋ฆฌ์ด๋ฅผ ์์ํ๊ณ , ์๋ก ๊ฐ ํ์ฌ์๋ ์์ฅํ์ง๋ผ๋ ์ฌ๊ฑด์ด ํฐ์ก๋ค.
300๋ช ๋๋ ์ง์๋ค์ด ์ผ์ ํ ํผ๋์ด๋ผ๋ ๊ฐ๋ฏ ๋๋ง์ณ๋ฒ๋ ค ์ ๋๋ก ๋ ์ธ์์ธ๊ณ ๋ฌธ์๋ฅผ ๋จ๊ธธ ํ์กฐ์ฐจ๋ ์์๋ ๋ฏํ๋ค.
๋๋ ๊ทธ๋ฐ ์ผ๋ จ์ ์ฌ๊ฑด ์ดํ์ ์ ์ฌ๋ฅผ ํ๋ค. ์ ๋๋ก ์ธ์์ธ๊ณ๋ฅผ ๋ฐ์ ์ฌ๋๋, ๋ฌธ์๋ ์์ด, ๋๋ณด๋ค ์กฐ๊ธ ๋จผ์ ์ ๋ณด๋ฅผ ์ต๋ํ ๋๋ฃ๋ค์๊ฒ ์ ๋ณด๋ฅผ ๊ณต์ ๋ฐ๋ ๊ฒ์ด ๊ณ ์์ด์๋ค.
๋ด๊ฐ ๋งก์ ์ผ์ ํ์ฌ์ ๋ชจ๋ ์ธํ๋ผ ๊ด๋ฆฌ ๋ฐ ๊ฐ๋ฐ์ด์๋ค.
์๋ ์ธ ์ผ๋ค์ ์์ฐจ์ ์ผ๋ก ์ผ์ด๋ฌ๋ค๊ธฐ๋ณด๋จ ๋์๋ค๋ฐ์ ์ผ๋ก, ํน์ ์ฐ์์ผ๋ก ํฐ์ ธ์ ํ๋ํ๋ ์ค๋นํ ํ์ด ์์๋ค. (์ ์ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋นํ๊ธฐ์๋ ๊ฝค๋ ๋ฒ ์ฐฌ ์ผ๋ค์ด์๋ค) ๊ทธ๋ ๊ฒ ์ฐ๋ฆฌ๋ ํญ์ ์ผ๊ทผ์ ์๋ฌ๋ ธ๋ค.

์ ์ ํด๊ทผ์ ์ธ์ ํด๋ดค๋์ง๋ ๊ธฐ์ต๋ ์ ๋ ์ ๋๋ก ํ๋ค์์ง๋ง, ๊ทธ๋๋ ์ฐ๋ฆฌ๋ค์ ์ฐ๋ฆฌ ํ์ฌ๋ฅผ ์ฌ๋ํ๊ณ , ์ฐ๋ฆฌ์ ์ผ์ ์ฌ๋ํ๊ณ , ๊ทธ๋ ๊ฒ ๊ณ ์ํ๋ ์ฐ๋ฆฌ๋ค์ ์ฌ๋ํ๊ธฐ์ ์ด๋ป๊ฒ๋ ๋ฒํ จ๋๋ ๊ฒ ๊ฐ๋ค.
ํ์ฌ ๋ฐ๊นฅ์ ๋ชจ๋ ์ฌ๋์ ๊ณง ํ์ฌ๊ฐ ๋ฌด๋์ง๋ฆฌ๋ผ ์๊ณ ์์์ง๋ง, ์์ธ๋ก ํ์ฌ๋ ์ง๊ธ๊น์ง๋ ๊ฑด์ฌํ๋ค. (๋น๋ก ๋๋ ํ์ธ(?)์ ์ง๋ ํ ๋น๋ฐ์ด๋ผ๊ณ ์ ์น๋์๋ค ํด๋) ๋ญ๊ฐ ์ด์ฐ ๋์๋ ์ฐ๋ฆฌ๋ค์ ๊ณ ์์ด ํ๋์ง ์์๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ก ํ์ฌ๊ฐ ์ง๊ธ๊น์ง๋ ๊ฑด์ฌํ๋ค๋ ์ฌ์ค์ ๊ฐ๊ฐ๋ฌด๋ํ ๋ฟ์ด๋ค.
ํธ๋ํฝ
๊ทธ๋ ๋ด๊ฐ ๋ค๋ ํ์ฌ๋ ๊ฒ์ ํผ๋ธ๋ฆฌ์ฑ ๊ธฐ์ ์ด์๋ค.
- ์ฐ๋ฆฌ ํ์ฌ๊ฐ ๊ฐ๋ฐํ ๊ฒ์์ ์ง์ ์ ํตํ๊ฑฐ๋
- ๋ค๋ฅธ ํ์ฌ๊ฐ ๊ฐ๋ฐํ ๊ฒ์์ ์ ํตํด ์ฃผ๊ฑฐ๋
์ด๋ฐ ์ผ์ ํด์ ๋์ ๋ฒ๋ ํ์ฌ์๋ค๋ ๋ป์ด๋ค.

ํผ๋ธ๋ฆฌ์ฑ์ฌ์ด๊ธฐ์ ํ์ฌ๋ ํ๋ซํผ ์๋ฒ๋ฅผ ๋ฐ๋ก ์ด์ฉํ๋ค. (๋๋ ํ๋ซํผ ๊ฐ๋ฐํ์ด์๋ค.) ๊ทธ๋ ๊ธฐ์ ๋ชจ๋ ํธ๋ํฝ์ ๊ทผ์์ ๊ฐ๊ฐ ๊ฒ์ ์๋ฒ์์ ์ค๋ ์ ์ ๋ค์ ํธ๋ํฝ์ด์๋ค. ๊ฒ์ ์๋ฒ๊ฐ ์ ์ ์ ํธ๋ํฝ์ ๊ฒฌ๋ ์ ์๋๋ก ๊ด๋ฆฌํด์ผ ํ๊ณ , ๊ฒ์ ์๋ฒ๋ค์ ์ผ์ ํ ํ๋ซํผ ์๋ฒ๋ก ์์ฒญ์ ํ๊ธฐ์ ํ๋ซํผ ์๋ฒ๊ฐ ํธ๋ํฝ์ ๊ฒฌ๋ ์ ์๊ฒ ๊ด๋ฆฌ๋ ํด์ผ ํ๋ค.
์ผ ์ ์์์ ๋์ ์ํฉ
๋น์ ์ด์ํ๋ ๊ฒ์์ 3๊ฐ์๋ค.
ํ๋๋ ๋ค๋ฅธ ๊ฐ๋ฐ์ฌ์์ ๋ง๋ ๊ฒ์์ ํผ๋ธ๋ฆฌ์ฑํ๋ ๊ฒ์ด์๊ณ , ๊ตฌ๊ธ/์ ํ ๊ฒ์ ์์ 100์ ์์ ๋๋ ๊ฒ์์ผ๋ก, ์ผ ์ ์์๊ฐ ์๋ง ๋ช ์์ค์ด์๋ค. ๋์ ์ ์์ฒ๋ช ์ ๋.
ํ๋๋ ํ์ฌ์์ ์ง์ ๊ฐ๋ฐํ ๊ฒ์์ผ๋ก, ๊ตฌ๊ธ/์ ํ ๊ฒ์ ์์ 150์ ์์ ๋๋ ๊ฒ์์ด์์ผ๋ฉฐ, ์ผ ์ ์์๋ ๋ง ๋ช ์ ํ์๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํ๋ค. ๋์ ์ 100~700 ์ ๋ ์๋ค ๊ฐ๋ค ํ๋ค.
(๋๋จธ์ง ํ๋๋โฆ ๊ทธ๋ง ์์๋ณด๋๋ก ํ์)
์ด๋ฒคํธ ์ด๋ฆฌ๋ฉดโฆ
๋ค๋ง ๋ด๊ฐ ์ ์ฌํ๋ ์๊ธฐ๋ ๊ธฐ์กด์ ๊ด๋ฆฌํ๋ ์ฌ๋๋ค๋, ์ธ์์ธ๊ณ ๋ฌธ์๋ ์๊ธฐ์, ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผ ํ ์ง ๋ชจ๋ฅด๋ ์ํฉ์ด์๋ค.
๊ทธ๋ฌ๋ค ๊ฐ๊ฐ ๊ฒ์์ ์ด๋ฒคํธ๋ผ๋ ์ด๋ฆฌ๋ฉด, ํ์ ์๋ง ๋ช ์ด ๋ชฐ๋ฆฌ๋ ์๋ฒ์๋ ์์ญ ๋ง๋ช ์ด ๋ชฐ๋ ธ๊ณ , ๋ฐฑ๋ง ๋ช ์ด ๋์ด๊ฐ ๋๋ ์ข ์ข ์์๋ค. ๋์ ์๊ฐ ์ญ๋ง ๋ช ์ ๋๊ธฐ๊ธฐ ์์ํ๋ฉด ๊ทธ ํธ๋ํฝ์ ์ฝํ๋์ฝํ ์๋ฒ๋ฅผ ์ฃฝ์ด๊ธฐ์ ๋ถ์กฑํจ์ด ์์๋ค.

๊ทธ๋์ ์ ์ฌ ์ด๋ฐ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผ ํ๋์ง ํ์ ํ๊ธฐ ์ ๊น์ง๋ ์๋ฒ ์ฅ์ ๊ฐ ๊ต์ฅํ ์ฆ์์ผ๋ฉฐ, ๋ชจ๋ ์ธํ๋ผ์ ์์คํ ์ด ์๊ฑฑ๊ฑฐ๋ ธ๋ค. ๋ชจ๋ ์ํฉ์ด ์ฐ๋ฆฌ์๊ฒ ๋งค ์๊ฐ ํฌ๊ธฐ๋ฅผ ์ข ์ฉํ๋ ๊ฒ ๊ฐ์๋ค.

ํ์ง๋ง ๋๋ ํผ์๊ฐ ์๋์๊ณ , ๋๋ฃ๋ค๊ณผ ํ์ ํฉ์ณ ์ด๋ป๊ฒ๋ ์๋ง์ ์ญ๊ฒฝ์ ํค์ณ๋๊ฐ๋ค.
์ฐ๋ฆฌ๋ค์ ์ฐ๋ฆฌ๋ค์ ํ์ฌ๋ฅผ ์ฌ๋ํ๊ณ , ์ผ์ ์ฌ๋ํ๊ณ , ๊ทธ๋ ๊ฒ ๊ณ ์ํ๋ ์๋ก๋ฅผ ์ฌ๋ํ๊ธฐ์ ๋ง์ด๋ค.
์ด๋ โ์ฐ๋ฆฌโ๋ ๊ฐ๋ฐํ ๋ง๊ณ ๋ ์ด์ํ, QAํ๊ณผ ์ฌ์ ํ ๋ฑ๋ฑ์ ํ์ฌ ๊ตฌ์ฑ์ ๋ชจ๋๋ฅผ ๋ปํ๋ค.
๊ทธ๋์ ๋น์ ์ฐ๋ฆฌ๋ ์๋ฒ๊ฐ ํฐ์ ธ์ ์๋น์ค๊ฐ ์ค๋จ์ด ๋๋ฉด, ํ๋ฃจ, ์ดํ, ์๋ ์ผ์ฃผ์ผ ๋ด๋ด ํด๊ทผ์ ๋ชปํ๋ฉด์๋, ๊ฒจ์ธ์ ํจ๋ฉ์ ๋ค์ง์ด์ฐ๊ณ ์์์ ์ ํฌ๋ ค ์ฅ์ ๋ณต๊ตฌ ์กฐ์น๋ฅผ ํ๋ค. ๊ต๋๋ก ๋์๊ฐ๋ฉด์๋ผ๋ ์ต๋ํ ๋นจ๋ฆฌ ์๋น์ค๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ค.
์ธํ๋ผ
ํ์ฌ์์๋ AWS๋ ์ฌ์ฉํ๊ณ , ๋ฐฐ์ด๋ฉํ ์ฅ๋น๋ฅผ IDC์ ๋ฃ์ด๋๊ณ ์ด์ฉํ๊ธฐ๋ ํ๋ค. IDC์ ๋ค์ด ์๋ ์ฅ๋น๋ 6~7๋ ์ ๋ ์ฐ์์ด ์์๋ค. ~(๊ณง ์ด๋ฑํ๊ต์ ๋ณด๋ด์ผ ํ ์ ๋์๋ค)~
์ด๋ฐ ๋ค์ ์ฅ๋น๋ฅผ Docker Orchestration์ผ๋ก ์ด์ฉํ๊ธฐ ์ํด ์ ์กฐ(?)๋ค์ IDC์ fleet(deprecated) (coreos/fleet
)์ ๊ตฌ์ถํด ๋๊ธฐ๋ ํ๋ค. (ํ์ ์ด๊ฒ์ ์์ฒญ๋ ์ฌ์์ด ๋์๋ค)
์๋ฒ์ ์ฆ์ค๊ณผ ๋คํธ์ํฌ ์ ๊ทผ ์ ์ด์์ ์ ๋ฌธ์
์ด๋ฒคํธ๊ฐ ์ด๋ ธ์ ๋ ํฐ์ง๋ ๊ฑด ๊ฒ์ ์๋ฒ์์ผ๋ฏ๋ก, ๊ฒ์ ์๋ฒ๋ฅผ ์ฆ์คํ๋ ค๊ณ ์ฒ์ ์๋ํ์ ๋ ์๊ธด ์ผ์ด๋ค.
์๋ฒ๋ฅผ ์ฆ์คํ๊ณ ๋๋ ๊ฒ์์ ํ๋ ์ดํ๋ ์ ์ ๋ค์ด ๋๋คํ๊ฒ ์๋ฌ๋ฅผ ๋ง๋๊ณ ์๋ค๋ ์ ๋ณด๊ฐ ๋ค์ด์๋ค.

์ดํดํ๊ธฐ ์ฝ๊ฒ ์ค๋ช ํ์๋ฉด ์์ ๊ฐ์ ๊ทธ๋ฆผ์ ์ํฉ์ธ๋ฐ, ์ด ์ํฉ๊น์ง ์ดํดํ๋ ๋ฐ๋ ๊ฝค๋ ์ ๋ฅผ ๋จน์๋ค.
์ฐ๋ฆฌ๋ ์ ๋๋ก ์ธ์์ธ๊ณ๋ฐ์ ๊ฒ ์์๋ค. (๊ณ์ ๊ณผ pem
ํค ๋ง๊ณค ๋ฐ์ ๊ฒ ์๋ค๊ณ ํ ์ ๋๋ก) ํ๋ซํผ ์๋ฒ๊ฐ ์ ๊ทผ ์ ์ด๋ฅผ deny all์ ๊ธฐ๋ฐ์ผ๋ก allow list๋ฅผ ๋ง๋ค์ด์ ์ด์ํ๋ค๋ ๊ฑธ ๋ค๋ฆ๊ฒ ๊นจ๋ซ๊ฒ ๋์๋ค. ์ง๊ธ์ด๋ผ๋ฉด ๊ฒ์ ์๋ฒ ์ชฝ์ outbound ์ง์ ์ ํ๋๋ก ๋ฌถ๊ณ , static IP๋ฅผ ๊ตฌ๋งคํ์ฌ public IP๋ฅผ ํ๋๋ก ๋ง๋ค์์ ํ
๋ฐ, ๋น์ ๊ฒฝํ๊ณผ ์ง์์ด ๋ถ์กฑํ ์ฐ๋ฆฌ๋ค์ ๊ทธ๋ฐ ๊ฑธ ๋ชฐ๋๋ค.
๊ทธ๋์ ์ดํ์ ๊ฒ์ ์๋ฒ์ ์ฅ์ ๊ฐ ๋์ ํ๋์ ๊บผ์ ธ ์๋ค๊ฐ ๋ค์ ์ผค ๋, public IP๊ฐ ๋ฐ๋๋ ์ผ์ด๋ผ๋ ์๊ธฐ๋ฉด ๋งค๋ฒ ํ๋ซํผ ์๋ฒ์ ์ ๊ทผ ์ ์ด๋ฅผ ์์ ํด ์ค์ผ ํ๋ค.
์๋ชป ์ค์ผ์คํธ๋ ์ด์ ๊ตฌ์ฑ์ด ๋ถ๋ฅธ ๋์ฐธ์ฌ
IDC์ ๋ฐฐ์ด๋ฉํ๋ก ๊ตฌ์ฑํ fleet(deprecated) (coreos/fleet
)์๋ ๋ฌธ์ ๊ฐ ์๊ฒผ๋๋ฐ, ์ฌ๋ฌ ๊ฐ์ ๋
ธ๋ ์ค ํ๋๊ฐ ์ฅ๋น ๋
ธํํ๋ก ์ฃฝ์๋ค. ๋ณดํต ์ด๋ฐ ๊ฒฝ์ฐ์ ์ฃฝ์ ๋
ธ๋์์ ์คํ๋๋ ์ปจํ
์ด๋๊ฐ ์ฌ์ ๊ฐ ์๋ ๋ค๋ฅธ ๋
ธ๋์ ๋จ๋ ๊ฒ ์ ์์ ์ธ ๋์์ด๋ค.
๊ทธ๋ฌ๋ fleet
์ ๋ฑ๋ก๋ ๋ชจ๋ ์ปจํ
์ด๋๊ฐ ๊บผ์ก๋ค ์ผ์ก๋ค ํ๋ ํ๋ํ๊ธฐ๋ฅผ ํ๊ธฐ ์์ํ๋ค.

๋์ฒด ์ ์กฐ(?)๋ค์ด ์ด๋ป๊ฒ ์ค์ ํ๊ธธ๋ ์ด๋ฆฌ๋ ๊ฑด์ง๋ ์ ์ ์์ผ๋, ์๋ฌดํผ ์ํฉ์ ๊ทธ๋ฌํ๋ค.
IDC๋ก ๋ฌ๋ ค๊ฐ ๋ฐฐ์ด๋ฉํ ์ฅ๋น์ ์ง์ ์ ๊ทผํด fleet ์ฐ๋์ ๋๊ณ ์ปจํ ์ด๋๋ฅผ ์๋์ผ๋ก ์ฌ๋ ค์ ์กฐ์นํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ ๊ฑฐ๊ธฐ์ ์์ฒญ๋ ๋ณ์๋ฅผ ๋ง๋๊ฒ ๋๋ค.
์ฐ๋ฆฌ์๊ฒ ์ด fleet node์ ์ ๊ทผํ ์ ์๋ pem ํค๋, ๋ฐฐ์ด๋ฉํ ์ฅ๋น์ ์ง์ ๋ก๊ทธ์ธํ ๊ณ์ ๊ณผ ํจ์ค์๋๋ ์์๋ค. ๊ฒฐ๊ตญ ๋์คํฌ๋ฅผ ๋ฝ์ ๋ค๋ฅธ ์๋ฒ์ ์ง์ด๋ฃ๊ณ ๋ง์ดํธ์์ผ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๊ณ ๋์ง์ด๋ธ ๋ค์, ์ปจํ ์ด๋๋ฅผ ์๋์ผ๋ก ์ฌ๋ฆฌ๋ ๊ฒ์ผ๋ก ํด๊ฒฐํ๋ค. ๊ทธ ๋ค, fleet์ผ๋ก ๋ฑ๋ก๋ ๋ชจ๋ ๋ฐฐ์ด๋ฉํ ์ฅ๋น๋ฅผ ๋ฝ์์ ํ์ฌ์ ๊ฐ์ ธ์๋ค.
(์์นด๋ฅผ ๋น๋ ค์ ๊ฐ์ ธ์๋๋ฐ, ํธ๋ ํฌ์ ์ฅ๋น๋ฅผ ์ค์ผ๋ ์ฐจ๊ฐ ์ฝ๊ฐ ๋ค๋ก ๋์ ๋ค)
ํ์ฌ์ ๊ฐ์ ธ์์ ํ๋์ฉ ์ผ๋ณด๋ ์ฐธ ๊ฐ๊ด์ด์๋ค. ์ด๋๊ฐ ๊ณ ์ฅ์ด ๋์ ์ ์ผ์ง๋ ์ฅ๋น๋ถํฐ, ์น ๋ฐ๊ณ ํด๋ฆฐ์ค์น ํ๋ ค๊ณ ํ๋ ๋์คํฌ์ ์์์ด ๊ฐ์์ด์ ๋ชป ์ฐ๋ ๊ฒ๋ ์์๊ณ , ๊ทธ๋ฐ ๊ฒ๋ค์ ์ ๋ถ ๋ฏ๊ณ ์ฌ์กฐ๋ฆฝํด์ ์ธ ์ ์๋ ์ํ๋ก ๋ง๋ค์ด ํด๋ฆฐ์ค์น ํ ๋ค์ ๋ค์ IDC์ ๊ฐ๋ค ๋ฃ์ ์ผ๋ ์๊ฒผ๋ค.
์์คํ
MongoDB ๋ฐฐ์ด๋ฉํ ์๋ฒ์ ์ฉ๋์ด ๊ฐ๋ ์ฐผ๋ ์ผ
๋ค๋ฃจ๋ ๊ฒ์ ์ค์๋ MongoDB๋ฅผ ์ฐ๋ ๊ฒ์์ด ์์๋ค.
๊ทธ ๊ฒ์์ 1TB SSD๊ฐ ๊ผฝํ ์๋ ๋ฐฐ์ด๋ฉํ ์๋ฒ ํ๋๋ฅผ ํต์ผ๋ก ์ฐ๊ณ ์์๋ค.
(์ฌ์ค ์ฌ๊ฑด์ด ํฐ์ง ๋๊น์ง MongoDB๋ฅผ ์ฐ๋์ง๋ ๋ชจ๋ฅด๊ณ ์์๋ค. ์ ํํ๋, ์์ ์๋ง์ ์ฌ๊ฑด์ ์ํด ์ ์ฌ๋ ฅ์ด ์์๋ค.)
์ฒ์์ replication์ ๋ง๋ค์ด ๊ทธ๊ฑธ๋ก ์ด๋ป๊ฒ๋ ํด๋ณผ ์๊ฐ์ด์๋๋ฐ, master node์ ์ ์ฒด ์ฉ๋์ 40% ์ด์ ์ฌ์ ๊ฐ ์์ด์ผ ํ๋ค๋ ๊ฑธ ์๊ณ ์ข์ ํ๋ค. ์์ ์ธ๊ธํ fleet ์ฌ๊ฑด์ด ํฐ์ง ์งํ ์๊ธด ์ผ์ด๋ผ, ๋์คํฌ๋ฅผ ๋ฝ์์ ๋ค๋ฅธ ๋ฐ ๊ผฝ๊ณ ํ ์ฉ๊ธฐ๊ฐ ๋์ง ์์๋ค. ๋ถํ ์ ๋๋ ๊ฑธ ๋ฝ์ ๋ค๋ฅธ๋ฐ ๊ผฝ์๋ง์ ์์๋์ด ๋ชป ์ฝ๋ ์ํ๊ฐ ๋๋ ๊ฑธ ๋์ผ๋ก ๋ดค๋ ์งํ์์ผ๋ ๋ง์ด๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ rsync๋ก ๋ก์ปฌ์ data ํด๋ ์ ์ฒด๋ฅผ ๋ณต์ฌํด ์๋ค. ๋๋ต 6์๊ฐ์ฏค ๊ฑธ๋ ธ๋๋ฐ, ๊ฒจ์ธ์ ํจ๋ฉ์ ๋ค์ง์ด์ฐ๊ณ ์์์ ์ ํฌ๋ ค ์์, ์๋ฒฝ์๋ ๊ต๋๋ก ์ง์ผ๋ณด๋ฉฐ ๋ณต์ฌํ๋ค ์ด์์ด ์๊ธฐ๋์ง ๋ณด๊ณ ์์๋ค.

๋ณต์ฌ๊ฐ ๋๋๊ณ ๋์, ์์ ์ ์ํด ๋ก์ปฌ to ๋ก์ปฌ๋ก ํ๋ ๋ ๋ณต์ฌํ๋ ๋ฐ๋ง ํด๋ ํ ์๊ฐ ์ ๋ ๊ฑธ๋ ธ๋ ๊ฑธ๋ก ๊ธฐ์ตํ๋ค. (์ง์ํ ์ฉ๋์ ํ์ผ์ด ๋๋ฌด ๋ง์๋ค)
8์ฃผ๋ ์ ๋ง์ ๊ฒ์์ด๋ค ๋ณด๋, MongoDB๋ 2.6 ๋ฒ์ ์ ์ฐ๊ณ ์์๋ค. 2019๋ ์ธ ๋น์์๋ ๊ต์ฅํ ๊ตฌ๋ฒ์ ์ด์๋ ๊ฑธ๋ก ๊ธฐ์ตํ๋ค. ๋๋ฌด ๊ตฌ๋ฒ์ ์ด๋ผ ๋ ๋์ ๋ฒ์ ์ผ๋ก ์ฌ๋ ค๋ณด๊ณ ์ ํ๋๋ฐ, ๋ ๋์ ๋ฒ์ ์์๋ ํด๋น data ํด๋๋ฅผ ์ฝ์ด ๋ค์ด์ง ๋ชปํ๋ค. ์ด์ฉ ์ ์์ด 2.6 ๋ฒ์ ๊ทธ๋๋ก, 10TB์ง๋ฆฌ SSD๋ก ๋ฐ์ดํฐ๋ฅผ ์ด์ ์์ผ IDC์ ๊ฐ๋ค๋ฃ๋ ๊ฑธ๋ก ํด๊ฒฐํ๋ค.
Redis๋ฅผ DB์ฒ๋ผ ์ฐ๋ ์์คํ ์ ์ ์ฐธ์ฌ
Redis Cluster๊ฐ ๋์ค๊ธฐ ์ ์ ๋์จ ์ค๊ณ๋ผ, CodisLabs/codis
๋ผ๋ ๊ฑธ ์ฌ์ฉํ ์๋ฒ๊ฐ ์์๋ค.
๊ทธ๋ฌ๋ค 64GB ํด๋ฌ์คํฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฝ ์ฐจ ๊ฒ์์ด ํฐ์ง ์ผ์ด ๋ฒ์ด์ก๋ค. ์ฐ๋ฆฌ๋ codis ๊ตฌ์ฑ์ ๋ํด ์ธ์์ธ๊ณ๋ฐ์ ๋ฐ๊ฐ ์์๊ธฐ์, ์ด ์ฌํ๊ฐ ํฐ์ง๊ธฐ ์ ๊น์ง ์ ๊ธธ์ด ์ ํ ์์๋ค.
์๋ฒ๊ฐ ํฐ์ง ๋์ ๊ตฌ์กฐ๋ฅผ ๋ค ๋ฏ์ด ๋ณด๊ฒ ๋๋ค. sentinel, proxy, ๊ทธ๋ฆฌ๊ณ ๋๋จธ์ง ๋ ธ๋์ ๋ถ๋ฐฐ๋ฅผ ์ํด 3๊ฐ์ ๊ทธ๋ฃน๊ณผ ์ฌ๋ฌ ๋ฐ์ดํฐ ๋ ธ๋๋ฅผ ๋๋ ๋ค์, 128GB๋ก ํด๋ฌ์คํฐ๋ฅผ ๋๋ ค ์๋น์ค๋ฅผ ๋ค์ ๋ณต๊ตฌํ๋ค. ๊ธ๋ง ๋ณด๋ฉด ๊ฐ๋จํด ๋ณด์ด์ง๋ง ์ฐ๋ฆฌ๋ ์ด ๋ณต๊ตฌ ์์ ์ 3์ผ ๋ฐค๋ฎ์ ๋งค๋ฌ๋ ธ๋ค.
ํ์ง๋ง ๋ณต๊ตฌ๋ฅผ ํด๋๋ค๊ณ ๋ค ๋ ๊ฒ๋ ์๋์๋ค. ์๋น์ค๊ฐ ์ฃฝ๊ธฐ ์ , BGSAVE๊ฐ ๋๋์ง ๋ชปํ ๋ถ๋ถ๋ถํฐ ์ ์ค์ด ์ผ์ด๋ฌ๊ณ , ์ ์ค์ด ์ผ์ด๋ ๋ถ๋ถ ์ธ์ ์์ค๋๊ณ ๊นจ์ง ๋ฐ์ดํฐ๋ค๋ ์กด์ฌํ๋ค.

๊ทธ๋์์ธ์ง ํน์ ์ ์ ๋ค์ ๊ธธ๋ ์ ๋ณด๊ฐ ๋ ์๊ฐ๋ค๋ ๊ฐ, ์ธ๋ฒคํ ๋ฆฌ ์ ๋ณด๊ฐ ๊ผฌ์๋ค๋ ๊ฐ, ๊ทธ๋ฐ ์ด์ ํ์๋ค์ด ๋ฐ์ํ๊ณ ์ด ๋ถ๋ถ๋ ๋ณต๊ตฌํ๊ธฐ ์ํด ๊ต์ฅํ ์ ์ผ๋ค. ์ฌ์ค ๊ทผ๋ณธ์ ์ธ ๋ณต๊ตฌ๋ ๋ถ๊ฐ๋ฅํ๋ค. ๋ณต๊ตฌ ์์ฒญ์ด ์ค๋ ์ ์ ๋ค์ ๋์์ผ๋ก ์ฅ์ ์ด์ ์ํ๋ฅผ ์ฐธ๊ณ ํด ๋๋๋ ค ์ค๋ค๋ ๊ฐ ํ๋ฉฐ, ์๋ฌดํผ 2๋ฌ ๊ฐ๊น์ด ๊ต์ฅํ ๊ณ ์ํ๋ ๊ธฐ์ต์ด๋ค.
์ด ์ฅ์ ์ดํ๋ก๋ ๊ฒ์์ ์ ๋ฐ์ดํธ๋ฅผ ์ํด ์๋ฒ๋ฅผ ์ ์ ์ค์ง์ํฌ ๋๋ฉด, Codis ๋ ธ๋ ์ ์ฒด์ foreground SAVE ์ดํ dump.rdb ํ์ผ ๋ฐฑ์ ๊ณผ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ํ๋ฅผ ์ฒดํฌํ๋ ๊ณผ์ ์ด ์ถ๊ฐ๋์๋ค.
๋ก๊ทธ
์์คํ ์ ์ด์ฉํ๋ฉด ๋ก๊ทธ๋ ํ์ฐ์ ์ผ๋ก ์์์ง๋ค. (๋ง ๊ทธ๋๋ก ์์์ง๋ค๊ณ ํ ์ ์๋ค.)
์์ฒญ๋ ์์ ๋ก๊ทธ๋ฅผ ๋ณด๊ดํ๊ณ , ๊ทธ ๋ก๊ทธ๋ฅผ ๊ฒ์ํด ์ ์ ์ ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์์๋์ง ํ๋ณํ๊ธฐ ์ํด ๋ก๊ทธ๋ฅผ ํ์ธํ ํ์๋ ์์๋ค. ๊ทธ๋ ๊ธฐ์ ๋ก๊ทธ๋ ๋ณด๊ด๋, ๊ฒ์๋ ํ ์ ์๋ ์์คํ ์ ๋ง๋๋ ๊ฒ์ด ์ค์ํ๋ค.
์ฐ 3์ต ์ฐ๋ Redshift๋ฅผ ์์ ๊ณ ElasticSearch๋ฅผ ๋์ ์ผ
๊ธฐ์กด์๋ ์ 3,000๋ง ์ ๊ฐ๊น์ด ์ง์ถ์ด ๋๊ฐ๋ ์์คํ ์ ์ผ๋ค. ์์ ๋ฒ์ด์ง ์๋ง์ ์ฌ๊ฑด์ฌ๊ณ ๋ค์ด ์์๊ธฐ์, ์ฌ๊ธฐ๊น์ง ๋์ ๋๋ฆด ํ์ด ์์๋ค.
๋ค๋ง ๋ฌด์ธ๊ฐ๊ฐ ํฐ์ง ๋๋ง๋ค ๊ณ ์น๋ฉด์ ์กฐ๊ธ์ฉ์ด๋๋ง ๋ณด์๋์๊ธฐ์, ๋์ค์๋ ๊ฝค๋ ์์ ์ ์ผ๋ก ์ด์์ ํ ์ ์๋ ์๊ฐ์ด ์ฐพ์์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ์ฆ์ ๊ฒฝ์์ง๋ค์ ์์ฒญ์ด ์์๋ค.
์ง์ถ ๋น์ฉ์ ์ข ์ค์ผ ์ ์๊ฒ ๋๋๋ ๊ทธ๋ฐ.
๊ทธ๋์ ๊ณ ๋ฏผ ๋์ ๊ฐ์ฅ ์ง์ถ์ด ์ปธ๋ Redshift๋ฅผ ์ด๋ป๊ฒ ํด๋ณด๊ธฐ๋ก ํ๋ค.
๊ทธ์ ์๋ ๊ฒ์ ์๋ฒ์์ ๋์ค๋ ๋ก๊ทธ๋ฅผ ์ ๋ถ ์์๋ค ์ง์ด๋ฃ๊ณ ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํด ๊ฒ์ํ๋ ์์คํ ์ด ์์๋ค. ์ ์กฐ(?)๋ค์ด ์ฒ์ ๊ตฌ์ถํ๋ ์๊ธฐ์๋ ๊ด์ฐฎ์์์ง ๋ชจ๋ฅด๊ฒ ์ผ๋, ์ด๋ฏธ ์๊ฐ์ด ๋ง์ด ์ง๋ ์์ ์์๋ ํ ๋ฒ ๊ฒ์ํ๋๋ฐ 6~30๋ถ์ด ๊ฑธ๋ฆฌ๋, ๊ณ ๊ฐ์ผํฐ ์ ๋ฌด๋ฅผ ํ๋ ๋๋ฃ๋ถ๋ค์๊ฒ ์ ๋ฌผ๋จ์ง์ธ ์์คํ ์ด์๋ค. (๋๋ ์ 3,000๋ง ์์ฉ ๋๊ฐ๊ณ ๋ง์ด๋ค.)
๊ฒฐ๋ก ๋ง ๋งํ์๋ฉด, ๋ฐ์คํฌํ ํ๋์ RAM์ ๊ฝ ์ฑ์ ๋ฃ๊ณ , ๊ฑฐ๊ธฐ์ ElasticSearch๋ฅผ ๊ตฌ์ถํด 2๋ ์น ๋ก๊ทธ๋ง ๊ฒ์์ด ๊ฐ๋ฅํ ์์คํ ์ ์ฅ์ฅ 3๊ฐ์์ ๊ฑธ์ณ ๊ตฌ์ถํ๋ค. ๋น๋ก ๊ฒ์ํ๋ ๋ฐ 7์ด~2๋ถ ์ ๋ ๊ฑธ๋ ธ์ผ๋, ๊ธฐ์กด์ ๋นํ๋ฉด ํจ์ฌ ๋นจ๋๊ธฐ์, ์กฐ์ ํ ์์คํ ์ด์์ง๋ง ๊ณ ๊ฐ์ผํฐ ์ ๋ฌด๋ฅผ ํ๋ ๋ถ๋ค์ ๋ค๋ค ๊ณ ๋ง๊ฒ๋ ๋ง์กฑํด ์ฃผ์ จ๋ค.
์ฐ ์ง์ถ 3์ต ์์ ์๋ ์์ ์์๋ง ํด๋ ์ผํฐ๋ฉ์ดํธ ์์ ์ด๋ค. ๊ทธ๋ฐ๋ฐ ํ ๋ฒ ์ง์ถ์ ์ค์ด๋ ๋ฐ ์ฑ๊ณตํ๋ ๊ฒฝ์์ง ์ ์ฅ์์๋ โํ๋ฉด ๋๋๊ตฌ๋งโ์ผ๋ก ์ธ์ํ๋์ง, ๋ ์ค์ผ ์ ์๋๊ณ ๊พธ์คํ ์๋ฐ์ด ๋ค์ด์๋ค.
๊ด๋ฆฌ ๋๊ตฌ
๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ๋ง๋ค ์ฌ๋ ฅ์ด ์์ด ๋ฉ์ ์ ์๋ฆผ์ด๋ผ๋ ๋ง๋ค์๋ ์ด์ผ๊ธฐ
๊ทธ๋์ ์ฐ๋ฆฌ๋ผ๊ณ ํ๋ก๋ฉํ ์ฐ์ค๋ ๊ทธ๋ผํ๋๋ฅผ ๋ชฐ๋๋ ๊ฒ์ ์๋๋ค.
๊ทธ๋ฌ๋ ์ง์ ์ด๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ง์ ๋ ธ๋ ฅ์ด ๋ค์ด๊ฐ์ผ ํ๋ค. ๊ทธ๋ ์ญ์ ๋น์ฅ์ด๋ผ๋ ๊ฒ์ ์๋ฒ๊ฐ ์ข ์ข ํฐ์ก๊ธฐ์, ์ค์๊ฐ์ผ๋ก ํ์ ํ๊ณ ์กฐ์นํ ํ์๊ฐ ์์ด, ์ฐ์ ์๋ฒ๊ฐ ์ด์์๋์ง ์ฃฝ์๋์ง ํ์ธํ๊ณ ๋ฉ์ ์ ๋ก ๋ฐ์กํ๋ ์๋ฆผ์ ๋ง๋ค์๋ค. ์ ๋ฌธ์ ์ผ๋ก ์ธํ๋ผ๋ง ๋ด๋นํ๊ณ ๊ด๋ฆฌํ ์ฌ๋์ด ์์๊ธฐ์ ์ด์ฉ ์ ์์๋ค.
๊ทธ๋ฐ๋ฐ ์ด์ํ์ง ์์๊ฐ? ๋งจ ์ฒ์์ โ๋ด๊ฐ ๋งก์ ์ผ์ ํ์ฌ์ ๋ชจ๋ ์ธํ๋ผ ๊ด๋ฆฌ ๋ฐ ๊ฐ๋ฐ์ด์๋คโ๋ผ๊ณ ํ๋๋ฐ ๊ทธ๋ฐ ์ผ์ ํ ์ฌ๋์ด ์์๋ค๋?
์ข ๋ ์์ธํ ๋งํ์๋ฉด, ํ์ฌ์์ ๊ทผ๋ฌดํ๋ ๊ธฐ๊ฐ ๋ด๋ด ์ฌ๊ฑด ์ฌ๊ณ ๋ฅผ ์์ตํ๋๋ผ ํฉ์ธ๋ ค ๋ค๋ ๊ธฐ ๋๋ฌธ์, ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ผ๋ ๊ฐ, ์๋ฆผ ์์คํ ์ด๋ผ๋ ๊ฐ ํ๋ ๊ฒ๋ค์ ์ฒด๊ณ์ ์ผ๋ก ๊ตฌ์ถํ ์ฌ์ ๊ฐ ์์๋ค ๋งํ๋ ๊ฒ ์ ํํ ๊ฒ์ด๋ค.
๋ง์น๋ฉฐ
ํํ ๋งํ๋ โ๋๊ท๋ชจ ํธ๋ํฝ ๊ฒฝํโ์ด๋ผ๋ ๊ฑด ์ด๋ฐ ํ๋ํ ๊ฒฝํ์ ๋ปํ๋ ๊ฑฐ๋ก ์๊ฐํ๋ค.
๋น์ ์ฐ๋ฆฌ๋ ๊ฒฝํ์ด ๋ง์ง ์๊ณ ๋ฏธ์ํ๊ธฐ์, ์ด๋ฐ์ ๋ฐ ์ค์๋ฅผ ํ๋ฉฐ ๋ ๋ง์ด ๊ณ ์ํ๊ธด ํ๋ค. ๋ค๋ง ๊ฒฝํ์ด ๋ง์ ์ง๊ธ์ ๋๋ผ๋ ๋๊ท๋ชจ ํธ๋ํฝ์ ๋ฐ๋ ์๋น์ค๋ฅผ ๋ด๋นํ๋ฉด, ์กฐ๊ธ ๋ ๋ฅ์ํ ๋ฟ ์ด๋ฐ์ ๋ฐ ํ๋ํ ์ผ์ ๋นํ๊ณ ์๊ฒ ์ง ํ๊ณ ์๊ฐํ๋ค.

๋๊ท๋ชจ ํธ๋ํฝ ๊ฒฝํ์ด๋, ์ฝ๊ฒ ๊ฒฝํํ ์ ์๋ ์ผ์ด๊ธฐ๋ ํ๊ณ , ๊ทธ ๊ฒฝํ์ด ์ฌ์ด ์ผ์ด ์๋ ๊ฑฐ๋ผ๊ณ ๋ ์ฅ๋ดํ ์ ์๋ค. ๊ทธ๋ฌ๋๊น, ์ด๋ ฅ์์ ๊ฐ๋ณ๊ฒ ํ ์ค ์ธ ์ ์๋ ๊ทธ๋ฐ ๊ฒ์ด ์๋๋ผ, ์ค์ค์ด ์ฐ๋ฉฐ ๋๋ฌผ์ด ๋จ์ด์ง๋ ์์ค์ ๊ณ ์์ด ๋ค๋ฐ๋ฅผ ๊ฑฐ๋ผ๊ณ ๋ง์ด๋ค. (๊ทธ๋ฆฌ๊ณ ๋๋ฌผ์ ๋ฆ์ผ๋ฉฐ ํ ๋ ์ค๋ก ์ค์ฌ์ผ๊ฒ ์ง)

๊ทธ๋ผ์๋ ๊ทธ ๋๊ท๋ชจ ํธ๋ํฝ์ด๋ผ๋ ๊ฑฐ ๊ฒฝํํด ๋ณด๊ณ ์ถ๋ค๋ฉด, ์์ธ์ง ํด๊ทผ๋ ๋ชป ํ๊ณ ๊ฐ๊ณ ์ํด์ผ ํ ๊ฒ ๊ฐ์ ์๋ฆฌ๊ฐ ์๊ธฐ๋ฉด, ๋ฐ์ด๋ค์ด ๋ณด๊ธธ ๋ฐ๋๋ค. ๊ทธ๊ฒ ํ์ฌ ๋ด์์์ ์ผ์ด๋ ๊ทธ๋ฐ ์ด์ง ์๋ฆฌ๊ฐ ์๊ธฐ๋ ๋ญ๋ ๋ง์ด๋ค.
P.S
โ์ฐ๋ฆฌ ํ์ฌ๋ ์ฒด๊ณ๊ฐ ์์ดโ ๋ผ๊ณ ๋ถํ์ ํ๋ ์ฌ๋๋ค์ ์ข ์ข ๋ณธ๋ค.
๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด, ์ฒด๊ณ์ ์ด์ด์ผ ํ ๊ณณ์ ๋ค์ด๊ฐ๋ ์ ๋ฌธ๊ฐ๋ค์ ์ ์ ๊ธฐ๊ฐ ๋ฐ์ ๋ฐ๋ก ์์ด๋ ๋ค๋ค ์์์ ๋ช ์๊ฐ ๋ง์ ์ ์์ ๋ง์น๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ง์น ๋ช ๊ฐ์ ์์๋ ์ฌ๋์ฒ๋ผ ์ต์ํ๊ฒ ํ๋ํ๋ฉฐ, ์ฒด๊ณ๊ฐ ์ ํด์ง ๊ฒ ์๋๋ผ๋ ์์์๋ค ๋ฌด์ธ์ ์ฝ์์ด ์๋ ๋ฏ ํ๋ํ๋ค.
์ฒด๊ณ๊ฐ ์๋ค๋ ๋ง๋ก ๋ด๊ฐ ๋ฌด์์ ์ป๊ณ ์ถ์๋ ๊ฑด์ง ๋ค์ ์๊ฐํด ๋ณด๊ธธ ๋ฐ๋๋ค.
์๋ฌธ