가용성과 확장성
수직정 확장
자원을 추가하는 방식
수평적 확장
노드를 추가하는 방식
EC2인스턴스 개수를 늘리는것
탄력성이라고함
애플리케이션의 확장 방법으로 주로 사용함
*고가용성(High Availabilty)
지속적으로 정상 운영이 가능한 상태
이중화
Elastic Load Balancing (ELB)개요
Load Balancer
트래픽을 분산하는 서비스
External 인터넷 페이싱은 인터널 로드 밸런스
Internal aws내부에서 동작하는 로드밸런스는 인터널 로드밸런스임)
역할
트래픽을 분산하는 역할
ec2인스턴스, 컨테이너, ip주소 등 여러 대상으로 자동으로 분산 가능
비정상 대상을 감지하면, 해당 대상으로 트래픽 라우팅을 중단하고 대상이 다시 정상으로 감지되면 트래픽을 해당 대상으로 다시 라우팅
Elastic Load balance 종류
주로 시험에서는 application load balancer와 network laod balancer가 주로 나옴~!
appliation load balance
애플리케이션 레이어에서 동작하니까 layer7에서 동작
http나 https 트래픽을 다루고
애플리케이션 웹 트래픽을 다루기 때문에 http 헤더 컨텐츠를 사용해서 라우팅 처리하게됨 이 로드밸런스는 웹 어플리케이션이나 서비스에 적합한 로드밸런스
웹서비스를 구축하면 애플리케이션 로드밸런스를 사용한다고 생각하면 됨
network laod balance
LAYER4에서 에서 동작하고, TCP, UDP, TLS
Portocl, port Number 를 사용하여 라우팅 요청 처리
네트워크 레이어에서 동작하기 때문에 동작속도가 매우 빠름
따라서 수백만의 대용량 트래픽을 처리하는 게임 어플리케이션등의 로드 밸런스에 적합한 로드 밸런스
속도가 빠른 수백만의 대용량 트래픽을 처리하려면 네트워크 로드밸런스 사용 필요
gateway load balancer
Layer 3 – Gateway Load Balancer Endpoint
ayer 4 – Gateway Load LBalancer
• GENEVE protocol을 사용하여 encapsulation 트래픽 전송
• Transparency한 네트워크 게이트웨이를 제공하므로 보안 검사를 위한 방화벽,
IPS, IDS 등의 원본 패킷의 데이터가 중요한 가상어플라이언스에 적합
Target Group 개요 및 실습
대상유형
인스턴스 (EC2 Instancem, EC2 Auto Scaling Groups)
IP 주소 (Local VPC CIDR, Public IP 주소)
Lambda
Application Load Balancer
프로토컬 설정
상태검사 (health check)
등록된 Target에게 상태 확인 메시지를 보내서 대상의 상태를 확인
속성 (atttributes) - https/https
등록 취소 지연(Deregistration delay/Connecting Draining)
Auto Scaling 축소 등으로 Deregistration 된 인스턴스에 더 이상의 요청을 보내지 않도록 하는 기능
해당 인스턴스에 진행중이 요청이 있을 경우 설정해 놓은 시
간동안 연결이 유효상태가 되지 않으면 해당 인스턴스에 연
결 요청을 하지 않음
-느린 시작 기간(Slow start duration)
기본적으로 대상은 대상 그룹으로 등록되자 마자 전체 요청
공유를 받기 시작하고 초기 상태 확인을 전달
느린 시작 모드에서는 로드 밸런서가 대상으로 보낼 수 있는
요청의 수를 선형으로 증가
-알고리즘
라운드 로빈(Round-Robin): 일정 시간마다 라우팅을 변경
-최소 미해결 요청(Least Outstanding Requests): 처리하고 있는 요청이 가장 적은 대상에게 라우팅
-고정(Stickiness Sessions / Session Affinity)
클라이언트가 세션을 유지한 상태라면 모든 요청을 동일한
인스턴스로 유지하는 기능
세션 유지를 위해 쿠키(cookie)를 사용하기에 클라이언트에
서 쿠키를 지원해야 함
세션 데이터를 잃지 않으려는 상태정보를 유지하는 서버에
적합
속성(Attribute) - TCP/UDP/TLS
등록 취소 지연(Deregistration delay)
• Auto Scaling 축소 등으로 Deregistration 된 인스턴스에 더이상의 요청을 보내지 않도록 하는 기능 해당 인스턴스에 진행중이 요청이 있을 경우 설정해 놓은 시간동안 연결이 유효상태가 되지 않으면 해당 인스턴스에 연결 요청을 하지 않음
EC2 웹서버 생성 스크립트
인스턴스 생성시 고급세부정보의 사용자 데이터(USER DATA)에 아래 스크립트 추가
#!/bin/bash
yum update -y
yum install httpd -y
systemctl enable httpd.service
systemctl start httpd.service
cd /var/www/html
echo "안녕하세요. AWS EC2 입니다. $(hostname -f)" > index.html
*프로토콜 잘 확인할것!
Application Load Balancer
http/https 요청을 로드 밸런싱 해야하는 경우 사용
웹 애플리케이션 처리에 적합
리스터 규칙을 기반으로 라이팅 설정이 가능!
데이터 전송 보안을 위한 https 프로토콜 사용시 SSL/TLS 인증서를 배포함
인증서는 ACM(AWS Certification Manager) 사용 또는 클라이언트 인증서 사용 가능
listenr 규칙
redirection 도 할수 있게가능
Network Load Balancer 실습
TCP, UDP, TLS 요청을 로드 밸런싱 해야하는 경우에 사용
고도의 성능이 요구되거나 대기 시간이 낮아야하는 애플리케이션에 적합
게임 등의 수백만 동시 사용자 처리에 적합
고정IP 주소 할당 가능
클라이언트 IP주소 전달 가능(Source IP Preservation) - 탄력적 ip주소
ALB처럼 리스너 규칙 설정 없음
리스너 프로토콜은 TCP, TCP/UDP, UDP, TLS를 사용 할 수 있음
데이터 전송보안을 위한 TLS 프로토콜 사용시 SSL/TLS 인증서를 배포해야 함
인증서는 ACM(AWS Certificate Manager)사용 또는 클라이언트 인증서 사용 가능