새소식

NCP

[NCP-Certified Professional] 10. 로드밸런서 및 Global DNS

  • -
728x90

NCP 취득을 위한 아래 링크의 Edwith 강의 내용 요약

Mooc 강의로 무료제공되는 강의입니다.

https://www.edwith.org/professioanl-vpc

 

Professional Course(VPC Platform) 강좌소개 : edwith

- Naksoo Jung

www.edwith.org


1. Load balancer

  • Target Group
    • 요청을 처리할 대상에 대한 집합
    • 동일 VPC내에 있는 서버들에 대해 타겟 그룹 생성 가능
    • 타겟 그룹 안에 있는 서버를 다른 타겟 그룹에 속하게 할 수 있지만 타겟 그룹을 다수의 로드밸런서에 연결할 수 는 없다.
    • 서비스를 수행하는 대상의 프로토콜에 따라 L4와 L7으로 구분
    • 헬스체크 주기 (5~300초) 및 임계값 설정
    • 기본은 Round Robin 설정
      • 알고리즘 및 Sticky, ProxyProtocol 설정 변경은 생성 이후에 진행
  • 프로토콜
    • TCP : Network Load Balancer
    • Proxy_TCP : Network Proxy Load Balancer
    • HTTP(s) : Application Load Balancer
  • 로드밸런서
    • 부하처리 성능에 따라 Small / Medium / Large 중 선택할 수 있으며 각각 초당 연결수 (CPS) 기준 최소 30,000 / 60,000 / 90,000 개의 분산처리를 보장
    • 로드밸런싱 알고리즘
      • Round Robin : 클라이언트에서 요청이 오면 서버에 1개씩 분배하는 방식
      • Least Connection : 클라이언트 연결이 제일 적은 서버에게 새로운 커넥션을 분배하는 방식
      • Source IP Hash : 클라이언트 IP에 대한 해시테이블을 가지고 클라이언트 IP 에 매핑되는 서버에 새로운 커넥션을 분배하는 방식
      • Weighted 방식은 클라우드서비스에서 불필요하여 제공하지 않음

2. 로드밸런서  종류

  • 애플리케이션 로드밸런서(Application Load Balancer)
    • HTTP, HTTPS 를 사용하는 웹 애플리케이션에 보다 유연한 구성이 가능
    • 고정 IP 제공
    • URL 기반 분기 가능
      • URL각각을 다른 서버에 매핑할 수 있음
    • 알고리즘은 3가지 제공
  • 네트워크 로드밸런서(Network Load Balancer) - TCP
    • 고성능의 분산처리 가능
    • Client IP 가 그대로 로깅
    • 알고리즘은 Hash , RR(Round Robin)만 제공
  • 네트워크 프록시 로드밸런서(Network Proxy Load Balancer) - Proxy_TCP
    • Classic 과 유사한 로드밸런서

3. 필요에 따른 로드밸런서 활용

  • TCP 레벨 고성능 분산처리 - 네트워크 로드밸런서
    • 초당 연결 수 기준 최소 100,000개에서 최대 400,000개까지 성능을 보장하는 단계별 상품을 제공
    • 고객 서비스 규모에 최적화된 분산처리 성능을 제공
    • 트래픽 분배만 수행하고 고객 서버에서 직접 응답하는 기능(DSR)울 구현하여 보다 빠르고 효율적
  • TCP 세션 관리 - 네트워크 프록시 로드밸런서
    • 프록시 방식의 통신을 제공하여 세션 유지가 필요한 TCP 기반 애플리케이션에 이용 가능
    • 애플리케이션 로드밸런서와 동일한 부하 분산 알고리즘을 적용할 수 있음
  • SSL 인증 및 암호화 설정 - 애플리케이션 로드밸런서, 네트워크 프록시 로드밸런서
    • 웹 기반의 콘솔에서 SSL 인정서를 추가할 수 있음
    • TLSv1, TLSv1.1, TLSv1.2등 SSL 프로토콜 중 가능한 버전을 선택하여 사용 가능
    • 적용된 SSL Cipher 설정 가능
    • SSL 인증서는 Certificate Manager와 연동하여 편리하게 관리
  • 다양한 서버 부하 분산 방식 - 애플리케이션 로드밸런서, 네트워크 프록시 로드밸런서
    • Round Robin, Least Connection, Source IP Hash 방식
  • L7 (Application Layer) 기능 제공 - 애플리케이션 로드밸런서
    • HTTP/HTTPS 트래픽에 대해서 패킷 헤더를 확인하여 Application 레벨에서의 분기처리를 제공
    • 로드밸런서의 리스너에 Host Header 기반 분기처리, URL Path Pattern 기반 분기처리, 가중치 기반 분기처리, Redirection응답처리와 같은 규칙이 지원되어 보다 상세한 고급 서비스 구성 가능

 

  • Load Balancer 모니터링
    • 로드밸런서에 대해서는 기본 모니터링 정보를 제공
    • 서버 모니터링과 마찬가지로 기간 선택에 따라 모니터링 정보 수집 주기를 1분, 5분, 2시간, 1일 단위로 제공
    • 네트워크 로드밸런서 모니터링은 Concurrent Connection, 초당 Connection, Traffic In, (Un)Available Hosts등 5가지 항목의 정보를 제공하며, 애플리케이션 로드밸런서는 Tracffic Out를 포함하여 6항목을 제공
  • Load Balancer 포트 설정
    • 여러 개의 로드밸런서 규칙을 동시에 설정할 수 있음
    • 로드밸런서 규칙을 설정할 때는 로드밸런서 포트를 다른 로드밸런서 규칙의 포트와 다르게 설정해야 함
    • 서버 포트는 다른 로드밸런서 규칙의 서버 포트와 동일하게 설정하여도 무방
  • 타입별 기능 비교

