Scalability(확장성) vs Availability(고가용성)

    Scalability는 시스템이 커지거나 작아질 수 있는 능력을 의미합니다. 이는 사용자 수, 데이터 양, 처리량 등이 증가할 때 시스템의 성능과 처리 능력을 유지하거나 향상시키는 것을 말합니다. 이를 위해서는 확장성 있는 시스템 디자인과 구현이 필요합니다.

1. 수평적 확장: AMI등을 이용해 인스턴스를 여러개 늘리는 것

2. 수직적 확장 : 인스턴스의 성능을 높이는 것

 

     Availability는 시스템이 정상적으로 작동하고 사용 가능한 상태를 유지하는 능력을 의미합니다. 즉, 사용자가 요청하는 서비스를 항상 이용 가능한 상태로 유지하는 것입니다. 이를 위해서는 시스템의 안정성을 높이고 장애 대응 능력을 강화하는 것이 중요합니다.

 

 

 

 

ELB(Elastic Load Balancer)

 

ELB는 AWS에서 제공하는 로드 밸런싱 서비스로, 다수의 EC2 인스턴스를 사용하여 트래픽을 분산시킵니다. 

  1. Application Load Balancer: OSI 모델 7계층에서 동작하며, HTTP/HTTPS 트래픽을 처리합니다. 또한, 컨테이너화된 애플리케이션과 연동하여 사용할 수 있습니다.
  2. Network Load Balancer: OSI 모델 4계층에서 동작하며, TCP/UDP 트래픽을 처리합니다. 높은 처리량을 필요로 하는 애플리케이션에 적합합니다.
  3. Classic Load Balancer: OSI 모델 4~7계층에서 동작하며, HTTP/HTTPS, TCP/UDP 트래픽을 처리합니다. 가장 오래된 형태의 로드 밸런서입니다.
  4. Gateway Load Balancer : 방화벽이랑 third party의 어플리케이션들을 사용할 때 사용합니다.

각각의 로드 밸런서는 다양한 기능과 구성을 제공하며, 선택적으로 사용할 수 있습니다. 대부분의 경우 Application Load Balancer나 Network Load Balancer를 사용하는 것이 좋습니다. 이러한 로드 밸런서는 고가용성과 확장성을 제공하므로, 인스턴스의 장애와 부하 분산에 대한 대응을 용이하게 해줍니다.

 

로드 밸런스 사용 이유

  • 요청 분산(EC2와 연동)
  • 단일 액세스 포인트 공개(Route 53과 연동)   ex) google.com에 사람 많다고 googles.com에 접속시키지 않음
  • 인스턴스에 대한 헬스 체크 (살아있는 인스턴스 확인)
  • HTTPS 제공(ACM과 연동)
  • 고가용성 제공
  • 공개 트래픽과 내부 트래픽 분리

 

 

 

 

 

Application Loadbalancer 특징

  • HTTP 요청을 여러 타깃 그룹에 나워줄 수 있습니다.
  • 한 머신안이라도 여러 어플리케이션(컨테이너)에 나눠 줄 수 있습니다.
  • HTTP/2와 웹소켓을 지원합니다.
  • HTTPS로 리다이렉트 지원합니다.
  • URL, hostname, query string, header에 기반해서 다른 타깃 그룹으로 보낼 수 있습니다.

 

 

 

ELB 생성하기

 

 

사용자 데이터에 아래 코드를 붙여넣기

 

#!/bin/bash
apt-get update
apt-get install -y nginx
cat <<EOF > /var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx</title>
</head>
<body>
<h1>Hello World!</h1>
<p>AWS deployed by Me!</p>
<p>private ip is $(hostname -f)</p>
</body>
</html>
EOF
sudo systemctl start nginx

 

+) EC2 하나당 월별 750시간 가동이 기준입니다. 만일 EC2를 동시에 2개를 돌린다면 375시간만(15일) 무료가 됩니다.

 

 

퍼블릭 IPv4 주소에 접속하면 프라이빗 IPv4 주소가 보여지도록 설정했다.

두 개의 인스턴스는 서로 다른 프라이빗 IPv4 주소를 가진다.

 

 

 

로드 밸러서 이름 > 매핑 전부&nbsp; 체크 (사진은 체크 안 한 상태)
대상 그룹 이름 설정(mytargetgroup)

인스턴스 모두 체크 > 아래에 보류 중인 것으로 포함 > 대상 그룹 생성

 

로드 밸런스 생성

로드 밸런스 > DNS 이름 복사 > 주소창 붙여넣기

 

로드 밸런스가 작동하면서 ip 주소가 왔다갔다 합니다.

만약, 인스턴스가 고장등의 이유로 하나를 중지시키면 새로고침해도 하나의 주소만 접속됩니다.

 

 

 

 

로드 벨런스에게만 EC2 공개하기

  • 퍼블릭 IP 끊기

인바운드 규칙 - 위에서 만든 로드 밸런스 규칙

인스턴스 (2개 다)  >  작업  >  보안  >  보안 그룹 변경  >  (추가)ec2-alb (기존) 삭제

'aws' 카테고리의 다른 글

05. [aws] RDS  (0) 2023.05.14
04.5. [aws] SSL과 HTTPS  (0) 2023.05.14
03. [aws] EBS(Elastic Block Store)  (0) 2023.05.07
02. [aws] EC2  (0) 2023.05.07
01. [aws] IAM  (0) 2023.05.05

+ Recent posts