HLS protocol ์ฌ์ฉํด์ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์๋น์ค๋ฅผ ๊ตฌํ์ค์ธ๋ฐ ๋จ์ํ nest.js์์ ์๋ฒ ๋๋ฆฐ๋ค๊ณ ํด์ ์ค์๊ฐ์ผ๋ก ์คํธ๋ฆฌ๋ฐ ๋๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์๋ ๊ฒ์ด ์๋๋ผ RTMP Server๋ฅผ ์ค์ ํด์ผํ๋๋ฐ, ์ด๋ ์ค์๊ฐ ๋ฐ์ดํฐ๋ RTMP๋ก ๋ฐ๊ฒ ๋๋ค.
HLS๋ก ๋ณํํด์ ํด๋ผ์ด์ธํธ์ธก์์ ์จ์ผํ๊ธฐ ๋๋ฌธ์ Nginx๋ฅผ ์ฌ์ฉํด์ผํ๋๋ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด์ Docker๋ฅผ ์ฌ์ฉํด์ ์ปจํ
์ด๋ํ ์์ผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค.
๐ณ Docker?
- ์ ํ๋ฆฌ์ผ์ด์
์ ํจํค์ง ํด์ค๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ๋์ ํ์ํ ๋ฐํ์ ํ๊ฒฝ์ ๋ชจ๋ ๊ฒ๋ค์
์ปจํ
์ด๋
์์ ๋ด์์ ์ธ ์ ์๊ฒ ํด์ค๋ค.
๐ Container?
- ๊ฐ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ณ ๋ฆฝ๋ ํ๊ฒฝ์์ ๊ตฌ๋๋ ์ ์๊ฒ ํด์ค๋ค.
VM์ ์ญํ ๊ณผ ๋น์ทํ๊ฑฐ ๊ฐ์๋ฐ?
VM vs Container
- ํ๋์ ์ด์์ฒด์ ์์์ ๋์ผํ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๊ฐ์ ๊ณ ๋ฆฝ๋ ๋ค๋ฅธ ํ๊ฒฝ์์ ๊ตฌ๋ํ๊ธฐ ์ํด์๋ VM์ ์ฌ์ฉํด์ ๊ตฌ๋ํด์ผ๋ง ํ์๋ค.
- ๊ทธ์น๋ง VM์ ๊ต์ฅํ ๋ฌด๊ฒ๋ค โ ์ด์์ฒด์ ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์
๋ง๋ค ํฌํจํ๊ธฐ ๋๋ฌธ์ด๋ค.
- Container์ ์ญํ ๋ ๋์ผํ์ง๋ง, ํ๋์จ์ด์ ์ค์น๋ ์ด์์ฒด์ (Host OS)์์ ์ปจํ
์ด๋ ์์ง๋์ด๋ผ๋ ์ํํธ์จ์ด๋ฅผ ์ค์นํ๊ธฐ๋ง ํ๋ฉด ๊ฐ๋ณ์ ์ธ ์ปจํ
์ด๋๋ฅผ ๋ง๋ค์ด์ ๊ฐ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ณ ๋ฆฝ๋ ํ๊ฒฝ์์ ๊ตฌ๋๋ ์ ์๊ฒ ํด์ค๋ค. โ ์ํํธ์จ์ด =
๐ณ DOCKER
- ์ด์์ฒด์ ๊ฐ ๋ฏธํฌํจ๋๋ค.(๊ฐ๋ณ๋ค!)
- ์ฆ, VM๋ณด๋ค ์กฐ๊ธ ๊ฒฝ๋ํ๋ ์ปจ์
์ด ๋ฐ๋ก Container์ด๋ค.
๋ฐ๋ผ์ Docker์ ์ญํ ์?
- ์ปจํ
์ด๋๋ฅผ ๋ง๋ค๊ณ ๋ฐฐํฌํ๊ณ ๊ตฌ๋ํ๋ ์ญํ ์ด๋ค.
๐ Container ๋ง๋ค๊ธฐ ์ํด ์์์ผ ํ ์ฉ์ด๋ค
๐ Dockerfile
- ์ปจํ
์ด๋๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค์ง์ ๋ํ ์ค๋ช
์
- ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ๋์ ์ํ ํ์ผ์ ์ด๋ค๊ฒ ์๋์ง, ์ด๋ค ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ผ ํ๋์ง, ์ธ๋ถ dependencies์ ๋ํด ๋ช
์ํ๋ค๋์ง, ํ์ํ ํ๊ฒฝ๋ณ์ ์ค์ , ์ด๋ป๊ฒ ๊ตฌ๋ํ๋์ง์ ๋ํ ์คํฌ๋ฆฝํธ๋ ํฌํจ๋ ์ ์๋ค.
์ด Dockerfile ์ฌ์ฉํด์ docker์ image๋ฅผ ๋ง๋ค ์ ์๋ค.
๐ธ image
- ์ ํ๋ฆฌ์ผ์ด์
์คํํ๋ ๋ฐ์ ํ์ํ ์ฝ๋, ๋ฐํ์ ํ๊ฒฝ, ์์คํ
ํด, ์์คํ
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ๋ชจ๋ ์ธํ
์ ํฌํจํ๋ค.
- ํ์ฌ ์คํ๋๊ณ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ํ๋ฅผ ์บก์ณํด์ ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด ๋๋ค.
- ๋ถ๋ณ์ ์ํ
๐ Container
- ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋ณ์ ์ธ ํ์ผ ์์คํ
์์์ ์คํํ ์ ์๋ ๊ฒ์ ๋งํ๋ค.
๐ Container ์์ฑ
- ๋ง๋ค์ด์ง ์ด๋ฏธ์ง๋ฅผ ๋ฐฐํฌํ๋ฉด ์ปจํ
์ด๋๊ฐ ์์ฑ๋๋๋ฐ ๋ก์ปฌ์ ์๋ ์ด๋ฏธ์ง๋ฅผ Container registry์ pushํ๊ฒ ๋๋ฉด ์๋ฒ๋ pull ๋ฐ์ ์ฌ์ฉ, ์คํํ๋ค. โ
๐ณ DOCKER
์ ์ญํ
1) ๋์ปค ์ด๋ฏธ์ง ์์ฑ
docker build -f Dockerfile -t ์์ฑ๋ ์ด๋ฏธ์ง์ ์ด๋ฆ .
docker build
์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ช
๋ น์ด
-t
์ด๋ฏธ์ง์ ํ๊ทธ๋ฅผ ๋ฌ์์ค๋ค(๊ธฐ๋ณธ๊ฐ์ latest) ex)docker-prac:ver1
2) ๋ก์ปฌ์ ๋ง๋ค์ด์ง ๋์ปค ์ด๋ฏธ์ง ํ์ธ
docker images
3) ๋์ปค ์คํํ๊ธฐ
docker run -d -p ๋ก์ปฌ์์ ์ฐ๋ port๋ฒํธ:๋์ปค ์ปจํ
์ด๋์์ ์ฐ๋ port๋ฒํธ ์์ฑ๋ ์ด๋ฏธ์ง ์ด๋ฆ
docker run -d -p 8080:8080 docker-prac
-d
์ปจํ
์ด๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํ์์ผ์ค๋ค.
-p
ํธ์คํธ์ 8080๋ฒ ํฌํธ์ ์ปจํ
์ด๋์ 8080๋ฒ ํฌํธ๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ธ๋ถ์ ๋
ธ์ถ์์ผ์ค๋ค.
โ http://ํธ์คํธ IP:8080 ์ ์
- ์คํํ๋ฉด ์ปจํ
์ด๋์ ์์ด๋๊ฐ ์ ์ฒด๊ฐ ์ถ๋ ฅ๋๋ค.
4) ํ์ฌ ์คํ์ค์ธ ์ปจํ
์ด๋์ ๋ฆฌ์คํธ ํ์ธํ๊ธฐ
docker ps
5) ์คํ์ค์ธ ์ปจํ
์ด๋์ log ํ์ธ
docker logs ID๊ฐ
- ์ด๋ ID๊ฐ์
docker ps
๋ช
๋ น์ด์ ๋์จ ID ๊ฐ์ ์
๋ ฅํ๋ฉด ๋๋ค.