도커 컨테이너는 자바스크립트 앱을 실행하기 위한 효과적인 방법 중 하나입니다. 그러나 많은 수의 컨테이너를 실행할 때 로드 밸런싱 설정이 필요합니다. 로드 밸런싱은 트래픽을 여러 컨테이너로 균등하게 분산시켜 성능을 향상시키는 것입니다.
이 문서에서는 자바스크립트 앱을 위한 도커 컨테이너 로드 밸런싱 설정 방법에 대해 알아보겠습니다.
1. NGINX를 이용한 로드 밸런싱
NGINX 설치하기
NGINX는 유명한 웹 서버이면서 로드 밸런서로도 사용됩니다. Ubuntu에서 NGINX를 설치하려면 다음 명령어를 사용합니다:
sudo apt update
sudo apt install nginx
NGINX 로드 밸런싱 설정하기
sudo vi /etc/nginx/nginx.conf
명령어를 입력하여 NGINX 설정 파일을 엽니다.http
섹션 안에 다음과 같은 설정을 추가합니다:
http {
...
upstream app_servers {
server app1:8080;
server app2:8080;
server app3:8080;
}
server {
listen 80;
location / {
proxy_pass http://app_servers;
}
}
...
}
위의 설정에서 app1:8080
, app2:8080
, app3:8080
는 각각 실행 중인 자바스크립트 앱 컨테이너의 호스트 및 포트를 나타냅니다. 필요에 따라 컨테이너 수를 늘리거나 줄일 수 있습니다.
sudo systemctl restart nginx
명령어로 NGINX를 재시작합니다.
이제 NGINX를 통해 들어오는 트래픽이 여러 자바스크립트 앱 컨테이너로 로드 밸런싱되어 분산됩니다.
2. 도커 스웜을 이용한 로드 밸런싱
도커 스웜 설정하기
도커 스웜은 도커 컨테이너를 클러스터로 구성하여 로드 밸런싱과 고가용성을 제공합니다.
- 도커 스웜 초기화 명령어를 실행합니다:
sudo docker swarm init
- 컨테이너를 스웜에 추가합니다:
sudo docker service create --name app --replicas 3 -p 8080:8080 your-image
위의 명령어에서 app
은 서비스의 이름, 3
은 원하는 컨테이너 수, 8080
은 호스트와 컨테이너의 포트를 나타냅니다. your-image
는 자바스크립트 앱 이미지의 이름입니다.
이제 도커 스웜은 자동으로 로드 밸런싱을 수행합니다. 스웜 클러스터 내의 컨테이너들 간에 자동으로 트래픽을 분산시킵니다.
마치며
자바스크립트 앱을 위한 도커 컨테이너 로드 밸런싱 설정 방법에 대해 알아보았습니다. 이 설정들을 통해 앱의 성능을 향상시킬 수 있습니다. 도커를 사용하여 스케일링이 가능한 앱을 개발하고 운영하는 것은 매우 유용합니다.
#도커 #로드밸런싱