반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링 빈
- assertThat
- assertThrows
- resultMap
- mybatis
- 스프링 부트
- thymeleaf
- DIP
- 필드 주입
- 스프링 컨테이너
- Effective Java
- 스프링 부트 입문
- db
- 스프링
- Javascript
- kafka
- DI
- JPA
- jdbc
- 싱글톤
- 생성자 주입
- @Configuration
- 스프링 부트 기본
- sqld
- springboot
- 스프링부트
- java
- SQL
- 스프링 프레임워크
- spring
Archives
- Today
- Total
선 조치 후 분석
클러스터(Cluster)에 대하여.. 본문
728x90
반응형
SMALL
클러스터(Cluster)
여러 대의 서버 혹은 노드가 하나의 시스템처럼 동작하는 구조
클러스터에 포함된 서버들은 네트워크를 통해 연결되어 협력하고, 하나의 큰 시스템처럼 동작하여 성능을
향상하거나 가용성을 높이는 역할
특징
- 여러 대의 서버나 컴퓨터들이 하나의 시스템처럼 동작
- 고가용성(HA:Hign Availability), 부하 분산(Load Balancing), 성능 향상(Scalability)등을 목표
- 클러스터 내부에서 서버들은 서로 통신하며, 데이터 공유 및 작업을 나누어서 처리
- 시스템의 중단 없이 서비스를 제공하는 것이 목적
클러스터의 주요 목적
1. 고가용성 (High Availability, HA)
- 클러스터는 서비스의 지속적인 가용성을 보장한다.
- 클러스터 내의 서버 중 하나가 고장 나도, 다른 서버가 그 역할을 대신하여 서비스 중단을 방지
2. 성능 향상(Performance)
- 클러스터 내의 서버들이 동시에 작업을 처리하여 성능을 향상할 수 있다.
- 예를 들어, 병렬 처리나 부하 분산을 통해 트래픽이나 처리 속도를 개선할 수 있다.
3. 확장성(Scalability)
- 클러스터는 수평적 확장이 용이하다. 즉, 서버를 추가하는 것만으로 성능이나 처리 능력을 확장할 수 있다.
4. 부하 분산(Load Balancing)
- 클러스터 내의 여러 서버는 부하 분산 장치를 통해 요청을 균등하게 분배한다.
- 이를 통해 개별 서버의 부하를 줄이고, 전체 시스템의 성능을 최적화할 수 있다.
클러스터의 종류
1. 웹 서버 클러스터(Web Server Cluster)
- 여러 대의 웹 서버가 클러스터로 묶여 웹 요청을 분산 처리하고, 이를 통해 대량의 트래픽을 효율적으로 처리
- 한 서버에 장애가 생겨도 다른 서버가 요청을 처리하여 서비스가 계속 제공
- 로드 밸런서(Load Balancer)가 클러스터 내의 서버에 트래픽을 분산시켜 부하를 균등하게 분배
2. 데이터베이스 클러스터(Database Cluster)
- 여러 데이터베이스 서버가 클러스터로 구성되어 데이터를 분산 저장하고, 복제하여 데이터의 가용성과 신뢰성 향상
- 장애가 발생한 서버는 다른 서버가 대신 처리하여 데이터베이스 서비스의 가용성을 유지
- MySQL Cluster, Cassandra, MongoDB 등은 분산 데이터베이스 클러스터를 지원
3. 고가용성 클러스터(High Availability Cluster)
- 고가용성을 목표로 한 클러스터로, 하나의 서버가 다운되더라도 다른 서버가 자동으로 대신 처리하여
시스템의 다운타임을 최소화 - Active-Passive 클러스터에서는 주 서버가 다운되면 대기 중인 서버가 자동으로 활성화되어 서비스를 지속
4. 컴퓨팅 클러스터 (Compute Cluster)
- 여러 서버가 함께 연산을 처리하는 형태로, 과학 계산이나 대규모 데이터 처리에 사용
- HPC(High-Performance Computing) 클러스터와 같은 형태로 대규모 계산 작업을 분산 처리
5. 파일 시스템 클러스터 (File System Cluster)
- 여러 대의 서버가 클러스터를 구성하여 파일 시스템을 공유하고 데이터를 분산 저장
- NAS(Network Attached Storage)나 GlusterFS와 같은 시스템이 파일 시스템 클러스터링을 제공
클러스터링의 구성 요소
노드(Node)
- 클러스터를 구성하는 개별적인 컴퓨터나 서버
- 주로 처리 장치나 저장 장치 역할
네트워크(Network)
- 클러스터 내의 노드들이 서로 통신할 수 있도록 고속 네트워크가 필수적
- 노드들 간의 빠르고 안정적인 데이터 전송이 이루어져야 시스템이 원활히 동작
클러스터 관리 소프트웨어(Cluster Management Software)
- 클러스터의 상태를 모니터링하고, 노드를 추가하거나 삭제하는 등 클러스터를 관리하는 소프트웨어
- 예를 들면, Kubernetes, Hadoop 등이 클러스터 관리를 돕는 툴
부하 분산기(Load Balancer)
- 클러스터 내에서 트래픽을 각 서버에 고르게 분배하는 역할
- 로드 밸런서는 HTTP, TCP, UDP 등의 트래픽을 여러 서버로 분배하여 서버의 부하를 최적화
스토리지(Storage)
- 클러스터에서 데이터를 저장하는 방식도 다양, 각 노드는 로컬 스토리지를 갖추고 있을 수 있으며,
분산 스토리지 시스템을 사용하여 데이터를 여러 노드에 분산 저장 가능
클러스터링 기법
Active-Passive 클러스터
- 하나의 노드가 활성 상태로 서비스하고, 다른 노드는 대기 상태
- 활성 노드가 장애를 일으킬 경우 대기 노드가 활성화되어 서비스를 대체
Active-Active 클러스터
- 모든 노드가 활성화되어 동시에 서비스를 제공하며, 로드 밸런서나 클러스터 관리 소프트웨어가 부하를 분산
장점
- 고가용성
한 서버가 실패해도 클러스터 내 다른 서버가 자동으로 대신 처리하여 서비스 중단을 방지 - 확장성
클러스터에 서버를 추가함을 써 성능이나 처리 능력을 확장할 수 있다. - 부하 분산
여러 서버가 요청을 나누어 처리하여 성능을 최적화한다.
단점
- 복잡성
클러스터를 설정하고 관리하는 과정이 복잡할 수 있다. - 비용
여러 대의 서버와 네트워크 장비가 필요하므로 초기 투자 비용이 클 수 있다. - 통신 오버헤드
클러스터 내 서버들 간의 통신에서 발생할 수 있는 오버헤드가 성능에 영향을 줄 수 있다.
728x90
반응형
LIST
'ETC > IT Knowledge' 카테고리의 다른 글
SSH (Secure Shell)이란? (0) | 2024.12.26 |
---|---|
REST와 MQ의 개념 및 차이점 정리 (1) | 2024.12.26 |
Zookeeper 기본 개념 정리 (1) | 2024.12.18 |
eGovFrame Web Project vs eGovFrame Boot Web Project 차이점 (0) | 2024.12.17 |
MSA(Microservices Architecture)? MA(Monolithic Architecture)? 개념 및 차이 (0) | 2024.12.09 |