Microservice

이동현·2023년 4월 26일
0

코드 캠프 블로그

목록 보기
35/50

마이크로 서비스

  1. 너! Nestjs 폴더를 왜 여러개 만들고 있니?!

  2. 그래프뷰엘 MSA는 더 쉽군!

  3. 아하! 한 회사에서 다양한 언어를 쓸 수 있구나!

마이크로서비스란?

Nestjs 폴더 나누기(DB도 같이 나눠야 함)

나누기전

나눈후

어떤 컴퓨터(서비스)로 가는지 알수 없기에 중재해주는 API게이트웨이가 필요하다!(ip주소가 고정되어 있다)
큰규모에 서비스에서는 금액이 비싼 단점이 있지만 감수하고 사용한다!

마이크로서비스 WHY?

  1. 소스코드 전체를 빌드/배포 하려면 오래 걸림
    => 게시판API 바뀌면게시판 폴더만 다시 배포

  2. 에러나서 서버가 죽으면 모든 API가 사용불가능
    => 게시판 죽어도 상품, 로그인 등 나머지는 모두 사용간으

  3. Nestjs 개발자만 뽑아야함
    => 다양한 개발자 채용가능

단점

1.막대한금액

2.전체적인 기술복잡도 증가
따라서, 작은서비스보다 큰 서비스에서 많이 사용
3. 결론: 필수는 아님(필요없는 데 사용하는 것을 오버엔지니어링이라고 함)

Nginx를 API-Gateway로 하여 Main / Stock 서비스 분리

지금까지는 같은 프레임워크, 같은 API 쿼리 언어(Rest-API 또는 GraphQL-API)를 사용했다.그런데 만약 다른 프레임워크 다른 API 쿼리 언어를 사용했다면 어떻게 진행해야 할까?

이때 NginX를 이전에 배웠던 API-Gateway 용도로 사용하면 된다. 이런 방법을 NginX의 Reverse Proxy라고 한다.

예를 들어 해외여행을 갔다는 가정했을 때 직항 비행기가 없어 경유하여 목적지에 가야 한다. 여기서 경유지가 Proxy가 된다. 즉 Proxy 서버란 중계 서버이다.

NginX Reverse Proxy


인가는 Nginx에서 해주는데 그것이 다 해주기 힘든 경우도 있어서 Nginx+를 사용하긴 해야한다.

순방향 Proxy(Forward Proxy)

  • 보안 : Proxy Server에서 In/Out bound 패킷에 대한 보안 정책(Content filtering등)을 적용할 수 있습니다.
  • 성능 : Proxy Server는 내부에 Cache를 유지하며 이미 한번 통신한 외부 서버의 이미지, 파일, 그 외 정보들을 저장할 수 있습니다. 내부 사용자가 원격 서버에 접속 시, cache에 데이터가 있으면 물리적으로 먼 곳까지 갈 필요없이 Proxy 서버가 데이터를 제공하여 빠른 통신을 지원합니다

역방향 Proxy (Reverse Proxy)

외부에서 내부 서버가 제공하는 서비스 접근 시, Proxy 서버를 먼저 거쳐서 내부 서버로 들어오는 방식입니다.

Reverse Proxy 사용으로 얻는 장점은 크게 아래와 같습니다.

  • 보안 : 외부 사용자는 실제 내부망에 있는 서버의 존재를 모르게 됩니다. 모든 접속은 Reverse Proxy 서버에게 들어오며, Reverse Proxy는 요청에 맵핑되는 내부 서버의 정보를 알고 요청을 넘겨줍니다. 따라서 내부 서버의 정보를 외부로부터 숨길 수 있습니다.

  • 로드밸런싱 : Proxy 서버가 내부 서버의 정보를 알고 있으므로 로드밸런싱을 통해 부하 여부에 따라 요청을 분배 할 수 있습니다.

0개의 댓글