공지

전체 글

63건

[MSA] 모니터링 (Monitoring, Logging, Tracing)

MSA(Microservice Acchitecture)에서는 서비스가 분산되어 있는데 모니터링을 어떻게 해야 될까? 클라우드 환경에서는 디스크에 기록된 로그들은 사라질 수 있고 수 많은 서비스의 로그를 각각 관리하기는 굉장히 힘들고 시간도 오래 걸린다. 그렇기 때문에 장비의 디스크에 기록하는 것에 의존해서는 안되고 모든 로그들을 한 눈에 볼 수 있도록 구성하여 문제가 발생했을 때 빠른 대처가 가능하다. MSA에서의 모니터링, 로깅, 트레이싱에 대해서 알아보자. 모니터링 (Monitoring) 인프라 및 응용프로그램의 성능이나 효율성을 확인하는 작업으로 각 대상에게서 수집한 Metric정보를 통해서 대상 리소스의 사용률, 트래픽 등을 수치로 표현하는 기능을 수행한다. 자체적으로 시각화하여 수치와 그래프로 ..

2022.12.12 · 댓글

[MSA] Service Discovery 구축하기 - Spring Boot + Netflix OSS Eureka Server

이전 글에서 이야기했듯이 MSA에서는 기본적으로 여러 서비스를 등록하고 등록한 서비스의 검색을 수행하는 서비스 디스커버리 서버(Service Discovery Server)가 필요하다. 디스커버리 서버 Client-Side 방식 중에서 가장 유명하고 구현이 쉬운 Netflix OSS Eureka 서버를 구축해보려 한다. 1. Service Discovery Server 프로젝트 생성 1-1. Service Discovery 프로젝트 생성 ServiceDiscovery 프로젝트를 생성하고 dependency 선택창에서 eureka를 검색해서 Eureka Server를 추가한다. 1-2. application.yml 설정 생성된 프로젝트 src/main/resources 폴더 하위에 application.p..

2022.12.02 · 댓글

[MSA] API Gateway 구축하기 - Spring Boot + Spring Cloud Gateway

API Gateway를 구현하기 전에 Service Discovery Server가 필요한데 Netflix OSS Eureka를 사용한 구현하는 방법을 소개한 글을 읽고오면 된다. [MSA] Spring Boot로 Service Discovery 구축하기 - Netflix OSS Eureka Server 이전 글에서 이야기했듯이 MSA에서는 기본적으로 여러 서비스를 등록하고 등록한 서비스의 검색을 수행하는 서비스 디스커버리 서버(Service Discovery Server)가 필요하다. 디스커버리 서버 Client-Side diary-developer.tistory.com 바로 시작해보자! 1. API Gateway, Service 프로젝트 생성 1-1. Sping Cloud Gateway 프로젝트 생성..

2022.12.02 · 댓글

[Linux] 생각보다 자주쓰는 Linux 명령어 모음

특정 파일 찾는 명령어 find ./|grep TEST 디렉토리 이동하는 명령어 cd ./common/downloadFiles/​ 파일이동하는 명령어 mv /home/centos/SAMPLE.xls ./ mv /home/centos/win.jpg ./ 파일권한 변경 명령어 chmod 644 SAMPLE.xls 파일 유저/그룹명 변경 명령어 chown testuser:testuser SAMPLE.xls 현재 서비스 포트 확인 netstat -an | grep 10000 현재 실행중인 프로세스 찾기 ps -ef | grep project [pid] project 172981 168912 0 16:57 pts/16 현재 실행중인 프로세스 죽이기 kill -9 [pid]

2022.12.01 · 댓글

[Spring Boot] Java RESTful API 만들어서 GET, POST 호출 해보기

이전 글에서 이클립스(Eclipse)를 설치하고 Spring Boot 설정 및 프로젝트 생성까지 해봤는데 이번에는 Java, Gradle 빌드 기반으로 RESTful API를 한번 만들어 보겠다. 그전에 간략하게 REST란 무엇인가에 대한 설명을 하자면 REST REpresentational State Transfer의 약자로, 분산형 하이퍼미디어 시스템을 위한 아키텍처 REST 아키텍처의 구성요소 1. 자원 (Resource) - URI 모든 자원은 고유의 ID가 있고, HTTP URI로 표현한다. 클라이언트는 URI를 이용해서 자원을 지정하고 해당 자원을 조작하기 위해 서버로 요청한다. 2. 행위 (Verb) - Method HTTP 프로토콜의 Method를 사용하고 GET/POST/PUT/PATCH..

