간단히 Nginx으로 Load Balancing 하기 with Docker Compose

on under deploy
1 minute read

Docker Compose으로 WAS, DB, WebServer를 하나로 묶는게 일반적이나,

배포하려는 서버가 각각의 EC2로 나누어져 있기 때문에 하나로 묶을수 없습니다.

EC2의 IP 주소를 이용한 로드밸런싱이 심플할 것으로 판단되어서 심플하게 진행한 기록입니다.

추후에 ECS나 Jenkins로 고도화를 해야겠지만, 일단은 시간이 촉박하기에 심플하게 진행하였습니다.

Set Nginx

  • default.conf
upstream backend {
    # ip_hash; <-- 여기에 분산 알고리즘을 지정하면 됨
    server 223.130.200.104; <-- 테스트용으로 구글과 네이버 ip 지정
    server 142.251.42.174;
}

server {
    listen  80;
    location / {
        proxy_pass  http://backend;
    }
}

Set Docker Compose

  • docker-compose
version: "3.3"
services:
  webserver:
    image: nginx:latest
    container_name: webserver_service
    tty: true
    volumes:
      - ./default.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "9999:80"
$ docker-compose -f docker-compose-nginx.yml up

127.0.0.1:9999으로 접속하면 지정한 알고리즘에 따라 분산되는 것을 확인할 수 있습니다.

deploy
comments powered by Disqus