cloud/AWS

AWS-ELB(Elastic Load Balancing)

클라우디아랩 2021. 6. 18. 00:09

Amazon Elastic Load Balancing 이란?

단일 가용영역 또는 여러 가용 영역에서 Amazon EC2 인스턴스 및 컨테이너, IP 주조 같은 동일한 서비스를 제공하기위해 준비된 여러 대상으로 애플리케이션 및 네트워크 트래픽 분산

구  분 내   용
서비스명 Amazon elastic load balancing
설명 확장성, 성능, 보안성을 통한 애플리케이션 내결함성을 제공하는 로드 밸런서
주요 특징 - 수신되는 트래픽을 여러 EC2인스턴스에 자동배포
- 애플리케이션의 내결함성을 확보하며, 내트워크 트래픽을 원활하게 대상으로 자동 분산 처리기능제공
- 고가용성, 자동 조정 및 강력한 보안 서비스 제공
- application load balancer, network load balancer, classic load balancer 등 세가지 유형의 로드 밸런서를 지원하며, 애플리케이션의 필요에 따라 로드 밸런스
프리티어 - 클래식 및 애플리케이션 로드 밸런서 간에 공유되는 탄력적로드 밸런서 750시간을 프리티어로 제공
- 클래식 로드 밸런서의 데이터 처리 15GB, 애플리케이션 로드 밸런서 15GB를 프리티어로 제공

 

ELB의 종류 및 유형

구   분 내   용
Application
Load Balancer
- OSI 모델 7계층에서 작동하며, HTTP, HTTPS와 같은 고급로드 밸런싱 서비스에 적합
- 마이크로 서비스 및 컨테이너 기반 애플리케이션, 최신 애플리케이션 서비스에 최적화된 로드 밸런싱 제공, SSL/TLS 암호화 및 프로토콜 사용하여 보안성 보장
- HTTP/HTTPS 서비스
Network
Load Balancer
- OSI 모델 4계층(Transport Layer)에서 작동gkau, TCP 트래픽의 로드 밸런싱 서비스에 적합
- 짧은 지연 시간과 초당 수백만 개의 요청 처리가 가능하며, 가용 영영ㄱ당 1개의 정적 주소를 사용하면서 트래픽의 변동이 심한 서비스에 최적화
- TCP 트래픽 로드 밸런싱 및 짧은 지연시간
Classic
Load Balancer
- OSI 모델 4계층(Transport Layer), 3계층(Network Layer)에서 작동
- EC2-Classic 네트워크 내에 구축된 애플리케이션을 대상으로 제공
- EC2-Classic 네트워크 구축된 애플리케이션

 

상태확인 서비스(health check)

- ELB와 연결된 인스턴스의 연결 상태를 수시로 체크하여 인스턴스나 애플리케이션의 문제로 인해 연결장애나 서비스가능여부에 대한 health check를 지속적으로 수행

- health check 가 실패하는 경우 해당 인스턴스로 트래픽을 전달하지 않는다.

- health check는 HTTP와 HTTPS 상태 확인 빈도, 실패 임계치, 성공 시 응답 코드를 임의설정 가능하며, 자세한 상태 확인과 실패 원인은 API를 통해 확인은 물론 AWS 콘솔에도 표시됨

- TCP 방식으로 Health Check를 수행하는 경우 서비스 Port의 오픈여부 및 연결 가능여부를 확인하며, HTTP나 HTTPS방식은 특정 웹 페이지의 접속 시도에 따른 응답 코드(200)가 정상반환 여부를 확인해서 health check 성공/실패 여부를 판단

 

 

Sticky sesstion

- ELB를 통해 트래픽 부하 분산하는 경우 기본적으로는 Round Robin방식으로 트래픽을 분산하는데 이럴 경우, 한 번 연결된 session은 다음 연결 시 그대로 연결 되지 않고 다음 번 연결 시 다른 인스턴스로 연결될 수 있어서 애플리케이션의 session을 유지 할 수 없게 된다. 특히 , 세션유지가 필요한 백오피스 웹 사이트 의 경우 연결이 끊어지거나 웹 사이트의 로그인 및 인증 정보를 유지할 수 없게된다.

