AWS

AWS 로드밸런서 적용

장진혁 2023. 4. 25. 01:16
Redis 캐시를 적용하고 많은 개선점이 있었다.
하지만 아직 1000TPS라는 목표는 아직 도달하지 못했다.

이번주는 1000TPS 넘기는 것을 목표로 진행을 하려고한다.
밑에 있는 링크와 표는 지난주에 테스트한 결과이다.

https://jjinhyeok.tistory.com/85

 

11주차

https://jjinhyeok.tistory.com/74 프로젝트 Redis 캐시 적용하기 지난번에 Redis를 설치하고 테스트를 해보았다. 이제 실전 프로젝트에 적용을 해보겠다. 현재 프로젝트 html 보면 JSON으로 데이터를 주고 받

jjinhyeok.tistory.com

test인원 항목 비관적 락 적용 대기열추가 인스턴스교체+캐싱코드적용 redisson lock적용 Redis 캐시 적용

10000명 평균반응속도 49368ms 47448ms 46036ms 60896ms 11492ms
  오류율 14.6% 15.4% 13.26% 16.77% 0%
  tps 77       333
20000명 평균반응속도 36239ms - - 41049ms 9592ms
  오류율 57% - - 57.635% 18.7%
  tps 154       537

10000명에서 반응속도 49368ms에서 11492ms로 줄어 약 76% 정도의 속도 개선 효과!

tps 77 → 333으로 약 4.3배 향상!

오류율 14.6%에서 0%까지 달성!

데이터 정합성(남은 좌석 수)도 전부 일치!

 

Application Load Balancer
  •  Application Layer (OSI 7 계층에서 5, 6, 7 계층)
    1. HTTP / FTP를 담당하는 계층
    2. OSI7 계층의 5계층부터 7계층까지의 기능을 담당하고 있다.
    3. 서버나 클라이언트 응용 프로그램이 이 계층에서 동작한다.
    4. 우리가 알고 있는 브라우저나 텔넷같은 서비스가 이 계층에 동작

https://aws.amazon.com/ko/elasticloadbalancing/application-load-balancer/?nc=sn&loc=2&dn=2 

 

Application Load Balancer | Elastic Load Balancing | Amazon Web Services

Application Load Balancer operates at the request level (layer 7), routing traffic to targets (EC2 instances, containers, IP addresses, and Lambda functions) based on the content of the request. Ideal for advanced load balancing of HTTP and HTTPS traffic,

aws.amazon.com

https://velog.io/@kimjiwonpg98/Nginx-%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EA%B5%AC%EC%B6%95

 

[Nginx] 로드밸런싱 개념 및 구축 - 1

서버의 과부하로 인한 shutdown을 막기 위해 웹서버로 이용하고 있는 Nginx를 로드밸런서로 사용하고자 알아보았습니다. 먼저 저는 nodejs(express)로 서버가 이루어져 있고 앞단과 뒷단에 nginx를 프록

velog.io

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-OSI-7%EA%B3%84%EC%B8%B5-%EC%A0%95%EB%A6%AC

 

🗼 OSI 7계층 모델 - 핵심 총정리

​OSI 7계층 OSI 7계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. OSI 7계층을 나눈 이유는? 흐름을 한눈에 알아보기 쉽고 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장

inpa.tistory.com

https://inpa.tistory.com/329

 

🗼 TCP / IP 4계층 모델 - 핵심 총정리

TCP / IP 개념 정리 (선수 지식) IP (인터넷 프로토콜) 지정한 IP 주소에 데이터의 조각들을 패킷(Packet)이라는 통신 단위로 최대한 빨리 목적지로 보내는 역할. 조각들의 순서가 뒤바뀌거나 일부가

inpa.tistory.com

 

로드 밸런서 대상 그룹 설정하기

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-ELB-Elastic-Load-Balancer-%EA%B0%9C%EB%85%90-%EC%9B%90%EB%A6%AC-%EA%B5%AC%EC%B6%95-%EC%84%B8%ED%8C%85-CLB-ALB-NLB-GLB

 

☁️ ELB(Elastic Load Balancer) 구성 & 사용법 가이드

ELB (Elastic Load Balancer) 이란 ELB(Elastic Load Balancer)란 애플리케이션 트래픽을 여러 대상에 자동으로 분산시켜 안정적인 AWS서버 환경을 운용하는데에 도움을 주는 서비스다. EC2뿐만 아니라 컨테이너(

inpa.tistory.com

80포트로 들어왔을때 8080포트로 포드포워딩 되도록 설정해야한다.

로드 밸런서 설정하기

OSI 7 계층에서 5, 6, 7 계층을 이용한 Application Load Balancer를 사용할 것이다.
서브넷 가용영역은 최소2개 이상 골라야 하는데 4개 모두 선택해도 상관없다.
80포트로 요청. 앞에서 설정한 로드밸런서 대상 그룹을 선택
로드밸런싱된 앱 접속 URL과 접속 포드가 설정되었고 타켓 그룹도 선택이 되어있다.
여러개의 인스턴스가 80포드 로드밸런서로 들어오면 8080포트 포트포워딩 되어서 들어온다.