본문 바로가기

Compute/ELB

(6)
AWS Network Load Balancer(NLB) 동작 방식과 주의사항 AWS Network Load Balancer(NLB)란? AWS(Amazon Web Services) NLB(Network Load Balancer)는 들어오는 트래픽을 하나 이상의 가용성 영역에서 Amazon EC2 인스턴스, 컨테이너 및 IP 주소와 같은 여러 대상에 분산하는 로드 밸런싱 서비스입니다. NLB는 초저지연 상태를 유지하면서 초당 수백만 건의 요청을 처리하도록 설계되었습니다. NLB는 연결 수준(계층 4)에서 작동하며 대상 IP 주소 및 포트, 소스 IP 주소 및 포트와 같은 IP 프로토콜 데이터를 기반으로 트래픽을 라우팅합니다. NLB는 TCP 및 UDP 트래픽을 모두 처리할 수 있으며 초당 수백만 패킷으로 확장할 수 있습니다. 따라서 HTTP(S)의 cookie 방식의 sticky는..
AWS ELB WebSocket 사용 시 헬스체크 방안 테스트용 WS 데모 [채팅 서버] const WebSocketServer = require("websocket").server; const http = require("http"); const port = 3000; //포트 const server = http.createServer(function (request, response) { //일반 HTTP 요청 처리 console.log( new Date() + " Can not get information reqeust of http " + request.url ); response.writeHead(416); response.end(); }); server.listen(port, function () { console.log(new Date() + "..
AWS ELB Backend Connection Errors 오픈 준비중인 서비스에서 ELB에서 Backend Connection Errors 및 Surge Queue Length 발생. Request가 없으나 Backend Connection Errors가 일정하게 발생되며, Surge Queue Length가 쌓이기 시작. Surge Queue Length는 ELB의 Backend EC2에서 처리하지 못한 Request가 버퍼에 쌓이는 것, Backend Connection Errors는 Backend EC2와 세션 과정에서 문제가 발생되는 것을 의미. 주로 Backend 가용성 문제로 인해 발생되는 메트릭으로 준비중인 서비스에서 발생되는게 이상함.. 업무는 아니지만.. 확인해봄 Application, EC2 OS, log 상에서도 특이점은 확인되지 않음. 또..
AWS ELB 사용 시 Apache 408/503 error log AWS ELB와 Apache 사용 시 Apache의 Access Log에 408/50X 에러 로그가 발생되는 경우가 있다. 이 증상은 ELB의 idle timeout과 Apache의 mod_reqtimeout 모듈과의 충돌로 발생된다. ELB의 idle timeout은 Back-end EC2 Instance와 세션 유지를 위한 timeout 시간이며, mod_reqtimeout은 웹 서버 보안 모듈이다. 1. ELB Idle timeout까지 ELB는 Back-end EC2 Instance와 TCP 세션 유지 2. mod_reqtimeout은 일정 시간(default 20~40초)이 경과해도 probe를 보내지 않는 세션을 공격으로 간주하고 차단(408 에러 발생) 3. ELB Idle timeout은 ..
AWS ELB Pre-warm 신청 양식 Elastic Load Balancer(ELB)의 경우 2대의 VM으로 구성된 HTTP정도로 생각하시면 됩니다. 기존 LB 장비에서 사용하는 VIP를 사용할 수 없습니다. 대신 Domain 기반의 End-Point를 제공합니다. ELB의 디폴트 성능 임계치는 나와있지 않습니다. 검색한 바로 초당 200~300 Request 처리가 가능하다고 되어 있습니다. 경험상 세션 임계치는 in/out 총 6만 세션이 디폴트 수치로 보입니다. 따라서 그보다 더 큰 부하 발생 시 ELB는 Scale up/out이 필요합니다. 일반적으로 linear 형태의 Traffic 증가는 ELB 자체적으로 Scale up/out이 됩니다. 그러나 step 형태의 Traffic은 AWS Case Open(ELB Pre-warm)을 ..
AWS ELB Proxy Protocol 기능 활성화 하기(TCP) 금일은 TCP 통신을 위해서 ELB에 Proxy Protocol 정책을 추가해보도록 한다. 1. 개요 기본적으로 ELB는 http 및 https 통신에 한해서 Sticky Session 지원과 Client IP를 포워딩한다. 기존 http 헤더에서 x-forwarded-for/port/protocol 의 항목이 추가 됐다. 아래는 ELB를 통해 들어온 http 통신 header 값이다. { host: 'test-2139921278.ap-northeast-1.elb.amazonaws.com:8080', accept: '*/*', 'accept-encoding': 'gzip, deflate, sdch', 'accept-language': 'ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4', ..