- sticky session을 사용하면 처음 연결된 client에 별도의 http 기반의 쿠키 값을 생성하여 다음번 연결 요청에 대해 처음 접속했던 서버로 계속 연결하도록 트래픽을 처리하게 된다.

 

고가용성 구성

- 단일가용 영역 또는 여러가용 영역에 있는 여러 대상에 걸쳐 트래픽을 자동으로 분산

- 특히, 고가용성 구성을 위해 route53와 같은 aws의 다른 서비스와의 연계를 통해 가용성 서비스를 제공

 

SSL termination 및 보안 기능

- 웹 사이트에 SSL 인증서를 적용하여 HTTPS와 같은 방식으로 암호화 통신을 하기 위해서는 개별 웹 서버에 별도의 공인 인증서를 구매 후 적용( 개별인증서를 각 인스턴스에 직접 적용과 함께 인증서 갱신 관리 필요)

- ACM(Amazon Cerificate Manager)에서 무료로 발급

- ACM에서 인증서 발급 비용은 무료이며 별도의 인증서 관리가 필요 없음

 

 

ELB 실습

1) EC2 - Web1, Web2 만들기

 

인스턴스 시작 클릭

 

 

AMI : Amazon Linux(프리티어 사용가능) 선택 클릭

 

t2.micro 체크

다음 : 인스턴스 세부 정보구성 클릭

 

네트워크 : vpc-0~~~(기본값)

서브넷 : subnet-...| 기본값 ap-northeast-2a

퍼블릭 IP 자동할당 : 활성화

나머지는 그대로 두기

다음:스토리지 추가 클릭

 

나머지 그대로 두기

다음:태그 추가

 

키 : Name

값 : EC2-WEB1 또는 EC2-WEB2

다음: 보안 그룹 구성

 

보안그룹 할당 : 새보안 그룹 생성 체크

보안그룹 이름: web-sg

 

유형 - (외부에서 ssh, http 접속 허용)

ssh, 0.0.0.0/0

http, 0.0.0.0/0 

 

검토 및 시작 클릭

 

 

시작하기 클릭

 

기존키페어 선택

만들어놓은 키페어 선택

선택한 프라이빗 키 파일(exam-key.pem)에 액세스할 수 있음을 확인합니다. 이 파일이 없으면 내 인스턴스에 로그인할 수 없습니다. :체크

인스턴스 시작 클릭

 

 

인스턴스 보기 클릭

인스턴스 생성확인

 

2) web server 설치

- EC2-WEB1 index.html  : web server1

- EC2-WEB2 index.html  : web server2

 

ELB 구성하기

 

 

load balancer 생성 클릭

 

 

Application Load Balancer 생성클릭

 

 

이름 : web-alb

ip주소유형 : ipv4

가용영역 : vpc : 기본값

              ap-northeast-2a : 클릭

               ap-northeast-2c : 클릭

 

다음:보안 그룹 구성

보안그룹할당:기존 보안 그룹 선택

web-sg 선택

다음:라우팅 구성 클릭

이름 : ELB-gr

다음: 대상 등록 클릭

 

인스턴스 둘다 체크 -> 등록된 항목에 추가

다음: 검토 클릭

확인후 생성 클릭

닫기 클릭

바로 생성 시 프로비저닝 중일 수 있다.

 

활성화로 바뀌고 나서 DNS를 복사하여 브라우저창에 붙여 넣는다

 

F5를 연달아 치다보면 웹서버가 바뀌면서 로드밸런싱하는 것을 볼 수 있다.

 

'cloud > AWS' 카테고리의 다른 글

AWS - RDS(Relational Database Services)  (0) 2021.06.20
AWS- Amazon Auto Scaling  (0) 2021.06.18
AWS - Route53  (0) 2021.06.14
DNS (Domain Name System)  (0) 2021.06.14
AWS-IAM(Identity & Access Management)  (0) 2021.06.10