Redis의 데이터가 삭제되는 문제 발생 우리의 서비스는 일요일마다 scheduler가 작동하여 redis에 특정 데이터를 저장하고, server가 해당 데이터를 redis에서 가져다 사용한다. 하지만 매주 스케쥴러가 돌때마다 redis에 모든 데이터가 삭제되는 현상이 발생하였고, 스케줄러가 있음에도 수동으로 데이터를 넣어줘야하는 현상이 발생하였다. 때문에 redis 컨테이너의 로그를 보니 해당 오류메세지가 나타나 있었다. 처음에 redis를 우리의 서비스를 연결하고 실행하였을때, redis가 연결이 되지 않았다. 그래서 redis가 작동하고 있는 port에 대해 엑세스를 허용해주니 연결이 되었다. 기본적으로 대부분의 방화벽 설정은 허용되지 않은 트래픽을 차단하는 `기본
왜 서버의 로그들을 수집해야하는가? 우리는 서버의 모든 요청, 에러, 예외상황에 따른 로그들을 기록하여 저장하려 한다. 로그는 서버에서 발생한 이벤트와 동작의 기록을 제공한다. 문제가 발생했을 때 로그를 분석하면 문제의 근본 원인을 파악하고 디버깅에 도움이 된다. 로그는 오류 메시지, 예외 상황, 경고 및 기타 중요한 정보를 포함하므로 문제 해결에 필수적인 자료로 활용된다. 지난번 글에서도 winston을 통한 서버의 로그들을 기록하는 방법을 배웠다. 이 데이터들을 이제 폴더에만 저장하지 않고 Elasticsearch에 저장하여 Kibana를 통해 확인하려 한다. Winston을 이용한 logger 로그 수집 flow <img src="https://velog.velcdn.com/images/gkqkehs7/post/c238cf42-b55c-459a-ba1e-ef
Docker network 도커 컨테이너는 서로 격리된 공간에서 실행되기 떄문에 다른 컨테이너와 통신이 불가능하다. 하지만 여러개의 컨테이너를 하나의 Docker 네크워크에 연결시키면 서로 통신이 가능해진다.
Docker로 프로젝트 빌드하기 Dockerfile을 위와 같이 작성해주고 Dockerfile에 정의해준대로 우리의 서버를 to1step이라는 이미지로 만들어준다. 이미지가 1.15GB를 차지하는 모습을 볼 수 있다. 프로젝트에 맞는 이미지 사용하기 node:16과 node:16-alpine은 둘 다 Docker Hub에서 제공하는 Node.js의 공식 이미지 중 두 가지 다른 타입이다. node:16 이미지는 Debian GNU/Linux에서 빌드되었으며, Node.js 16 버전과 함께 일부 기본 라이브러리와 도구를 제공한다. 이 이미지는 더 많은 기능과 유틸리티를 가지고 있어서 더 많은 용도로 사용된다. 반면에 node:
도커란? 도커는 애플리케이션을 컨테이너에 담아 배포하고 실행할 수 있도록 하는 오픈소스 프로젝트이다. 컨테이너는 가상화 기술 중 하나로, 운영체제 수준에서 격리된 환경에서 애플리케이션을 실행할 수 있도록 해준다. 도커는 컨테이너를 사용하여 애플리케이션을 개발, 배포, 실행하기 위한 다양한 도구를 제공한다. 이를 통해 애플리케이션을 보다 쉽고 빠르게 배포하고, 운영할 수 있다. 또한, 도커는 호스트 운영체제에 영향을 받지 않고 컨테이너 내부의 애플리케이션을 실행할 수 있어, 이식성이 뛰어나다는 장점도 가지고 있다. 도커는 또한 Docker Hub라는 공식 레지스트리를 제공하여, 다양한 애플리케이션 이미지를 공유하고, 이를 기반으로 더욱 쉽게 애플리케이션을 개발 및 배포할 수 있다. 이러한 기능들을 통해 도커는 현재 컨테이너 가상화 기술 중 가장 널리 사용되고 있는 기술 중 하나이다. 도커의 컨테이너와 가상머신의 차이점 가상머신