클라우드 컴퓨팅과 서비스

남궁진 (jinvicky)·2023년 10월 25일

Cs

목록 보기
2/6

Overview


간단한 클라우드 컴퓨팅 개요와 이와 관련된 MSA, Spring Cloud, 그 외 연관 기술들에 대한 간단한 핵심을 정리했다.

클라우트 컴퓨팅이란?

언제 어디서나 IT 리소스를 필요에 따라 네트워크로 접근 기능을 제공하는 모델이다.
기업은 기업 내 정보와 업무를 CSP 데이터 센터 시스템 내에서 처리한다.
*데이터 센터란 IT 장비가 위치한 중앙집중식 물리 시설이다.

즉, 데이터 처리 방법, 정보 자산을 자체 서버에 보유하는 것이 아니라 클라우드 사업자에게 위임하는 것이다.
클라우드를 사용할 경우 기업은 H/W, S/W 관리도 필요 없이 IT 리소스 사용 요금만 지불할 뿐 그 외의 일들은 CSP가 수행한다.

클라우드는 IT 리소스 사용에 필요한 과정들을 캡슐화하고 프로비저닝을 통해 IT 리소스를 서비스화했다.

온프레미스와 클라우드

온프레미스란 앞서 말한 기업이 자체 H/W, S/W 설비를 보유 및 운용하는 방식이다.

환경을 구축하는 데 직접비용, 이후 IT장비들을 유지보수하기 위한 간접비용이 요구된다.
리소스 제공량과 서비스 요구량을 비교해서 결핍 또는 잉여 상태로 나타내는데, 결핍 상태를 막기 위해 처리량이 많도록 설계함에 따라 잉여 리소스로 인한 비용 부담이 생긴다.
그러나 클라우드는 IT 장비 구축/운영 단계를 단축하고 필요한 만틈의 가상 서버 등의 리소스를 사용할 수 있으므로, 비용 최적화가 가능해진다.

경제적 관점에서 온프레미스에서 클라우드로 이전할 때, 비용이 CapEx(초기 구축 비용)에서 OpEx(수요에 따라 측정된 비용)로 변환되었다고 한다.

클라우드 컴퓨팅 서비스 모델

1. IaaS

하드웨어 리소스를 제공하는 클라우드 서비스
예) CPU, 메모리

2. PaaS

실행 환경 및 개발 환경을 제공하는 서비스
예) OS, S/W 개발 라이브러리, 런타임, 프레임워크

3. SaaS

하드웨어 + OS + 애플리케이션까지 제공하는 서비스

서비스

MSA (Micro Service Architecture)

MSA는 여러 micro service(마이크로 서비스)들을 연결한 구조를 말한다.
마이크로 서비스는 작고 독립적이며, 다른 개발 언어 및 DB가 사용 가능한 서비스를 말한다.

장점

  1. 각각의 서비스가 독립적인 상태로 Message-driven API를 통해 통신하는 구조라서 독립적 배포가 가능하다.
  2. 서비스별로 개발 및 유지보수 속도가 빠르다.
  3. 부하에 따른 개별 scale-out으로 메모리, CPU쪽이 이득을 얻는다.

단점

  1. 인프라 부족
  2. 내부 개발 경험 부족 (실제로 도입이 늦어지는 이유)
  3. 독립적이기 때문에 통합 테스트가 어렵다.
  4. 운영에 배포할 때 1개를 배포해도 연결된 서비스들의 연계도 확인해야 한다.

Spring Cloud

Spring Cloud란 스프링에서 MSA를 구축하기 위한 프레임워크다.
Spring boot는 단일 서비스를 목적으로 하지만, Spring Cloud는 분산 시스템 개발이 목적이다.

주요 기능

  • 서비스 디스커버리
  • 로드 밸런싱
  • 분산 추적

Spring Cloud 구조

RAD 방법론

간단히 말하면 짧은 개발기간 동안 CASE 도구를 사용해 빠르게 개발하는 것이다. Spring Cloud에서 비즈니스 로직에 집중하려고 쓴다.

자세한 설명은 https://itpenote.tistory.com/34

Spring Cloud Gateway

API Gateway란 클라이언트와 백엔드 사이의 리버스 프록시 서비스이다.
API들의 말 그대로 관문(Gateway) 역할을 한다.
이 관문에는 모니터링, 인증, 서킷브레이커 등의 관리포인트들을 추가한다.

Spring Cloud Gateway는 Route, Predicate, Filter로 구성되어 있다.

Spring Cloud Netflix

Spring Boot에 대한 Netflix OSS 통합을 제공한다.
내부 제공

  • Service Discovery : Eureka
  • Circuit Breaker : Hystrix
  • Router and Filter : Zuul
  • Client Side Load Balancer : Ribbon

*Zuul은 API Gateway이다.

Eureka

MSA에서 계속 바뀌는 Ip, Port 정보를 수동 관리 대신 더 효과적으로 관리하는 방법을 위해 Eureka의 Service Discovery를 사용한다. (동적 환경 감지)

Service Discovery
key,value 형식으로 서비스의 위치값을 저장하고 있다. Micro Service 위치를 찾아준다.

Service Registry
Service Registry는 각각 Micro Service가 자신의 IP,Port 정보를 특정 서버에 등록(Register)한다.

이후 클라이언트가 API Gateway 등으로 요청을 보내면 Service Discovery를 통해 서비스 정보를 다시 API Gateway로 넘겨준다.

Reference


클라우드 컴퓨팅 - 정재화, 이대원 공저
Msa

Spring Cloud

Eureka

profile
문제를 차근차근 하나씩 해결하려고 합니다:)

0개의 댓글