728x90
기존의 로컬 환경이나 사내에서 구축하고 운영하였던 시스템을 클라우드 환경으로 전환하기 위해서 어떤 아키텍처를 가져야 하는지 알아보자.
Cloud Native Architecture(클라우드 네이티브 아키텍쳐)의 특징
1. 확장 가능한 아키텍처
- 시스템의 수평적 확장에 유연 → 더 많은 사용자 요청 처리 가능
- 확장된 서버로 시스템의 부하 분산, 가용성 분산
- 시스템 확장은 scale-up, scale-out으로 나눌 수 있다.
- scale-up : 하드웨어의 사양을 높이는 작업 ex) 가지고 있는 시스템의 CPU나 메모리의 스펙을 높이는 작업(scalse-up) 등
- scale-out : 같은 사양의 서버 즉 인스턴스를 여러 개 배치함으로써 동시에 더 많은 요청을 처리할 수 있도록 하는 것
- 이렇게 시스템을 양쪽으로 늘리기 위해서는 하드웨어의 비용이 증가 하겠지만,
- 클라우드 네이티브 아키텍처에서는 클라우드 서비스를 제공하는 업체로부터 서버, 가상의 스토리지, 가상의 네트워크 등을 빌려서 사용함으로써 비용 최소화
- 증가된 시스템을 더 이상 사용하지 않을 경우에는 빌렸던 리소스를 반납함으로써 비용 최소화
- 클라우드 네이티브에서는 가상 서버의 기술이 핵심적으로 필요
- 시스템 확장은 scale-up, scale-out으로 나눌 수 있다.
- 시스템 또는 서비스 애플리케이션 단위의 패키지(컨테이너 기반 패키지)
- 기존의 서버 가상화 방식과 더불어 컨테이너 방식 가상화 같이 사용
- 모니터링(현재 사용되고 있는 시스템의 상황 및 리소스의 사용량 등 확인)
2. 탄력적 아키텍처
- 서비스 생성-통합-배포(CI/CD), 비즈니스 환경 변화에 대한 대응 시간 단축
- 그렇지 않으면 개발자는 비즈니스 로직을 개발하는 시간보다 빌드하고 배포하는 데 상당한 시간 허비
- 분할된/독립적인 서비스 구조, 종속성 최소화
- 무상태 통신 프로토콜
- 서비스의 추가와 삭제 자동으로 감지
- 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리)
- 마이크로 서비스들의 존재는 Discovery Service라는 곳에서 등록/삭제
3. 장애 격리(Fault isolation)
- 특정 서비스에 오류가 발생해도 다른 서비스에 영향을 주지 않음.
- → 어떤 특정적인 부분에 대해서 수정을 한다 하더라도 전체 서비스를 다시 배포해야 하는 것이 아닌 특정 서비스만 배포할 수 있기 때문에 다른 시스템에 영향을 주지 않을 수 있다.
정리 keyword
📌1. 확장 가능!
📌2. 탄력적 구조(독립된)!
📌3. 장애 격리!
탄력적 구조이기 때문에 확장 가능이 쉽고 장애 격리가 된다.(탄.확.장.)로... 익숙해져 보자..
'공부 > MSA' 카테고리의 다른 글
[MSA] Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - Service Discovery (0) | 2024.01.03 |
---|---|
[MSA] Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - Microservice와 Spring Cloud의 소개(12Factors~Spring Cloud란?) (1) | 2023.12.27 |
[MSA] Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - Cloud Native Application (0) | 2023.12.22 |
[MSA] Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 소프트웨어 아키텍처 (0) | 2023.12.21 |
마이크로서비스 아키텍처(MSA)란? (0) | 2023.08.29 |