| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- Linux
- 컨텍스트 엔지니어링
- Kubernetes
- 정보처리기사 실기 기출문제
- SRE
- CloudWatch
- minikube
- CKA 기출문제
- CKA
- 공부
- aws
- AI
- MySQL
- kotlin
- AWS EKS
- go
- kotlin coroutine
- Spring
- tucker의 go 언어 프로그래밍
- 오블완
- Pinpoint
- 티스토리챌린지
- 바이브코딩
- Java
- PETERICA
- 기록으로 실력을 쌓자
- golang
- kotlin querydsl
- APM
- 코틀린 코루틴의 정석
- Today
- Total
목록DevOps (177)
피터의 개발이야기
[SRE] SRE(Site Reliability Engineering) 목차 ㅁ 들어가며 내가 현재 속해 있는 팀인 카카오 i 플랫폼의 Gateway는 방대한 MSA(Microservices Architecture) 환경에서 트래픽을 집약하고, 서비스 간 연결의 허브 역할을 한다. 이런 복잡한 구조에서 서비스 안정성을 확보하고, 효율적인 운영을 위해 SRE(Site Reliability Engineering) 개념의 도입은 필수적입니다. 본 글에서는 SRE의 핵심 개념과, Gateway 서비스에 적합한 SRE 지표 수립 방법을 정리합니다.ㅁ SRE란 무엇인가?SRE는 구글에서 시작된 운영 및 개발 방법론으로, 소프트웨어 엔지니어링 원칙과 자동화를 통해 대규모 시스템의 신뢰성과 안정성을 확보하는 것을 목..
[SRE] SRE(Site Reliability Engineering) 목차 ㅁ 들어가며 SRE는 시스템의 신뢰성(Availability)을 수치로 측정하고 유지하기 위해 SLI(Service Level Indicator)를 정의하고 관리한다.이 글에서는 제가 직접 경험한 CloudWatch 및 Grafana 기반의 모니터링 환경 구축과, 그를 통해 얻은 인사이트와 문제 해결 사례를 공유하고자 한다. 현실적인 운영 상황과 개선 과정을 중심으로, SRE의 시선에서 SLI를 어떻게 "정의하고, 모니터링하고, 개선"했는지를 설명하고자 한다. ㅁ SLI는 무엇이 기준이 되어야 하는가?SRE로 일하면서 가장 먼저 고민한 것은 "우리는 무엇을 측정해야 하는가?"였다.처음에는 AWS CloudWatch에 내장된 ..
[SRE] SRE(Site Reliability Engineering) 목차ㅁ 들어가며ㅇ SRE란 무엇인가? SRE는 단순한 ‘운영’이 아니다에서 서비스의 신뢰성(Reliability)을 코드와 시스템적으로 보장하는 엔지니어링 문화에 대해서 알아보았다. 이번 글에서는 SRE의 판단 기준이자 방향성이며, 실질적인 운영 목표인 SLA, SLO, SLI에 대해서 정리하였다. ㅁ 의료 바이탈 체크와 SRE의 SLA, SLO, SLI드라마나 영화를 보면 응급환자를 케어하는 의사가 먼저 활력징후(vital signs) 리스트를 체크하는 장면을 보곤 한다. 활력징후란, 온도, 맥박, 호흡, 혈압의 수치를 측정한 데이터로, 사람의 몸상태를 수치로 나타낸 것이다. 정확한 진단을 내리기 위해서는 정밀한 검사를 통해 얻은 ..
[SRE] SRE(Site Reliability Engineering) 목차 ㅁ 들어가며“SRE가 정확히 뭐지?”Site Reliability Engineering, 줄여서 SRE는 단순한 운영 역할을 넘어서, 서비스의 신뢰성(Reliability)을 코드와 시스템적으로 보장하는 엔지니어링 문화이다. 구글에서 시작된 개념이지만, 오늘날 대부분의 대규모 플랫폼 서비스 기업들이 SRE 조직을 두고 안정성과 효율성을 동시에 추구하고 있다. ㅁ SRE는 단순한 ‘운영’이 아니다 과거에는 운영(Operation)과 개발(Development)이 분리되어 있었다. 개발자는 코드를 만들고, 운영자는 그것을 배포하고 문제를 해결하는 구조였다. 하지만 이 구조는 다음과 같은 문제를 일으켰다.개발자는 안정성보다 기능에 ..
ㅁ 들어가며 지난 글, [Nginx] NGINX Rate Limiting & 동적 IP 차단 가이드에서 무분별한 요청에 대해 속도제한을 하였다. 만료된 ts를 계속 호출하는 문제를 해결하기 위해서는 기본 ts 파일을 넘기면 이후 무한 반복문제가 해결 되었다. 이번 글에서는 NGINX를 사용하는 웹 서버에서 특정 파일이 존재하지 않을 때 기본 파일을 전달하는 방법에 대해 정리하였다. ㅁ 문제 상황 NGINX에서 특정 URL로 요청이 들어왔을 때, 해당 파일이 존재하지 않으면 404 오류가 발생하였다. 이런 경우 [GO] Too many open files 에러 트러블슈팅 에 정리한 에러가 발생하기도 하였다. 이를 예방하고 안정적인 서비스를 위해 대책이 필요했다. ㅁ 기본 설정 구조NGINX의 try_fi..
ㅁ 들어가며ㅇ [GO] Too many open files 에러 트러블슈팅에서 이미 만료된 ts를 무한으로 요청하는 문제점을 발견하였다. ㅇ [Nginx] NGINX에서 정적 파일 캐시 설정하는 방법을 통해 백엔드 부하를 감소하기 위해 캐시를 적용한 상태이다. ㅇ 이번 글에서는 NGINX에서 특정 URL 패턴의 과도한 접근을 방어하기 위한 Rate Limiting 설정 방법을 정리해 보았다. ㅁ Rate Limiting 설정ㅇ NGINX의 Leaky Bucket 알고리즘 기반 요청 제한 기능을 활용해 서버 과부하를 방지한다.ㅇ NGINX의 limit_req 디렉티브를 사용하여 특정 클라이언트가 일정 시간 내에 보낼 수 있는 요청 수를 제한할 수 있다.ㅇ 이러한 속도 제한은 보안 목적으로 무차별 대입 공격..
ㅁ 들어가며 개발 PR을 검토하는 중 타임아웃에 대해 공부하게 되었다. 타임아웃 처리는 분산 시스템의 안정성을 보장하는 핵심 기술이다. 이 글에서는 Node.js 환경에서 발생하는 타임아웃에는 계층이 있고 거기에 맞는 옵션을 선택해야 한다. ㅁ 시스템 레벨 타임아웃 vs 애플리케이션 레벨 타임아웃ㅇ 시스템 레벨 - OS/네트워크 스택의 기본 타임아웃 - 예로 TCP 연결에서 3-Way Handshake 구간(SYN-ACK) 연결 시간이다.ㅇ 애플리케이션 레벨 - 연결이 성립되었고, 이후 서버의 응답을 대기하는 시간이다. - setTimeout(), --max-time 옵션 등 코드 기반 제어된다. ㅁ 타임아웃 계층계층기술예시L7HTTP Keep-Aliveserver.keepAliveTimeout..
ㅁ 들어가며 회사에서 보안검수를 수행하는데, 본 프로그램에 대한 사항보다 nginx에 대한 점검사항이 많았다. Nginx의 보안 강화를 위한 기본적인 설정에 대해서 잘 모르고 있었다. 보안은 웹 서버를 안전하게 운영하기 위해 필수적이다. 이 글에서는 Nginx 보안을 강화하기 위한 주요 설정 사항들을 정리해 보았다. ㅁ 보안 체크리스트ㅇ Nginx 버전 정보 숨기기 (server_tokens off;)ㅇ 보안 헤더 추가 (X-Frame-Options, XSS Protection 등)ㅇ 불필요한 HTTP 메서드 차단 (limit_except GET POST)ㅇ 디렉토리 리스팅 비활성화 (autoindex off;)ㅇ 파일 업로드 크기 제한 (client_max_body_size 10M;)ㅇ 민감한 파일 접..
ㅁ 관련 글ㅇ [Nginx] Nginx의 기본 이해와 주요 기능 ㅁ 들어가며 Nginx의 가상 호스팅 설정 방법에 대해 정리하였다. 가상 호스팅은 하나의 서버에서 여러 웹사이트를 운영할 수 있게 해준다. 이 글에서는 가상 호스팅의 개념부터 실제 설정 방법, 그리고 리버스 프록시 설정 방법을 정리하였다. ㅁ 가상 호스팅 개념 이해하기 가상 호스팅(Virtual Hosting)은 하나의 웹 서버에서 여러 개의 독립적인 웹사이트를 호스팅하는 방법이다. 각 웹사이트는 고유한 도메인 이름을 가지며, 서로 독립적으로 운영된다. ㅇ 주요 특징하나의 IP 주소로 여러 도메인 서비스 가능각 웹사이트마다 독립적인 설정 가능서버 리소스 효율적 사용ㅇ 가상 호스팅의 유형이름 기반 가상 호스팅: 도메인 이름으로 웹사이트 구..
ㅁ 들어가며PR을 진행하는 과정 중 의견으로 Nginx 설정의 모듈화에 대해서 의견이 있었다. 이를 해결하는 과정에서 Nginx 서버 설정을 체계적으로 관리하고 유지보수성을 높이기 위해 외부 설정 파일을 분리 방법을 알게 되었다. 복잡한 설정을 모듈화하여 가독성과 재사용성을 향상 시킨다. ㅁ 왜 외부 파일로 분리해야 할까?유지보수 편의성: 특정 설정만 별도로 수정 가능재사용성: 여러 서버 블록에서 동일한 설정 재활용가독성: 메인 설정 파일(nginx.conf)이 간결해짐협업 효율성: 팀원들이 설정 내용을 쉽게 파악 가능실전 적용 방법 ㅁ 기본 구조 이해http { include /etc/nginx/conf.d/*.conf; # 외부 설정 파일 포함 include /etc/nginx/snip..