ํ๋ก์ ํธ์์ ๋ชจ๋ธ ์๋น ํ๋ ์์ํฌ๋ก BentoML์ ์ฌ์ฉํ๊ณ ์๊ณ , boto3๋ฅผ ์ฌ์ฉํด์ AWS S3์ ๊ฐ์ฒด๋ฅผ ์ ๋ก๋ ํ๊ณ ์ ํ๋ค. ํ๋ผ์ด๋น ๋ฒํท์ ์ ๊ทผํ๊ธฐ ์ํด์ AWS credentials์ Bento์ ์ ๋ฌํด์ผ ํ๊ณ , ์๋์ ๊ฐ์ด BentoML์ ๋์์๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ์ง๋ง, ๋์ปค ์ปจํ ์ด๋๋ฅผ ์คํํ ๋ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ณ ์, BentoML ๊ณต์ Slack์ ๋ค์ด๊ฐ์ ์ฌ๋ฌ ๊ฐ๋ฐ์๋ถ๊ณผ ์ง์์๋ต ์๊ฐ์ ๊ฐ์ก์ง๋ง ์ฝ๊ฒ ํด๊ฒฐ๋์ง ์์๋ค.. ๋ฌผ๋ก ์์ฒญ ์น์ ํ๊ฒ ๊ฐ์ด ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์์ฃผ์ จ๋ค.  ๊ฐ์๋จธ์ ๊ธฐ์กด ๊ฐ์ํ๊ธฐ์ ์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ด์ฉํด ์ฌ๋ฌ๊ฐ์ ์ด์์ฒด์ (os)๋ฅผ ํ๋์ ํธ์คํธ์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด์๋ค. ์ฌ๊ธฐ์ ์ฌ๋ฌ๊ฐ์ ์ด์์ฒด์ ๋ ๊ฐ์ ๋จธ์ ์ด๋ผ๋ ๋จ์๋ก ๊ตฌ๋ถ๋๋ค. ์ด๋ ๊ฒ ๊ฐ์ข ์์คํ ์์์ ๊ฐ์ํํ๊ณ ๋ ๋ฆฝ๋ ๊ณต๊ฐ์ ์์ฑํ๋ ์์ ์ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ ํธ์คํธ์ ๋นํด ์ฑ๋ฅ์ ์์ค์ด ๋ฐ์ํ๋ค. ๋ํ ๊ฐ์๋จธ์ ์ ๊ฒ์คํธ OS๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ปค๋๋ฑ์ ์ ๋ถ ํฌํจํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง์ ๊ท๋ชจ๊ฐ ํฌ๋ค. (2) ๋์ปค ์ปจํ ์ด๋ ๋์ปค๋ ํ๋ก์ธ์ค ๋จ์์ ๊ฒฉ๋ฆฌ ํ๊ฒฝ์ ๋ฐ๋ค๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์์ค์ด ๊ฑฐ์ ์๋ค. ์ปจํ ์ด๋์ ํ์ํ ์ปค๋์ ํธ์คํธ์ ์ปค๋์ ๊ณต์ ํด์ ์ฌ์ฉํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ๋์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์คํํ์ผ๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง ์ฉ๋์ด ๊ฐ์ ๋จธ์ ์ ๋นํด ๋ํญ ์ค์ด๋ค๊ณ , ๋ฐ๋ผ์ ์ด๋ฏธ์ง ์์ฑ ๋ฐ ๋ฐฐํฌ ์๊ฐ์ด ํจ์ฌ ๋น ๋ฅด๋ค. 2. ๋์ปค๊ฐ ํ์ํ ์ด์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ๊ฐ ํธํด
1. ๋์ปค ๊ตฌ์กฐ ์ปค๋์์ ๋์ปค์ ์์น๋ฅผ ์ฐพ์๋ณด๋ฉด /usr/bin/docker์ ์์นํ๋ค. ํ์ง๋ง ๋์ปค์์ง์ ํ๋ก์ธ์ค๋ /usr/bin/dockerd ํ์ผ๋ก ์คํ๋๋ค. ๋์ปค๋ ๋์ปค ํด๋ผ์ด์ธํธ์ ๋์ปค ์๋ฒ๋ก ๋๋๋ค. (1) ๋์ปค ์๋ฒ ์ค์ ๋ก ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ ์ด๋ฏธ์ง๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋์ปค ์๋ฒ์ด๋ค. ๋์ปค ์์ง์ ์ธ๋ถ๋ก๋ถํฐ API ์ ๋ ฅ์ ๋ฐ์์ ๊ธฐ๋ฅ์ ์ํํ๋๋ฐ, ๋์ปค ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์๋ฒ๋ก์ ์ ๋ ฅ์ ๋ฐ์ ์ค๋น๊ฐ ๋ ์ํ๋ฅผ ๋์ปค ๋ฐ๋ชฌ์ด๋ผ๊ณ ํ๋ค. (2) ๋์ปค ํด๋ผ์ด์ธํธ ๋์ปค ๋ฐ๋ชฌ์ด API๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก CLI๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ๋์ปค ํด๋ผ์ด์ธํธ์ด๋ค. ์ฌํ๊น์ง ์ฌ์ฉํ๋ docker ๋ช ๋ น์ด๋ ์ค์ ๋์ปค ์์ง์ด ์๋๋ผ ํด๋ผ์ด์ธํธ๋ก์์ ๋์ปค์ด๋ค. (3) ๋์ปค ๋ฐ๋ชฌ๊ณผ ํด๋ผ์ด์ธํธ ๋์ปค ํด๋ผ์ด์ธํธ๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ช ๋ น์ด๋ฅผ ๋์ปค ๋ฐ๋ชฌ์๊ฒ API๋ก์ ์ ๋ฌํ๋๋ฐ, ์ด๋ ๋์ปค ํด๋ผ์ด์ธํธ๋ /var/run/docker.sock์ ์์นํ ์ ๋์ค ์์ผ์ ํต
1. ๋์ปค ๋คํธ์ํฌ ๊ตฌ์กฐ ์์์ ์ปจํ ์ด๋ ๋ด๋ถ์ ๋ค์ด๊ฐ์ ifconfig ๋ช ๋ น์ด๋ฅผ ํตํด ์ปจํ ์ด๋์ ๋คํธ์ํฌ๋ฅผ ํ์ธํ ์ ์ด ์๋ค. ๋์ปค๋ ์ปจํ ์ด๋ ๋ด๋ถ IP๋ฅผ ์์ฐจ์ ์ผ๋ก ํ ๋นํ๊ณ , ์ด IP๋ ์ปจํ ์ด๋๋ฅผ ์ฌ์์ํ ๋๋ง๋ค ๋ณ๊ฒฝ๋ ์ ์๋ค. ์ด๋ฌํ ๋ด๋ถ IP๋ค์ ๋์ปค๊ฐ ์ค์น๋ ํธ์คํธ๋ง ์ ๊ทผํ ์ ์์ผ๋ฏ๋ก, ์ธ๋ถ์ ์ฐ๊ฒฐ๋ ํ์๊ฐ ์๋ค. ๋์ปค๋ ์ปจํ ์ด๋๋ง๋ค ๊ฐ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ํธ์คํธ์ ์์ฑํ์ฌ ์ธ๋ถ์์ ๋คํธ์ํฌ๋ฅผ ์ ๊ณตํ๋ค. ์ด ์ธํฐํ์ด์ค์ ์ด๋ฆ์ veth(virtual eth)๋ก ์์ํ๊ณ ์ฌ์ฉ์๊ฐ ์์ฑํ ํ์ ์์ด ์ปจํ ์ด๋๊ฐ ์์ฑ๋ ๋ ๋์ปค์์ง์ด ์๋์ผ๋ก ์์ฑํด์ค๋ค. ํธ์คํธ์์ ifconfig ๋ช ๋ น์ด๋ก ํ์ธํ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ด๋ค. ๋์ปค ๋คํธ์ํฌ ๊ตฌ์กฐ๋ฅผ ๊ตฌ๊ธ๋งํด๋ณด๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์์ ๊ฒ์ด๋ค.
๋์ปค ์ด๋ฏธ์ง๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ฉด ์ด๋ฏธ์ง๋ ์ฝ๊ธฐ์ ์ฉ์ด ๋๋ค. ์ค์ง ์ปจํ ์ด๋์ ๋ณ๊ฒฝ์ฌํญ๋ง ๋ณ๋๋ก ์ ์ฅํด์ ๊ฐ ์ปจํ ์ด๋์ ์ ๋ณด๋ฅผ ๋ณด์กดํ๋ ๊ฒ์ด๋ค. ํ๋ฒ ์์ฑ๋ ์ด๋ฏธ์ง๋ ์ด๋ค ์ํฉ์์๋ผ๋ ๋ณ๊ฒฝ๋์ง ์๋๋ค. ์ค์ต์ ์งํํ๋ฉด์ ๋๋ ์ ์๋ฏ์ด, ์ปจํ ์ด๋๋ ์์ฑ๊ณผ ์ญ์ ๊ฐ ๋งค์ฐ ์ฌ์ด๋ฐ ํ๋ฒ ์ญ์ ๋๋ฉด ๋ณต๊ตฌํ ์ ์๋ค๋ ๋จ์ ์ด ์๋ค. ์๋ฅผ ๋ค์ด ์์ mysql์ปจํ ์ด๋๊ฐ ์ญ์ ๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๊ฐ ์ญ์ ๋๋ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ปจํ ์ด๋์ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ธ ๋ฐ์ดํฐ๋ก ํ์ฉํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ์ด๊ฒ์ด ๋ฐ๋ก ๋ณผ๋ฅจ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ณผ๋ฅจ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ์ ์ผ๋ก 3๊ฐ์ง๊ฐ ์๋ค. 1. ํธ์คํธ์ ๋ณผ๋ฅจ์ ๊ณต์ ์ค์ต์ผ๋ก mysql๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์ด๋์ ์๋ํ๋ ์ค ์น ์๋ฒ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ค. > //DB์ปจํ ์ด๋ ์์ฑ $ docker run -d --name wordpressdbhostvolume -e MYSQLROOT_PASSWORD=pass
๋์ปค์ ์ํ๊ณ์ ์๋ ์ฌ๋ฌ ํ๋ก๊ทธํธ๋ค์ ๋์ปค ์์ง์ ์ข ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํ๊ฒ์ด๋ฏ๋ก ํต์ฌ์ ๋์ปค ์์ง์ด๋ค. ๋์ปค์์ง์์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ๋จ์๋ ์ด๋ฏธ์ง์ ์ปจํ ์ด๋์ด๋ค. 1. ์ด๋ฏธ์ง (1) ๊ฐ๋ ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ ๋ ํ์ํ ์์์ด๋ค. ์ด๋ฏธ์ง๋ ์ฌ๋ฌ ๊ณ์ธต์ผ๋ก ๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ก ์กด์ฌํ๊ณ , ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์คํํ ๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ฌ์ฉ๋๋ค. (2) ์ด๋ฆ ๊ตฌ์ฑ ์ด๋ฏธ์ง๋ ๋์ปค ๋ช ๋ น์ด๋ก ๋ด๋ ค๋ฐ์ ์ ์๋๋ฐ, ๋ณดํต ๋์ปค์์๋ ์ด๋ฏธ์ง์ ์ด๋ฆ์ ์๋์ ๊ฐ์ด ๊ตฌ๋ถํ์ฌ ๊ตฌ์ฑํ๋ค. >๐๐ป์ ์ฅ์ ์ด๋ฆ/์ด๋ฏธ์ง ์ด๋ฆ:ํ๊ทธ ex) ubuntu:14.04 ## ์ ์ฅ์ ์ด๋ฆ : ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋ ์ฅ์์ด๋ค. ์ ์ฅ์ ์ด๋ฆ์ด ๋ช ์๋์ง ์์๋ค๋ฉด, ํด๋น ์ด๋ฏธ์ง๋ ๋์ปค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ์ด๋ฏธ์ง ์ ์ฅ์์ธ ๋์ปค ํ๋ธ์ ๊ณต์์ด๋ฏธ์ง๋ฅผ ๋ปํ๋ค. ์ ์ฅ์ ์ด๋ฆ์ ์๋ตํ๋ ๊ฒฝ์ฐ๋ ์๋ค. ## ์ด๋ฏธ์ง ์ด๋ฆ : ์ด๋ฏธ์ง์ ์ญํ ์ ๋ํ๋ธ๋ค. ์ด๋ฏธ์ง์
1. Docker๋? ๋์ปค๋ ์๋ฒ๋ฅผ ๋๋ฆฌ๊ธฐ ์ํ ํ๊ฒฝ์ ๊ตฌ์ถํ๋๊ฒ์ ๋์์ค๋ค. ์๋ฒ๋ฅผ ์ด์ํ๋ค ๋ณด๋ฉด ๋ ์ฑ๋ฅ ์ข์ ์๋ฒ๋ก ๋ฐ๊พธ๊ฑฐ๋, ์๋น์ค ์ ์๋์ด ๋์ด๋ ์๋ก ์๋ฒ๋ฅผ ์ถ๊ฐํด์ผ ๋๋ ์ผ์ด ๋ฐ์ํ๋ค. ์๋ฅผ ๋ค์ด ํ์ฌ ์๋น์ค๋ฅผ ํ์ด์ฌ2์์ ๋๋ฆฌ๊ณ ์๋๋ฐ, ์๋ก์ด ์๋น์ค๋ ํ์ด์ฌ3์์ ๋๋ฆฌ๊ณ ์ ํ๋ฉด ํ๊ฒฝ์ ๋ง์ถฐ์ฃผ๋ ๊ฒ๋ ๋ณต์กํด์ง๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ค์ ๋์ปค๊ฐ ํด๊ฒฐํด์ค๋ค! (1) ์ด๋ฏธ์ง ํ๋ก๊ทธ๋จ์์ ๊ฐ ์์๊ฐ ์ค์น๋ ๋ชจ์ต์ ๋์ปค๋ ์ด๋ฏธ์ง๋ผ๋ ํํ๋ก ๋ฐ์ ํด์ ์ ์ฅํ๋ค. ์ฐ์ด๋ ํ๋ก๊ทธ๋จ๋ง๋ค ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ์ด๋ฏธ์ง๊ฐ ์์ ์ ์๊ณ , ๊ฐ๋ฐ์๊ฐ ์ํ๋๋๋ก ๋ง๋ค ์๋ ์๋ค. ๋ง๋ค์ด์ง ์ด๋ฏธ์ง๋ค์ DockerHub์ด๋ผ๋ ๊ณณ์ ์ ๋ก๋๋๋ค. ๋ง์น git์ผ๋ก ๊ด๋ฆฌํ ๋ด์ฉ์ github์ ์ฌ๋ฆฌ๊ณ ์ฌ๋๋ค๊ณผ ๊ณต์ ํ๋๊ฒ์ฒ๋ผ, ๋์ปค ์ด๋ฏธ์ง๋ค๋ dockerhub์ ์ ๋ก๋ ๋์ด ๊ณต์ ๋๋ค. ์ด๋ฏธ์ง๋ก ๋ฐ์ ๋ ์์๋ค์ด ํจ๊ป ์ฐ๊ฒฐ๋ผ์ ๋์ํ ์ ์๊ฒ ํ๋ ๋ช ๋ น์ด๋ ์ฝ๋๋ฅผ ์ธ์ ์ด๋์๋ ๋ค๋ฅธ ์ปดํจํฐ์์๋