LB란

FineLee·2022년 10월 16일
0

Cloud

목록 보기
6/8
  • ALB를 왜 쓰는가?

    • ELB란?

      LB (채희님 노션 참고)

      • 모든 트래픽이 하나의 서버로 몰릴때 트래픽을 효과적으로 분산시킴

      • 종류

        • L2 : Mac 주소를 바탕으로 LB (데이터 링크 계층)

        • L3 : 네트워크 계층에서 LB/IP주소를 바탕으로 LB (네트워크 계층)

        • L4 : 전송 계층에서 LB / IP 주소와 포트번호를 기준으로 트래픽을 분해한다. (전송 계층) - > TCP,UDP 프로토콜

          로드 밸런싱 기법

        • 라운드 로빈 방식

          • 서버에 들어온 요청을 순서대로 돌아가며 배정
        • 가중 라운드 로빈 방식

          • 각각의 서버마다 가중치 매기고, 가중치 높은 서버에 우선적 배분
        • IP 해시 방식

          • 클라이언트의 IP주소를 해싱하여 특정 서버로 매핑 하여 요청을 처리
        • 최소 연결 방식 (LC)

          • 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽 배분
        • 최소 응답 방식 (RC)
          - 서버가 최초 응답을 받을때까지 소요되는 시간 고려하여 트래픽 배분

          L 4 로드밸런싱 & L 7 로드 밸런싱

          ELB (Elastic Load Balancer)

          Elastic = 유연하게

          Load(부하) 를 Balancing(분산)해주는 장치 → AWS제공

        • 어플리케이션 트래픽을 여러 대상에 자동 분산

        • Cloud Watch , Logging 을 통해 로깅, 장애복구, 추적, Health Cehck(서버 응답 체크)와 같은 기능 제공

        • EC2 뿐만아니라 컨테이너(ECS), AWS Lambda등으로 다양한 서비스와 연계하여 부하 분배 가능

LB에서 트래픽을 하나의 경로로 바다서 다수의 인스턴스에 분산하게 되어, 하나의 주소로 접속해서 관리할 수 있게 된다.
오류가 나도, 로드밸런서가 스마트하게 (health check ,monitoring) 알아서 트래픽 전송하지 않게 하고, 새로운 인스턴스가 등록이 되면 자동으로 분산을 시켜준다.

ELB & 오토스케일링 조합

  • 오토 스케일링은 트래픽이 몰릴때 인스턴스 수를 자동으로 늘려 서비스가 원활히 유지되게 하며, 트래픽이 적을경우 감소시켜 비용낭비 막아주고
  • ELB는 오토스케일링을 통해 수만개의 인스턴스들에게 부하를 분산하는 서비스이다.
  • 둘은 뗄레야 뗄 수 없는 관계라고..

ELB 구성요소

  • ELB는 VPC에 탑재된다.
    - 외부 요청을 받아들이는 리스너 / 요청을 전달, 분산하는 대상그룹으로 구성되며 다수 가능
    - 도메인 기반으로 접근가능하다. (IP 주소 지속적으로 바뀌므로)

