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 |