[์นํ์] 11/2 ๊ฐ๋ฐ์ผ์ง ๋ฐฐํฌ : ์ธ์คํด์ค ์์ฑ / SSH ์ Docker, Docker Compose, NGINX ์ค์น
๐ฑ IP ์ PORT ์ ๊ฐ๋
IP ๋ ์ํํธ ์ฃผ์, PORT ๋ ํธ์๋ก ๋น์ ํ ์ ์๋ค.
A ๋ผ๋ ์ํํธ์ 101ํธ, 102ํธ ๋ผ๊ณ ํ๋ฉด ๋์ผํ ์ํํธ์ฌ๋ ๋ค๋ฅธ ๊ณต๊ฐ์ด๋ค.
์ํํธ ์ฃผ์๋ฅผ ์์์ผ ์ฐ๋ฆฌ๊ฐ ์ฐพ์๊ฐ ์ ์๊ธฐ ๋๋ฌธ์
EC2 ์ธ์คํด์ค PC ์ ์ ์์ ํ๊ธฐ ์ํด ์ฐ๋ฆฌ๊ฐ ์์์ผํ๋ ์ฃผ์๊ฐ IP ์ด๋ค.
๐ฑ ํผ๋ธ๋ฆญ IP ์ฃผ์, ํ๋ผ์ด๋น IP ์ฃผ์
IP ์ฃผ์๋ ํผ๋ธ๋ฆญ ์ฃผ์, ํ๋ผ์ด๋น ์ฃผ์ , DNS ๋ผ๊ณ ์๋๋ฐ
์ธ๋ถ์์ ์ปดํจํฐ๋ก ์ฐพ์ ๋ค์ด๊ฐ ๋ ํผ๋ธ๋ฆญ IP ์ฃผ์๋ก๋ง ์ฐพ์์ ๋ค์ด๊ฐ ์ ์๋ค.
์๋ฅผ ๋ค์ด์
ํ ํ์ฌ์ a, b ๋ผ๋ ์ฌ๋์ด ์๋ค.
ํ์ฌ ์์์๋ ์๋ก a, b ๋ฅผ ์๊ณ ์์ง๋ง ์ธ๋ถ์์๋ ์ด ์ฌ๋์ a ๋ผ๋ ์ด๋ฆ, b ๋ผ๋ ์ด๋ฆ์ ๋ชฐ๋ผ์ผํ๋ค.
์ธ๋ถ์์ ๋๊ตฌ๋ ์ ์ ์๋ ์ด๋ฆ์ a-1, b-1 ์ด๋ ๊ฒ ์ง์ด ๋๋๋ค.
์ด๋ ๊ฒ ์ง์ด๋์ a-1, b-1 ์ด๋ฆ์ด ํ๋ผ์ด๋น ๊ฐ๋ ์ด๋ค.
๋ด๋ถ์์๋ ์๋ก ์์ ๋กญ๊ฒ ์๋ค๊ฐ๋ค ํ ์ ์๋ค.
๐ฑ ํ๋ ฅ์ IP ์ค์
ํผ๋ธ๋ฆญ IP ์ฃผ์๋ ๋์ ์ด๋ค.
์ธ์คํด์ค๋ฅผ ๊ป๋ค๊ฐ ํค๋ฉด ์๋ก์ด IP ์ฃผ์๋ฅผ ๋ฐ๊ธํ๋ค.
→ AWS ์ ์ฅ์์๋ ์ด ์ธ์คํด์ค๊ฐ ๊ณ์ ์ค์ง๋์ด ์์ ์๋ ์๋๋ฐ IP ํ๋๋ฅผ ๊ณ์ํด์ ํ ๋นํด์ค ์ด์ ๊ฐ ์๋ค.
๋งค๋ฒ ํผ๋ธ๋ฆญ ip ์ฃผ์๊ฐ ๋ฐ๋๋ ๊ฑธ ํ์ธํด์ผํ๋๋ฐ, ์ด๋ฅผ ํ๋ ฅ์ IP ๋ฅผ ํตํด์ ํด๊ฒฐํ ์ ์๋ค.
์ด ๋์ IP ๋ฅผ ๊ณ ์ ๋ IP ํ๋ ๋ฐ๊ธ๋ฐ์์ ์ด ๊ณ ์ IP ๋ก ์ฐ๊ฒฐ์ํจ๋ค.
๊ทธ๋ผ ๋์ IP ๊ฐ ๋ฐ๋๋๋ผ๋ ๊ณ ์ ๋ IP ๋ก ์ฐ๊ฒฐ๋๊ฒ๋ ๊ฐ๋ฅดํค๊ธฐ ๋๋ฌธ์ ๊ณ ์ ์ ์ผ๋ก ๊ฐ์ IP ์ฃผ์๋ก ํ๊ฒํ ์ ์๊ฒ ๋๋ค.
๐ฑ ์ธ์คํด์ค SSH ์ ์ ๊ทผํ๊ธฐ
์ธ์คํด์ค ์์ฑ์ ๋ง๋ ํคํ์ด pem ํ์ผ์ C:\Users\Daegyu Han\.ssh ํด๋ ์์ ๋ฃ์ด์คฌ๋ค.
C:\deploy ํด๋ ์์ .sh ํ์ผ์ ๋ง๋ค์๊ณ ํ ์คํธ ํ์ผ๋ก ์๋์ ๊ฐ์ด ์ค์ ํด์คฌ๋ค.
์ด ํ ์คํธ ํ์ผ์ Git Bash ๋ฅผ ์คํ์ํจ๋ค์ ๋์ด์ ๋์ ์คํ์ํค๋ฉด ์์ฑํ ์ธ์คํด์ค์ ssh ์ ์ ๊ทผํ ์ ์๋ค.
* sudo
super user ๊ฐ ํ๋ค. ๋ผ๋ ๋ป. ์ต๊ณ ๊ด๋ฆฌ์ , ๋ฃจํธ ๊ณ์ ์ ์๋ฏธํ๋ค.
sudo su ๋ฅผ ํตํด ubuntu ๊ฐ ์๋๋ผ @root ๋ก ๋ฐ๋๊ฒ ํ์ฌ sudo ๋ฅผ ์๋ตํ๋ค.
๐ฑ ์ธ์คํด์ค์ Docker , Docker Compose ์ค์นํ๊ธฐ
1. ๊ด๋ฆฌ์ ๊ถํ ํ๋
- ์ค๋ช : ๊ด๋ฆฌ์(superuser) ๊ถํ์ ์ป๊ธฐ ์ํด sudo su ๋ช ๋ น์ ์คํํฉ๋๋ค. ์ด๋ก ์ธํด ๋ค์ ๋ช ๋ น์ด๋ค์ด root ๊ถํ์ผ๋ก ์คํ๋ฉ๋๋ค.
2. ์ฐ๋ถํฌ ์์คํ ํจํค์ง ์ ๋ฐ์ดํธ
- ์ค๋ช : ํจํค์ง ๋ชฉ๋ก์ ์ ๋ฐ์ดํธํ์ฌ, ์ค์น ๊ฐ๋ฅํ ์ต์ ํจํค์ง ์ ๋ณด๋ก ๊ฐฑ์ ํฉ๋๋ค.
3. ํ์ํ ํจํค์ง ์ค์น
- ์ค๋ช : Docker ์ค์น์ ํ์ํ ๊ธฐ๋ณธ ํจํค์ง๋ค์ ์ค์นํฉ๋๋ค. ํนํ apt-transport-https, ca-certificates๋ HTTPS๋ฅผ ํตํ ์์ ํ ํจํค์ง ๋ค์ด๋ก๋์ ํ์ํ๊ณ , curl์ ๋ฐ์ดํฐ ์ ์ก์ ์ํ ํด, gnupg-agent๋ GPG ํค ๊ด๋ฆฌ์ ํ์ํ ํด์ ๋๋ค.
4. Docker์ ๊ณต์ GPG ํค ์ถ๊ฐ
- ์ค๋ช : Docker ํจํค์ง์ ์ง์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํ GPG ํค๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด ํค๋ Docker์ ๊ณต์ ํจํค์ง ์ ์ฅ์์์ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ ๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
5. Docker ๊ณต์ ์ ์ฅ์ ์ถ๊ฐ
- ์ค๋ช : Docker์ ๊ณต์ ํจํค์ง ์ ์ฅ์๋ฅผ Ubuntu ์์คํ ์ ์ถ๊ฐํ์ฌ, Docker๋ฅผ ์์ ์ ์ผ๋ก ์ค์นํ๊ณ ์ ๋ฐ์ดํธํ ์ ์๊ฒ ์ค์ ํฉ๋๋ค. $(lsb_release -cs)๋ ํ์ฌ ์ฐ๋ถํฌ ๋ฒ์ ์ ๋ง๋ ์ ์ฅ์ URL์ ์๋์ผ๋ก ๊ตฌ์ฑํด ์ค๋๋ค.
6. ์์คํ ํจํค์ง ์ ๋ฐ์ดํธ
- ์ค๋ช : ์๋ก ์ถ๊ฐ๋ Docker ์ ์ฅ์์์ ์ต์ ํจํค์ง ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ๋ค์ apt-get update๋ฅผ ์คํํฉ๋๋ค.
7. Docker ์ค์น
- ์ค๋ช
: Docker์ ํต์ฌ ํจํค์ง๋ค์ ์ค์นํฉ๋๋ค.
- docker-ce: Docker ์์ง (์ปค๋ฎค๋ํฐ ์๋์ ).
- docker-ce-cli: Docker ๋ช ๋ น์ค ์ธํฐํ์ด์ค.
- containerd.io: ์ปจํ ์ด๋ ์คํ์ ํ์ํ ๋ฐํ์.
8. Docker Compose ์ค์น
- ์ค๋ช : Docker Compose๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ์ ์ํ๊ณ , ํ๋์ ์๋น์ค๋ก ์คํํ ์ ์๊ฒ ํ๋ ๋๊ตฌ์ ๋๋ค. curl์ ์ฌ์ฉํด ํน์ ๋ฒ์ ์ Docker Compose ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๋ค์ด๋ก๋ํ๊ณ , /usr/local/bin/ ๊ฒฝ๋ก์ ์ ์ฅํ์ฌ ์์คํ ์ ์ญ์์ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
9. Docker Compose ์คํ ๊ถํ ๋ถ์ฌ
- ์ค๋ช : Docker Compose ์คํ ํ์ผ์ ์คํ ๊ถํ์ ๋ถ์ฌํ์ฌ, ๋ชจ๋ ์ฌ์ฉ์๋ค์ด ์ด ํ์ผ์ ์คํํ ์ ์๋๋ก ํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ์์ Docker ๋ฐ Docker Compose๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค. Docker๋ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ์ญํ ์, Docker Compose๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก ๋๋ ํด์ ๋๋ค.
docker -v
docker-compose -v ๋ก docker ์ docker compose ์ค์น๋ฅผ ํ์ธํ ์ ์๋ค.
์ดํ Git Bash ์์ Docker ๋ก๊ทธ์ธ์ ์งํ
docker login
๐ฑ NGINX ์ค์น
docker pull nginx
๋ฅผ ํตํด NGINX ์ค์นํ๋ค.
docker container run --name nginxserver -d -p 80:80 nginx
๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋๋ก ๋ง๋ค์ด ์คํ์ํจ๋ค.
docker ps ๋ก ํ์ธํ ์ ์๋ค.