보안

마이크로서비스 아키텍처는 API를 기반으로 동작합니다. 대상에 따라 노출해도 되는 API와 노출하면 안 되는 API가 다릅니다. 이를 관리하는 대표적인 방법은 오픈 API에서 사용자마다 접근 가능한 권한을 별도로 관리하는 것입니다. 오픈 API가 아닐 때 외부에서 자유롭게 접근 가능한 API와 신뢰할 수 있는 시스템에서만 접근 가능한 API로 구분하는 방식이 있습니다.

Public과 Private 영역

상품을 조회하는 API는 사용자에게 노출해도 되는 API이지만, 상품을 삭제하거나 등록하는 API는 특정 운영자에게만 노출해야 하는 API입니다.

Public과 Private 영역

Public과 Private 영역

사용자에게 노출해도 되는 API를 Public API라고 하며, 노출하면 안 되는 API를 Private API라고 하겠습니다. 보안상 Public API와 Private API의 접근을 제한하는 가장 효과적인 방법은 네트워크 환경을 분리하는 것입니다. 사용자가 접근할 수 있는 제한된 API만 Public 네트워크 환경에 위치하고, 나머지는 모두 Private 네트워크 환경에 위치하는 방법입니다. 우리가 만든 마이크로서비스 아키텍처에서는 게이트웨이를 Public용과 Private용으로 구분해 보안을 강화할 수 있습니다.

Public 게이트웨이와 Private 게이트웨이 (오류 : 밑의 public → private이다.)

Public 게이트웨이와 Private 게이트웨이 (오류 : 밑의 public → private이다.)

Public 게이트웨이

우리가 만든 게이트웨이는 모든 API에 접근 가능한 Private 게이트웨이입니다. Public 게이트웨이를 만들 때 고려해야 할 기본적인 사항을 알아보겠습니다.

기본적인 보안 내용을 알아보았습니다. 서비스별 상황에 맞는 다양한 보안 정책이 있으며, 각 상황에 적합한 기술을 적용하는 것이 중요합니다.

모니터링

마이크로서비스의 상태를 모니터링하는 방법을 알아보겠습니다. 마이크로서비스는 프로세스 단위이기 때문에 CPU 사용량이나 메모리 사용량 등 프로세스 레벨의 모니터링이 가능합니다. 각종 모니터링 툴로 모니터링할 수 있으면 Node.js의 process 오브젝트를 활용해서도 모니터링할 수 있습니다.

process 오브젝트를 이용한 모니터링

Node.js의 process 오브젝트를 이용해 수집할 수 있는 프로세스 정보는 다음과 같습니다.