AWS Cloud/solution architect

확장성 및 고가용성 / ELB (Elastic Load Balancing) 개요

Yonggyu 2023. 10. 31. 15:40
반응형

 

확장성 및 고가용성 개요


확장성 (Scalability)
확장성은 애플리케이션 시스템이 조정을 통해 더 많은 양을 처리할 수 있는 능력을 의미합니다. 확장성에는 두 가지 주요 유형이 있습니다.

수직 확장성 (Vertical Scalability)
이것은 인스턴스의 크기를 확장하는 것을 의미합니다. 예를 들어, 기존 인스턴스를 업그레이드하여 더 많은 리소스를 얻는 것입니다. 이는 데이터베이스와 같이 분산되지 않은 시스템에서 사용됩니다.

수평 확장성 (Horizontal Scalability)
이는 애플리케이션에서 인스턴스나 시스템의 수를 늘리는 것을 의미합니다. 이것은 분산 시스템, 웹 애플리케이션과 같이 현대적인 애플리케이션에서 흔히 사용됩니다.

 


고가용성 (High Availability)


고가용성은 애플리케이션 또는 시스템이 최소한 둘 이상의 AWS 가용 영역 (AZ) 또는 데이터 센터에서 가동 중이라는 것을 의미합니다. 이것은 시스템이 한 지역에서의 장애에도 계속 작동할 수 있도록 하는 목표입니다. 고가용성은 수평 확장과 함께 사용되지만, 항상 그렇지는 않습니다.
예를 들어, 뉴욕과 샌프란시스코에 각각 교환원이 있는 콜 센터를 생각해보겠습니다. 뉴욕 지사의 연결이 끊어지면 샌프란시스코에서도 계속 전화 업무를 처리할 수 있으므로 이 콜 센터는 고가용성이 높다고 할 수 있습니다.


확장성과 고가용성의 활용

확장성과 고가용성은 다양한 상황에서 유용하게 활용됩니다. 

확장성은 데이터베이스와 같이 분산되지 않은 시스템에서 주로 사용되며, AWS의 RDS나 ElastiCache와 같은 서비스에서 찾아볼 수 있습니다. 그러나 수직 확장성은 하드웨어 제한에 따라 한계가 있을 수 있습니다.
고가용성은 주로 수평 확장과 함께 사용되지만, 수동적 또는 활성적인 형태로 구현될 수 있습니다. 다중 AZ를 활용하면 데이터베이스 시스템의 고가용성을 확보할 수 있습니다.

 

 

 

ELB (Elastic Load Balancing) 개요

로드 밸런싱은 서버 또는 서버 집합으로 들어오는 트래픽을 분산하는 역할을 하는 중요한 AWS 서비스입니다. 이것은 클라이언트(유저)가 백엔드 또는 다운스트림 EC2 인스턴스 또는 서버와 통신할 때 사용됩니다.

예를 들어, 세 개의 EC2 인스턴스가 있다고 가정하고, 앞에는 일래스틱 로드 밸런서가 있고, 뒤에는 서버셋이 있습니다. 유저들은 일래스틱 로드 밸런서에 연결되며, 로드 밸런서는 트래픽을 백엔드 EC2 인스턴스로 분산합니다. 이렇게 함으로써 트래픽 부하가 분산되며 애플리케이션은 더욱 확장 가능하게 됩니다

ELB 활용
로드 밸런서를 사용하면 다수의 다운스트림 인스턴스로 트래픽을 분산시키고, 단일 액세스 지점을 노출하게 되므로 다운스트림 인스턴스의 장애를 관리할 수 있습니다. 로드 밸런서는 인스턴스의 상태를 확인하고, 작동 중인 인스턴스에만 트래픽을 보낼 수 있도록 합니다. 또한 SSL 종료, 쿠키로 고정도, 고가용성, 트래픽 분리 등을 통해 애플리케이션에 여러 가지 유용한 기능을 제공합니다.


AWS 로드 밸런서의 종류


CLB (CLassic Load Balancer)
HTTP, HTTPS, TCP, SSL과 secure TCP 프로토콜을 지원하며, 예전 버전의 로드 밸런서입니다. AWS는 이제 사용을 권장하지 않지만 아직 사용 가능합니다.

ALB (Application Load Balancer)
ALB는 2016년 출시했고 HTTP, HTTPS와 WebSocket 프로토콜을 지원합닌다.

NLB (Network Load Balancer)
2017년에 출시했고, TCP, TLS, secure TCP와 UDP 프로토콜을 지원합니다.

GWLB (Gateway Load Balancer)
네트워크층에서 작동하며, 3계층과 IP 프로토콜을 지원하며, 2020년에 나온 상대적으로 신규인 로드 밸런서입니다.

더 많은 기능을 가지고 있는 신형 로드 밸런서를 사용하시는 것이 권장되고, 일부 로드 밸런서들은 내부에 설정될 수 있어 네트워크에 개인적 접긴이 가능하고 웹사이트와 공공 어플리케이션 모두에 사용가능한 외부 공공 로드 밸런스도 존재합니다.

 


로드 밸런서 보안

유저들은 HTTP나 HTTPS를 사용하여 로드 밸런서에 어디서든 접근할 수 있으므로 관련 보안 규칙은 중요합니다. 
로드 밸런서의 보안 그룹 규칙은 포트 범위가 80 또는 443이고 소스가 0.0.0.0/0(어디서든)인 형태가 됩니다. 이것은 유저가 로드 밸런서에 연결할 수 있도록 하는 규칙입니다.

EC2 인스턴스의 보안 그룹 규칙은 다소 다르며, EC2 인스턴스는 로드 밸런서에서 들어오는 트래픽만을 허용하도록 구성해야 합니다. 이렇게 함으로써 보안이 강화되며, 로드 밸런서를 통해 들어오지 않는 트래픽은 차단됩니다.


 

728x90
반응형