목록전체 글 (287)
빙응의 공부 블로그

📝서론 분산 시스템은 전세계의 구조를 바꿨습니다. 웹 브라우저가 지구 상 어딘가에 있는 웹 서버에 접속하면 클라이언트/서버 분산 시스템이라는 구조에 한 구성원이 되는 것이다. 분산 시스템을 개발할 때 몇 가지 새로운 도전거리가 생겨난다. 우리는 그 중 "실패"에 관해서 알아보자. 핵심 질문 : 구성 요소가 실패하더라도 동작하는 시스템을 어떻게 만들까? 분산 시스템의 핵심 사안은 여러 개가 존재한다.실패와 고장의 극복시스템 성능보안📝통신의 기본최신 네트워킹의 핵심 가정은 통신은 신뢰할 수 없다는 것이다. 이것에는 여러개의 이유가 있다. 패킷 손실네트워크는 패킷 단위로 데이터를 전송하는데, 중간 유실이 가능하다.지연, 재정렬, 중복패킷이 전송 순서와 다르게 도착하거나, 중복되거나, 지연될 수 있다.중간..

📝서론 저번 포스팅에서 우리는 크래시 방지를 위해서 저널링을 하였다.시간이 지나 컴퓨터의 성능이 좋아지며 저널링에서 더 나아가 로그 기반 파일 시스템(LFS)이 등장하였다.해당 파일 시스템 설계 배경은 다음과 같다.메모리 크기 증가대부분의 읽기는 메모리 캐시에서 처리됨 → 디스크는 주로 쓰기 위주 I/O 발생순차 I/O 성능 향상 > 랜덤 I/O디스크는 순차적으로 쓸 때 훨씬 빠름 → 랜덤 I/O는 탐색/회전 지연으로 매우 느림기존 파일 시스템의 비효율성FFS 같은 기존 파일 시스템은 쓰기마다 여러 I/O → 블럭 그룹 최적화로도 한계RAID 환경의 쓰기 병목RAID는 작은 쓰기(small write)에서 읽기-수정-쓰기 반복 필요 → 기존 FS들은 고려하지 않음 이상적인 파일 시스템은 쓰기 성능에 초..

📝서론 이번 장에서는 파일 시스템이 자료 구조를 안전하게 저장하는 방법에 대해 알아보자 파일 시스템이 직면한 가장 큰 어려움 중 하나는 전력 손실이나 시스템 크래시와 같은 장애 상황 이다.이러한 상황에서도 디스크의 데이터가 어떻게 안전하게 갱신되는가는 중요한 문제다. 이 과정을 살펴보면서, 우리는 데이터베이스에서 사용하는 트랜잭션 처리 원리와 유사한 개념을 파일 시스템에서도 체험할 수 있을 것이다. 📝크래시 시나리오데이터 블록만 디스크에 기록됨이 경우 데이터는 디스크에 있지만 아이노드가 없고 할당 여부를 나타내는 비트맵도 없다.파일 시스템에서 접근이 불가능해 크래시 일관성에서 문제가 없다.갱신된 아이노드만 디스크에 기록됨데이터블록이 기록되지 않아서, 의미없는 데이터를 얻게된다.일관성 손상이라는 문..

📝배경저번 포스팅에서 Prometheus와 Grafana를 이용해 시스템 모니터링 시각화를 진행했었죠. 이번 시간에는 여기서 한 발 더 나아가, Grafana에서 애플리케이션 로그 정보까지 효과적으로 시각화하는 방법을 알아보겠습니다. 이 포스팅은 아래 두 개의 선행 포스팅을 완료하신 분들을 대상으로 합니다. 만약 아직 진행하지 않으셨다면, 먼저 읽어보시기를 강력히 추천드립니다.[+/KM]Logback으로 EC2 환경 로그 관리하기 [+/KM]Logback으로 EC2 환경 로그 관리하기📝배경 이번 게시글에서는 Spring Boot에서 Logback을 활용해 EC2 서버에서 로그를 환경별로 효율적으로 관리하는 방법에 대해 설명합니다.특히, 운영 환경에서 로그 가독성 문제를 어떻게 해결했는quddnd.ti..

📝배경저번 포스팅에서는 Logback을 이용한 로그 저장을 다뤘습니다. 덕분에 애플리케이션 내부에서 발생하는 이벤트들을 효율적으로 기록할 수 있게 되었죠. 하지만 로그를 열심히 쌓는 와중에 한 가지 불편한 점이 생겼습니다. 바로 제가 서비스를 올린 EC2 인스턴스의 상태와 현재 사용률을 파악하기 힘들다는 점이었습니다.인스턴스의 CPU 사용량, 메모리 점유율, 디스크 I/O 같은 핵심 지표들을 실시간으로 파악하기 어려웠습니다. 결국 인스턴스에 문제가 생겨도 "왜 느려졌지?", "혹시 서버가 다운되지는 않을까?" 하는 불안감 속에서 CloudWatch 기본 지표만으로는 답답함을 느꼈습니다. 그렇기에 저는 이 불편함을 개선해야 한다는 필요성을 절감했고, 다양한 모니터링 툴들을 찾아 나서게 되었습니다. 📝..

📝배경 이번 게시글에서는 Spring Boot에서 Logback을 활용해 EC2 서버에서 로그를 환경별로 효율적으로 관리하는 방법에 대해 설명합니다.특히, 운영 환경에서 로그 가독성 문제를 어떻게 해결했는지 실제 프로젝트 기반 경험을 바탕으로 공유드리려 합니다. 로컬 환경에서는 테스트 진행 시에 로그를 바로바로 확인이 가능해서 문제점이 드러나지 않았지만,EC2에 서버를 배포하면서 로그를 직접 EC2 서버를 연결하여 확인해야했습니다. EC2 서버의 로그는 가독성이 떨어졌고, 이를 반드시 개선해야겠다고 생각했습니다. 로컬 환경에서는 콘솔만 쳐다보면 되지만, EC2 서버에 배포된 뒤에는 SSH로 직접 접속해 로그를 뒤져야 하는 불편함이 있었습니다. 특히 로그가 단일 파일에 뒤섞여 있어 필요한 정보를 찾는 데..