Dev./Cloud

[Cloud] CD - NCP: Load balancer

Ivan'show 2023. 8. 22.
728x90
반응형

Load balancer

NCP 에서 Load balancer 만들어 주기 (프록시 로드밸런서 사용예정)

proxy load balancer 는 클라이언트와 서버간의 중개자로 작동하며 클라이언트의 요청을 받아 적절한 타겟 서버로 전달하고 서버의 응답을 클라이언트에게 전달한다.

 

  • Load balancer
    • 여러 서버 간의 트래픽을 분산 → 처리시간 단축
    • 특정 서버에 문제가 생기면 다른 서버로 routing
    • 서버를 추가하거나 제거하며 스케일링
  • Subnet : Load balancer 가 동작하는 곳
    • 네트워크의 논리적인 분할, 특정 IP 주소 범위
    • 범위를 정하고 Gateway 설정
    • 리스너 포트 80
  • Target : Load balancer 가 트래픽을 분산시킬 서버(인스턴스)
    • 프로토콜 : TCP
    • 포트 : 8000
    • 서버에 타겟 적용

로드밸런서는 지속적으로 타겟서버의 상태를 체크해서 문제가 발생한 서버는 트래픽 분산에서 제외시켜 안정적인 서버운영을 할 수 있도록 돕는다.

 

운영중으로 바뀌면 접속정보를 통해 접속해서 연결이 되는지 확인 !

Host, CSRF 등록

# settings.py
...
ALLOWED_HOSTS = [
    "localhost",
    "127.0.0.1",
    "lion-lb-18904316-04e720249f4d.kr.lb.naverncp.com", # Load balancer
    "101.79.14.79", # Load balancer
    # LOCAL_IP,
]

CSRF_TRUSTED_ORIGINS = [
    "",
    # f"http://{LOCAL_IP}:8888",
    "<http://lion-lb-18904316-04e720249f4d.kr.lb.naverncp.com/>", # Load balancer
    "", # Load balancer
]
...

push 로 자동 배포실행한 뒤에 서버 확인

docker exec -it 765b658f96bb /bin/sh
# ssh 서버 / django container 안쪽
# settings.py

ALLOWED_HOSTS = [
    "localhost",
    "127.0.0.1",
    "lion-lb-18904316-04e720249f4d.kr.lb.naverncp.com", # Load balancer
    "101.79.14.79", # Load balancer
    # LOCAL_IP,
]

CSRF_TRUSTED_ORIGINS = [
    "",
    # f"http://{LOCAL_IP}:8888",
    "<http://lion-lb-18904316-04e720249f4d.kr.lb.naverncp.com/>", # Load balancer
    "", # Load balancer
]

"""
local 에서 개발한 내용이 그대로 클라우드 서버에서 컨테이너까지 잘 띄워진걸 확인
"""

 

NCP 에서 제공하는 Load balancer 기능으로 쉽게 도메인을 통한 접속이 가능하게 구현해 보았다.

굉장히 간편하게 잘 만들어 놓았다.

 

테라폼에서도 쉽게 되면 좋을텐데 ...

728x90
반응형

댓글