리스너

  • 프로토콜과 포트를 기반으로 요청을 받아 검사, 타겟으로 전달

     ### 규칙
               
      - 리스너와 타겟 그룹 사이의 트래픽 분배를 위한 라우팅 규칙
      - 조건이 만족되었을때, 지정된 액션 수행
      - path, host, HTTP header, source IP, query parameter 등의 다양한 조건 제공
               
     ### 대상그룹
               
      - 리스너가 전달한 요청을 처리하기 위한 부하 분산 대상들의 모임
      - ELB가 분산을 할 때 어디로 분산할 것이냐를 모은 그룹들이 대상그룹읻.
      - 헬스체크, 모니터링 기능이 있다.
               
           

    ELB종류

    ELB는 대표적으로 4가지의 로드밸런서가 존재한다.

  • Application Load Balancer(ALB)

  • Network Load Balancer(NLB)

  • Classic Load Balancer(CLB)

  • Gateway Load Balancer(GLB)

    1) CLB

    Classic Load Balancer는 가장 기본적인 형태이자 초기에 제공되던 서비스
    가장 기본적인 LB 역할
    데이터 수정/변경 불가

    2) ALB

    OSI 7계층중 7번째 계층인 Application layer 를 다루는 로드밸런서

    다양한 프로토콜 존재 ( HTTP/HTTPS,FTP,DNS,DHCP,WebSocket )

  • 단순 부하분산

  • HTTP/HTTPS 의 헤더 정보를 이용해 부하 분산 실시 가능 (지능적인 라우팅 기능)

  • LB 하나만 설정하면, 트래픽을 모니터링 하여 각 대상그룹에 라우팅 해준다.

  • path와 port이용하여 대상그룹에 맵핑

  • EC2, 람다, IP로도 연결 가능, SSL 인증서 탑재 가능

         <aside>
         💡
         
         1. ALB는 **L7**단의 로드 밸런서를 지원
         2. ALB는 **HTTP/HTTPS** 프로토콜의 헤더를 보고 적절한 패킷으로 전송
         3. ALB는 **IP주소 + 포트번호 + 패킷 내용을** 보고 스위칭
         4. ALB는 IP 주소가 변동되기 때문에 Client에서 Access 할 ELB의 **DNS Name**을 이용
         5. ALB는 L7단을 지원하기 때문에 **SSL 적용**이 가능
         </aside>
         

    3) NLB

  • Transport Layer를 다루는 로드밸런서이다.

  • TCP와 UDP를 사용하는 요청을 받아들여 부하분산 실시

  • 고성능을 요구하는 환경에서의 부하분산에 적합한 솔루션

  • IP고정 가능

  • 단순한 라우팅

           <aside>
           💡
           
           1. NLB는 **L4**단의 로드 밸런서를 지원
           2. NLB는 **TCP/IP** 프로토콜의 헤더를 보고 적절한 패킷으로 전송 (HTTP는불가 , TCP니까..)
           3. NLB는 **IP + 포트번호**를 보고 스위칭
           4. NLB는 할당한 Elastic IP를 Static IP로 사용이 가능하여 **DNS Name과 IP주소 모두 사용이 가능**
           5. NLB는 SSL 적용이 인프라 단에서 **불가능**하여 애플리케이션에서 따로 적용해 주어야 합니다.
           </aside>
           
           ALB : 클라이언트가 웹화면을 요청하는 상황일때 (HTTP,HTTPS 프로토콜을 사용해서 어플리케이션 레벨 접근할때
           
           NLB : 내부로 들어온 트래픽을 처리하고, 내부의 인스턴스로 트래픽을 전송할때
           

    4) GWLB

           
  • network 계층에서 작동

  • 방화벽, 침입 탐지 및 방지, 심층패킷 검사

  • 그냥 트래픽 체크

    참고

    AWS Elastic Load Balancer(ELB) 쉽게 이해하기 #2

    [ELB] ELB종류 (CLB vs ALB vs NLB) + L4 /L7 동작방식

    [AWS] 📚 ELB(Load Balancer) 개념 원리 & 사용 세팅 💯 정리

  • EMR 과 Athena를 왜 같이 쓰는가? (슬랙 스레드 참고)

  • S3에 저장된 데이터를 간편하게 분석하기 위해 Athena사용
    • Athena 는 언제? Athena는 Amazon S3에 저장된 비정형, 반정형 및 정형 데이터를 분석하는 데 도움을 줌 Amazon Athena를 사용하면 데이터를 포맷하거나 인프라를 관리할 필요 없이 Amazon S3 직접 데이터에 대해 대화형 쿼리를 쉽게 실행
    Athena는 언제 사용해야 하나요?
  • EMR, Athena, Redshift 모두 데이터를 분석하고 검색하고 저장하기 위한 용도로 사용된다.
  • Amazon Athena를 사용하면 Amazon EMR을 사용하여 처리하는 데이터를 쿼리 할 수 있습니다. Amazon Athena는 Amazon EMR과 동일한 여러 데이터 형식을 지원합니다

결론 : EMR로 다량의 데이터를 처리 → S3에 저장 → Athena로 분석

2) 테라폼이 왜 쓰이고 무엇인지 정확하게 짚고 가자.

  • 테라폼이란?
    테라폼(Terraform)은 Hashicorp에서 오픈소스로 개발 중인 클라우드 인프라스트럭처 자동화를 지향하는 코드로서의 Infrastructure as Code, IaC 도구.

→ 간단하게 설명하면, 테라폼 코드를 실행하면 aws의 인프라를 생성, 삭제가 가능하다.

→ 통합 인프라 관리 도구

IAC종류

  • Chef
  • Puppet
  • Ansible
  • AWS cloudformation

테라폼 사용 단계

  1. install
  2. write
  3. paln
  4. apply
profile
해송의 벨로그

0개의 댓글