2022.12.01 · 댓글 2

[Spring Boot] 이클립스(Eclipse) 설치 및 스프링 부트(Spring Boot) 사용하기

개발을 시작하면서 가장 힘들었던 일 중 하나가 개발환경 세팅하기...😅 STS(Spring Tool Suite)를 설치하여 사용하는 방법도 있지만 이클립스를 직접 설치해서 Spring Boot를 사용하는 방법을 소개하려고 한다. 아래 내용들은 최신 버전 기준 Java 웹 개발 기준으로 작성되었다. 바로 시작!! 1. 이클립스(Eclipse) 설치 1-1. 이클립스 설치 파일 다운로드 아래 URL로 접속해서 최신 버전의 이클립스 설치를 해보자. Eclipse Downloads | The Eclipse Foundation The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source..

2022.11.30 · 댓글

[Docker] WSL을 사용하여 Linux 설치 후 Docker 실행 에러 해결방법 - Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

에러 상황 Window에서 WSL로 Docker를 설치하고 도커 명령어 입력했을 때 아래와 같이 에러 발생...😢 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 해석해보면 Docker daemon을 연결할 수 없는데 지금 실행 중인지 묻는다. 정말 간단하게 생각하면 Docker daemon이 실행 중이지 않으니 실행시켜 주면 된다. 아래 명령어를 입력해보면 $ sudo systemctl start docker $ sudo systemctl enable docker 그런데도 에러 발생...😭 System has not been booted with systemd as init s..

2022.11.24 · 댓글

[MSA] Config Server 이해하기 - Spring Cloud Config (4)

MSA에서 서비스가 많아지면서 그만큼 설정정보 파일도 많아지게 되었다. 설정 파일을 수정 후 서비스에 적용하려면 서버를 재기동해야 하는 경우가 생기게 된다. 만약 공통으로 사용하는 설정 파일이라고 생각해보면 변경된 설정을 적용하기 위해서 서비스 수만큼의 재기동을 해야 하는 문제점이 있다. MSA에서는 이런 불편함을 해소하고자 설정 파일을 재기동없이 각 서비스에 적용되도록 하고 많은 설정 파일들을 관리하는 Config Server 라는 개념이 생겨나게 되었다. Config Server 분산된 시스템에서 모든 애플리케이션 관련 설정 정보를 중앙 집중식 관리를 지원하는 서버 Config Server를 사용한다면 모든 서비스들의 설정 정보들을 외부에서 보관 및 관리할 수 있도록 지원하고 서버를 재기동 하지 않고..

2022.11.22 · 댓글

[MSA] Service Discovery Server 이해하기 (3)

MSA는 클라우드 환경에서 수많은 서비스들이 자동 스케일링, 확장 등 서비스 인스턴스가 수시로 생성되고 또 소멸을 반복하게 되면서 서비스의 정보(IP, PORT 등)는 계속해서 변경되는데 계속해서 변경되는 서비스를 식별해서 호출하기는 상당히 어렵다. 그래서 많은 서비스들을 유지 관리하기 위해 서비스 디스커버리 패턴을 적용할 필요가 있다. 서비스 디스커버리 (Service Discovery) 서비스 인스턴스를 식별하여 서비스를 등록하고 등록한 서비스의 검색을 수행한다. 서비스 디스커버리 서버의 동작 방식에 따라 Client Side, Server Side 방식이 존재한다. Client Side Discovery Client Side Discovery는 클라이언트가 서비스를 호출할 때 디스커버리 서버에 서비..

2022.11.22 · 댓글

[MSA] API Gateway 이해하기 - Spring Cloud Gateway (2)

지난 글에서는 Monolithic Architecture와 MSA에 대해 전반적으로 알아보고 정리하는 시간을 가졌다. 이번 글에서는 그중 MSA에서의 API Gateway에 대해 조금 더 자세히 다뤄보려고 한다. API Gateway 쉽게 말해 모든 API 요청을 받는 문(통로)으로 요청 들어온 API에 대해 인증/인가, 라우팅, 로깅, 모니터링 등의 기능들을 제공한다. API Gateway는 간단명료하게 모든 요청에 대한 통로라고 생각하면 될 것 같은데 많은 서비스들을 각각 호출하는 것이 아닌 API Gateway 단일 지점을 호출하면 된다. 예를 들어 API Gateway를 고속도로의 톨게이트에 빗대어 생각해보면 어느 지역을 가든 자동차가 고속도로를 이용하기 위해서는 톨게이트를 지나쳐야 한다. 고속도..

2022.11.21 · 댓글