Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- resilience4j
- 람다표현식
- wagon-ssh
- 코딩테스트
- jetbrain
- feign
- try-with-resources
- jvm
- n+1
- intelij
- tcp
- closeable
- GC
- zipWith
- 날짜쿼리
- optional
- AutoCloseable
- webflux
- Kotlin
- 4-way-handshake
- Class Loader
- Runtime data area
- try-catch-finally
- springboot
- 동작방식
- java
- try-catch
- circuitbreaker
- Hotspot VM
- execution engine
Archives
- Today
- Total
JuBin's personal study blog
EC2 - ELB란? 본문
반응형
# EC2(Elastic Compute Cloud) / ELB(Elastic Load Balancing)
#로드밸런싱의 정의
Load Balancing이란 하나의 서비스에서 발생하는 트래픽이 많을때 여러대의 서버가 분산처리하여 서버버의 로드율을 증가시키고, 부하량, 속도저하등을 고려하여 적절시 분산처리를 해주는 서비스이다.
#로드밸런싱의 장점
- 고가의 서버로 확장하지 않고, 저렴한 비용으로 다수의 서버를 증설하여 경제적으로 비용절감을 할 수 있다.
- 대량트래픽으로 1대의 서버로 부하율이 높아지면 L4 스위치가 이를 감지하여 합리적으로 부하분산을 처리할 수 있다.
- 1대의 서버가 장애가 발생해도 서비스 중단없이 다른 서버로 분배하여, 서비스가 계속 운용가능하게 할 수 있다.
- 추후 사용량이 많아 서버확장을 해도 서비스 중단없이 서버 증설이 가능하다.
#로드밸런서의 종류
- L4 Load Balancer(Classic Load Balancer): OSI 7 Layer 중 Layer 4를 지원하는 Load Balancer이다. TCP나 UDP등이 대표적인 Layer 4 프로토콜이며, IP 주소와 포트 번호를 기준으로 트래픽을 분배한다. 4계층은 라우터 스위치 등 물리적인 하드웨어 영역이기 때문에 데이터를 변경/수정 할 수 없다.
- L7 Load Balancer(Application Load Balancer): OSI 7 Layer 중 Layer 7를 지원하는 Load Balancer이다. HTTP가 대표적인 Layer 7 프로토콜이며, HTTP 헤더의 내용을 기준으로 트래픽을 분배한다. 사용자의 Session에 따라 부하 분산을 하기 위해서는 L7 Load Balancer가 필수이며, AWS Elastic Load Balancer에서는 Application Load Balancer라는 이름으로 L7 Load Balancer를 서비스하고 있다. 7계층은 어플리케이션 계층이기 떄문에 포트나 헤더 등이 수정 가능하다.
ELB(Elastic Load Balancer)의 동작 알고리즘은 기본적으로 라운드로빈 방식을 사용한다.
"최소 2개 이상의 인스턴스가 각기 다른 AZ(물리적인 데이터센터 개념?)에 존재해야 한다"
* 라운드로빈 방식 : 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식, 클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우에 활용하기 적합합니다.
* 각기다른 AZ : 생각해보면 너무나도 당연한 말이지 않는가?! AZ는 물리적인 데이터센터 이기 때문에 하나의 데이터센터가 테러, 화재, 천재지변 등으로 인해 서비스 불능 상태가 되더라도 다른 데이터선터가 하나라도 살아 있고 Load Balancer가 그쪽으로 트래픽을 전달해주기만 한다면, 나의 서비스가 중단되는 일은 없을 것이기 때문이다. 사실 이런 이유 때문에 이후 Load Balancer설정에서 Target에 대한 Health check를 설정한다.
# CLB(Classic Load Balancer)
- 보통 ELB라 부르면 CLB를 칭함
- L4, L7 로드밸런싱 기능, TCL, SSL, HTTP, HTTPS 등 다양한 프로토콜 수용 가능
- Sticky Session(고정세션) 기능 제공
- Health Check할때 HTTP 프로토콜을 사용할 경우 /index.html을 참조한다.(페이지 없으면 상태체크 실패)
* index.html 파일로 헬스체크 하기 싫으면 SSH(22번포트) 로 헬스체크하면됨 (설정 > TCP 22번포트) - CLB는 로드밸런서가 url 하나를 가질수 있다. 즉 CLB로 매핑되있는 인스턴스들은 무조건 하나의 URL을 통해 접근 가능(단일 진입점)
* CLB 생성할때
로드 밸런서 포트 : 사용자가 ELB로 접속하는 포트 (사용자 -> ELB)
인스턴스 포트 : ELB에서 웹 서버 인스턴스로 보낼 때 접속하는 포트 (ELB -> EC2)
반응형
'AWS' 카테고리의 다른 글
AWS Free Tier 주의사항 (0) | 2021.01.08 |
---|---|
AWS(Amazon Web Service) EC2란? (0) | 2020.12.28 |