[AWS] Netwrok LoadBalancer로 부하 분산 실습

Hyunjun Kim·2025년 5월 15일

실습 - (AWS 환경)

목록 보기
11/61

EC2 인스턴스를 두개 준비한다.

왼쪽 위 1번서버 (54.180.80.57)
왼쪽 아래 2번서버 (52.79.38.87)

<!DOCTYPE html>
<html>
    <head>
        <!-- head definitions go here -->
        Hellow World
    </head>
    <body>
        <!-- the content goes here -->
        Server 1 or 2
    </body>
</html>

while true; do { \
  echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c <index.html)\r\n\r\n"; \
  cat index.html; \
} | nc -l -p 8080; \
done

실습 하기 전에 꼭 Security Group > Inbound Rules 들어가서
해당 포트 번호를 추가해주어야 한다.


우리는 EC2 인스턴스를 연결할 거니까


Include as pending below 버튼 누르면

클라이언트 머신 내 컴퓨터에서 요청을 할 거니까 인터넷 페이싱으로 하고 실제 외부에 노출할 게 아니라 VPC 안에서만 클라이언트가 접속한다라고 하면 internal로 하면 된다.


하 여기서 security groups 설정을 하지 않고 넘어가면 결국 접속이 되지 않는다.

추가 설정은 하지 않고 내려가서 Create load balancer 버튼 클릭.

DNS Name이 Load balancer의 주소다.

한참 대기하다가curl: (6) Could not resolve host: 오류 메세지가 나온다. 그 이유는

Load balancer Status가 Provisioning 이기 때문이다.'
가상화 된 것을 어딘가에 띄우고 있는 중이다 라는 의미다.
시간이 수 분 정도 걸리니 잠깐 기다렸다가 State가 Active 로 바뀌면 다시 시도해보자

Active되자마자 바로 하면 아마 타겟 그룹에 대해서 헬스체크한 거 기반으로 연결을 할 때 까지 또 시간이 좀 걸린다.

헬스체크를 10초 단위로 했으니 계속 요청이 들어오게 된다.
예전에는 요청이 들어올 때 마다 1번 , 2번 서버에 command not found 이런 게 떴었는데 이제는 불필요한 메세지라서 안 뜨는 건가? 싶다


DNS 주소로 바꿔서 시도를 함.

계속 반복해서 시도하면 Server 1, Server 2 가 1:1 의 비율로 고르게 분배되어 로드밸런싱하고 있는 것을 확인할 수 있다.

EC2 > Load balancers > de-network-lb
내가 만든 네트워크 로드밸런스 선택한 후에 attribute에 있다.
edit 해서 cross-zone load balancing Enable 해주면 된다.
바로 적용되지 않고 이것도 몇 분 ~ 한시간 정도 지나야 제대로 작동된다.

profile
Data Analytics Engineer 가 되

0개의 댓글