[MSA + Spring] 공부하기 2일차

김준영·2022년 10월 5일
1

MSA + Spring

목록 보기
2/4
post-thumbnail

클라우드 컴퓨팅이란?

출처 : https://hanamon.kr/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%BB%B4%ED%93%A8%ED%8C%85cloud-computing-aws%EB%9E%80/

유연하고 안전하면서 사용하기 쉬운환경을 제공하고자 인터넷을 통해 컴퓨팅과 가상화된 IT 서비스(데이터베이스, 네트워킹, 소프트웨어, 서버, 분서(analytics)등)를 제공하는 것.

일반적인 클라우트 컴퓨팅 모델

  • IaaS(Infrastructure as a Service) : 공급업체는 서버, 스토리지, 네트워크 같은 컴퓨팅 자원에 접근할 수 있는 인프라스트럭처를 제공한다.

  • CaaS(Container as a Service) : IaaS와 PaaS의 중간 모델로, 컨테이너 기반 가상화의 한 형태다.
    개발자가 서비스가 배포되는 가상 머신을 관리하는 IaaS 모델과는 달리 CaaS를 사용하면 도커처럼 경량의 이식성 높은 가상 컨테이너 내 마이크로서비스를 클라우드 공급자 환경에 배포할 수 있다.

  • PaaS(Platform as a Service) : 이 모델은 사용자가 애플리케이션의 개발, 실행, 유지 관리에 집중할 수 있는 플랫폼과 환경을 제공한다. 사용자는 물리 인프라스트럭처에 투자할 필요가 없고 이들 도구를 관리하는데 시간을 할애할 필요도 없어 사용자는 온전히 애플리케이션 개발에 전념할 수 있다.

  • FaaS(Function as a Service) : 서버리스 아키텍처라고도 하는데, 이름에 '서버리스'가 있음에도 이 아키텍처는 서버 없이 특정 코드를 실행하는 것을 의미하지 않는다. 실제로는 공급업체가 필요한 모든 서버를 제공하는 클라우드 환경에서 기능(Functionalities)의 실행 방법을 의미한다. 서버리스 아키텍처를 사용하면 확장, 프로비저닝 및 서버 관리를 걱정할 필요가 없어 서비스 개발에만 집중할 수 있다.

  • Saas(Software as a Service) : 주문형 소프트웨어라고도 하는 이 모델을 사용하면 사용자는 특정 애플리케이션을 배포하거나 유지 관리할 필요 없이 사용할 수 있다.


왜 클라우드와 마이크로서비스인가?

  • 물리서버

    마이크로서비스를 물리 머신에 구축하고 배포할 수 있지만 물리 서버가 제한되어 있어 실제로 이렇게 수행하는 조직은 많지 않다. 물리 서버 용량도 신속하게 늘릴 수도 없으며 수평적으로 마이크로서비스를 확장하는 데 막대한 비용이 소요된다.

  • 가상 머신 이미지

    마이크로서비스의 주요 이점 중 하나는 확장성과 서비스 실패 이벤트에 대한 응답으로 인스턴스를 빠르게 시작하고 종료할 수 있다.

  • 가상 컨테이너

    가상 컨테이너는 VM 이미지에 마이크로서비스를 배포하는 데 대한 자연스러운 확장이다.
    서비스를 전체 VM에 배포하는 대신 도커 컨테이너로 클라우드에 배포한다.

클라우드 기반 마이크로서비스의 장점은 탄력성(elasticity) 개념에 기반을 둔다. 클라우드 공급자를 통해 마이크로서비스를 배포하면 애플리케이션에 대한 훨씬 더 높은 수평 확장성(서버와 서비스 인스턴스를 추가해서)을 얻을 수 있다.


마이크로서비스 작성 지침

  • 적정 규모 : 마이크로서비스가 너무 많은 책임을 지지 않도록 적절한 마이크로서비스 크기를 유지하는 방법이다.

  • 위치 투명성 : 서비스 호출에 대한 물리적 상세 정보를 관리하는 방법이다.

  • 회복성 : 실패한 서비스를 우회하고 "빠른 실패" 방식을 적용하여 마이크로서비스 소비자와 애플리케이션의 전반적인 무결성을 보호하는 방법이다.

  • 반복성 : 서비스의 모든 새 인스턴스가 시작할 때 운영 환경의 다른 서비스와 동일한 구성과 코드베이스를 보장하는 방법이다.

  • 확장성 : 서비스 간 직접적인 종속 관계를 최소화하고 마이크로서비스를 적절히 확장할 수 있도록 통신 방식을 구축하는 방법이다.

profile
ㅎㅎ

0개의 댓글