AWS에서의 중앙 집중식 로깅 시스템 구축

클라우드 시스템은 위임이다. 컴퓨팅, 메모리, 디스크와 같은 하드웨어 외에도 로드밸런서, 메시지큐, 로깅, 모니터링, 배포, 확장, 데이터 수집 등을 IaaS, PaaS, SaaS 형태로 비즈니스로직으로 부터 분리하여 위임하는 시스템이다. 따라서 개발조직은 다른 것들에 신경쓰지 않고 서비스 개발에만 집중 할 수 있다. 클라우드에 대한 다양한 관점이 있겠는데...

Golang Middleware

미들웨어(Middleware)는 소프트웨어 구성요소의 입력과 출력 사이에서 데이터를 처리하는 시스템이다. 따라서 개발자는 응용 프로그램의 목적에만 집중 할 수 있다. 웹 서버의 경우에는 데이터베이스 액세스, 보안, 인증, 로깅과 같은 작업을 처리하기 위해서 사용한다. 이들 기능은 모든 서비스에 공통적으로 사용되기 마련이다. 이런 작업들을 미들웨어에서 대신 ...

Opsgenie를 이용한 AWS 인프라 이벤트 관리 시스템 구성

나는 인터넷 서비스의 품질을 확보하기 위한 가장 중요한 활동을 아래와 같이 정의 한다. 문서화 테스트가 포함된 모니터링, 관제 시스템 및 장애(인시던트)관리 프로세스 모니터링 결과는 결국 알람과 인시던트의 형태로 출력된다. 알람과 인시던트는 업무처리 시스템에 따라서 처리를 해야 한다 대략적인 프로세스는 아래와 같을 것이다. 이벤트, 경고(alert),...

CloudWatch

CloudWatch는 1. AWS 클라우드 리소스와 1. AWS에서 실행되는 애플리케이션을 위한 모니터링 서비스다. 나는 특히 2번에 관심이 많다. 애플리케이션 로그는 보통 ELK 스택을 이용하기 마련이다. ELK는 매우 훌륭한 툴이긴 한데, 인프라 구성이 다양해 지면서 통합관리하는데 어려움을 느끼고 있다. 예컨데 EC2 기반으로만 한다면, 인스턴스 실...

웹 애플리케이션에서의 로깅

웹 애플리케이션 서버는 웹 엑세스로그와 애플리케이션 로그다. 웹 엑세스 로그는 NginX와 Apache 웹 서버가 남기는 , 메서드(GET, POST, PUT, DELETE), HTTP Status Code, 접근 시간, 클라이언트 애플리케이션 정보등을 포함한다. Combined 로그 형식을 널리 사용한다. 127.0.0.1 - frank (Win98; I...

logrotate를 이용한 로그 파일 관리

백앤드 애플리케이션의 대부분이 REST 방식의 웹 애플리케이션이다. 애플리케이션들은 모두 아파치 웹 서버 방식의 엑세스로그를 남긴다. 일반유저들이 사용하는 API들이다 보니 상당한 크기의 로그파일들이 만들어진다. 일주일만 그냥 둬도 파일의 크기가 수 기가바이트를 넘어갈 판이다. 모든 로그 파일들은 ELK로 어차피 색인이 되기 때문에, 굳이 시스템에 남겨두거...