Server&load/AWS

ELB 세팅하기 (기본 구성 / 보안그룹 / 리스너 및 라우팅 / 헬스 체크)

몽자비루 2025. 4. 21. 00:40
  1. ELB 기본 구성 세팅하기
    1. 리젼 확인 > EC2 > 로드 밸런서 > 로드 밸런서 생성
    2. Application Load Balacer 선택
      • Application Load Balancer : HTTP, HTTPS 에 대한 특성을 활용하여 로드 밸런싱을 함
    3. 기본 구성 설정
      • 체계
        • 인터넷 경계 : 외부 클라이언트에서 접근 가능하며, 로드 밸런서의 IP 주소나 DNS 이름을 통해 공개적으로 접근가능
        • 내부 : 특정 네트워크에서만 접근 가능하며, VPC와 private IP 등을 사용할 때 주로 사용한다.
    4. 네트워크 매핑 > 가용 영역 전체 선택 후 다음

      • 리전 내부의 세부적 영역을 나눈 것을 의미한다.
      • ELB 를 세팅할 때, 일반적으로 가용 영역을 전체 선택한다.
  2. 보안 그룹 설정하기
    1. EC2 > 보안 그룹 > 보안 그룹 생성하기
    2. 기존 보안 그룹 (default) 삭제 > 위에서 생성한 보안 그룹 선택
  3. 리스너 및 라우팅 그리고 헬스 체크 설정
    1. 리스너 및 라우팅이란?
      • ELB 로 들어온 요청을 어떤 EC2 인스턴스에 전달할 지 설정하는 부분을 의미함.
      • 대상 그룹 : ELB 로 들어온 요청을 보내는 그룹을 의미한다.
    2. 대상 그룹 생성 및 설정하기
      1. 대상 그룹 생성하기 - 기본 구성

        • ELB 가 트래픽을 받아서 대상 그룹에게 어떤 방식으로 전달을 할지 설정하는 부분
        • EC2 인스턴스의 HTTP 를 활용하여 80번 포트로 전달한다.
      2. 대상 그룹 생성하기 - 상태 검사
        • ELB로 들어온 요청을 대상 그룹의 여러 EC2인스턴스로 전달하는 역할을 함.
        • 특정 EC2인스턴스 내의 서버가 예상치 못한 에러로 고장났을 때, 고장난서버에 트래픽을 전달하는 것이 비효율적.
          • 이런 상황을 방지하기 위해 ELB 는 주기적으로 대상 그룹의 인스턴스에 요청을 보냄.
          • 200번대 응답이 잘 들어오면 정상적으로 작동되고 있다고 판단하여 트래픽을 전송.
          • 200번대 응답이 돌아오지 않으면 고장났다고 판단하여 트래픽을 전송하지 않음.
        • 대상 그룹의 EC2 인스턴스에 백엔드 서버가 있는데, 해당 서버에 주기적으로 /health 경로로 요청을 보내 인스턴스 작동 여부를 체크하도록 설정한다.
        • 백엔드 서버에서 헬스체크용 API 를 생성해야 한다.
      3. 대상 그룹 생성하기 - 대상 등록 페이지

        • 백엔드 설정한 HTTP (80번 포트) 로 지정
        • 아래에 보류 중인 것으로 포함 선택하여 대상그룹에 인스턴스를 추가
        • 대상 그룹 생성 선택
      4. 리스너 및 라우팅에서 대상 그룹에 위에서 생성한 대상 그룹 추가
        • ELB 의 HTTP 프로토콜을 사용하여 80번 포트로 들어온 요청은 전부 rusharp-server-target-group 의 인스턴스로 분배하여 트래픽을 보냄.
  4. 로드 밸런서 생성 확인
    1. EC2 > 로드 밸런서 에서 로드 밸런서 추가 확인
      • 프로비저닝 중 : 생성 중.
  5. Health check API 생성하기
    1. 기존 인스턴스 > 연결 > 연결
    2. app.js 수정

      app.get('/health' , (req,res) =>{
        res.status(200).send("Success Health Check");
      })
    3. pm2 reload
    4. health api 확인
      • IP 주소 / health 입력하면 API를 확인할 수 있다.
  6. 로드 밸런서 주소를 통해 서버 접속하기
    1. EC2 > 로드 밸런서 > 로드 밸런서 선택하여 DNS 이름 확인.
      • IP 없이 도메인 주소를 가지고 접속할 수 있다.