4. LB의 구성 방식

  • LB의 구성 방식
    • NAT
    • DR(Direct Routing)
    • Proxy
  • 스케줄링 방식 - Weighted 방식은 제공하지 않음
    • Round Robin Scheduling
    • Least-Connection
    • Source Hash Scheduling
    • Weighted Round Robin Scheduling
    • Weighted Least-Connections
    • Locality-Based Least-Connection Scheduling
    • Locality-Based Least-Connection Scheduling with Replication Scheduling
    • Destination Hash Scheduling

5. 로드밸런서 관련 기능

  • 네이버 클라우드 플랫폼 로드밸런서 헬스 체크
    • 6초 마다 헬스 체크
    • 3회연속으로 OK 혹은 error가 뜨면 바인딩 혹은 언바인딩
  • 접속 정보로 도메인 정보를 제공
    • 따라서 DNS에는 CNAME으로 등록하여야 함
    • 하지만 Zone apex에 대해서는 RFC1033과 같이 등록 불가
      • VPC에서는 이러한 불편함을 해소하기위해 IP주소를 제공
  • 기본적으로 로드밸런서 하나를 생성하면 HAProxy 2개가 생성됨
  • HAProxy 1개의 안정적인 동접 성능은 대략 3000동접 수준, 만약 동접이 수만 동접인 경우 HAProxy 를 여러개 생성해야 함
  • 제약사항
    • 한 서버가 여러 개의 LB에 바인딩 될 수 있지만 포트별 멀티 바인딩은 지원하지 않음
    • 18080 ~ 18095, 65130, 65131, 64000, 3389, 22포트는 관리용 포트이기 때문에 사용 불가
    • 최대 50개 서버 바인딩

6. Keep Alive & Connection Idel Time

  • On이 필요한 경우
    • 메모리가 충분하고, 컨텐츠 서비스 형태여서, 사용자가 지속적으로 서버에 요청하는 경우
  • Off가 필요한 경우
    • 메모리가 충분하지 못하고, 사용자가 서버에 지속적으로 머물지 않는 경우

7. LB - 서버 Redirect

  • SSL 이용시 Redirect
    • SSL을 이용할 경우 LB는 TCP 443 포트로 받고, 80포트 서버로 전달
    • 서버 입장에서는 HTTP로 접근하는지 HTTPS로 접근하는지 확인 필요
  • 서버에 추가로 포트 개방하고 LB 80포트를 해당 포트에 연결하여 Redirect
    • 서버에서 8080포트도 웹서버에서 Listen 하도록 설정
    • LB에서는 80포트로 오는 패킷을 8080으로 전달
    • 서버에서 8080포트로 오는 접근은 443으로 Redirect
  • X-Forwarded 헤더를 이용
    • X-ForwardProto 헤더를 이용하여 연결에 사용한 프로토콜을 식별
    • HTTP로 온 경우 HTTPS로 Redirect

8. DNS (Deprecated)

  • 도메인에 대해 IP로 변환하는 서비스
    • 트리구조로 구성
  • 네이버 클라우드 플랫폼 DNS
    • A, NS, PTR, AAAA, MX, CNAME, SPF등 다양한 레코드 타입 지원
    • 외부 도메인 등록 기관에 네임서버를 네이버 클라우드 플랫폼의 네임서버로 지정한 경우에 사용 가능
    • 도메인 등록시 네이버 클라우드 플랫폼 DNS에 등록하는데 최대 15분 소요
  • 입력 가능 항목
    • 레코드명
    • 레코드 타입
    • TTL
    • 레코드 값
  • 현재 Global DNS 서비스로 통합

9. Global DNS

  • DNS 서비스
    • 다양한 레코드 타입 지원(A, NS, PTR, AAAA, MX, CNAME, SPF, TXT, SRV, CAA)
    • Alias 기능 제공 및 설정 반영 단계 추가
    • 등록 도메인으로 인입되는 트래픽을 분기(Round Robin)
    • 모니터링 기능 제공

 

Contents
  • -

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.