Amazon RDS Read Replica를 NLB에서 로드 밸런싱하기

3189 단어 RDSelbNLBAWS
이 기사는 Relux AdventCalendar 넷째 날 기사입니다.

RDS Read Replica의 로드 밸런싱



여러 Read Replica를 로드 밸런싱하는 방법에는 여러 가지가 있습니다.
  • Reader Endpoint 사용
  • HAProxy 및 Nginx와 같은 소프트웨어 사용
  • NLB 사용

  • Reader Endpoint



    Reader Endpoint는 AWS RDS의 기능으로 제공되며 특별한 설정 없이 사용할 수 있습니다.
    클러스터의 모든 Read Replica에 균일하게 분산되며 특정 Read Replica를 대상에서 제거할 수 없습니다.
    짧은 시간(1초마다)으로 CNAME을 전환하여 라운드 로빈하는 구현이 되어 실제로는 로드 밸런서가 아닙니다.

    HAProxy 및 Nginx



    AWS에서 수행하는 경우 전용 EC2 인스턴스를 준비하고 직접 설치, 설정 및 관리해야 합니다.

    NLB 사용



    2017년 9월경, ELB의 일종으로 출시된 Network Load Balancer는 EC2 인스턴스뿐만 아니라 모든 IP 주소를 대상으로 TCP 로드 밸런서를 구축할 수 있습니다.
    이를 사용하면 특정 Read Replica만 대상으로 하는 로드 밸런싱 환경을 쉽게 구현할 수 있습니다.

    NLB에서 Read Replica의로드 밸런싱



    NLB 구축




    EC2 Load Balancers 설정 화면에서 "Create Load Balancer"를 클릭


    Network Load Balancer 선택

    NLB의 기본 설정




    Name에는 임의의 이름을 설정.
    Scheme은 VPC 내에서만 사용한다면 internal을 선택.

    Listener는 Aurora(MySQL)를 대상으로 하기 때문에 3306/TCP

    Availability Zone에서는 사용할 VPC를 선택하고 엔드포인트를 배치할 서브넷을 선택합니다.

    라우팅 설정





    ALB와 마찬가지로 대상 그룹을 만듭니다.
    Aurora의 Replica를 타겟으로 하는 경우에는 3306/TCP, Target type은 ip로 한다.

    타겟 등록





    타겟으로서, 로드 밸런싱의 대상으로 하고 싶은 Replica 인스턴스의 IP 어드레스를 등록한다.
    IP 주소는 Replica 인스턴스의 DNS 이름을 nslookup이나 dig로 끌어 조사한다.

    Security Group 설정





    NLB에는 Security Group을 설정할 수 없다.
    그래서 NLB의 Availability Zone에 설정한 서브넷의 네트워크 주소를 허가하도록 RDS의 Security Group에 설정을 한다.

    소통 확인





    응용 프로그램 서버에서 연결할 수 있는지 확인합니다.

    마지막으로



    현재, 당사에서는 개발 환경에만 도입을 하고, 시험 운용을 실시하고 있습니다.
    특히 동작에 문제없이 유용하다면, 프로덕션 환경에 도입을 진행하고 싶습니다.

    좋은 웹페이지 즐겨찾기