| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- elasticsearch
- 엘라스틱서치
- fork()
- Kubernetes
- 코테
- Pub/Sub
- tech
- 운영체제
- 스프링빈
- k8s
- Observability
- 대규모시스템
- SRE
- 쿠버네티스
- Network
- 인프라
- Data Engineering
- 개발자
- 개발
- 분산시스템
- Monitoring
- 시스템호출
- AWS
- devsecops
- etcd
- it
- 데이터엔지니어
- Kafka
- 커널
- OS
- Today
- Total
목록전체 글 (35)
모래성 말고 철옹성
Amazon EKS를 사용하다 보면 재미있는 사실을 발견하게 된다. 클러스터를 생성할 때 우리는 VPC와 서브넷을 지정하고 생성하면 EC2 목록에 Data Plane 노드가 생기는 Master인 Control Plane 노드는 생기지 않는다.궁금하여 찾아보니 EKS에서 Control Plane 노드는 AWS가 관리하는 별도의 VPC에 존재하고 있기 떄문이다. 그렇다면 우리 VPC에 떠 있는 Data Plane노드들과 이들은 어떻게 통신하고, 문제가 생겼을 때 보이지도 않는 Control Plane을 어떻게 디버깅해야 할까?Cross-Account ENI(X-ENI) - Control Plane과 Data Plane의 통신EKS Control Plane과 사용자의 VPC 사이에는 Cross-Account ..
AWS Elastic Load Balancer(ELB) 란?ELB는 하나 이상의 AZ(가용 영역)에서 EC2 인스턴스, 컨테이너, IP 주소와 같은 여러 대상에 걸쳐 들어오는 애플리케이션 트래픽을 자동으로 분산해주는 "완전 관리형 로드 밸런싱 서비스"이다.ELB를 왜 사용할까?ELB를 사용하게 되면 단순히 트래픽을 전달하고 나누는 기능만이 아닌 아래와 같은 요소들을 만족시킬 수 있다.고가용성(HA): 특정 서버가 고장 나도 정상적인 다른 서버로 트래픽을 보내 가용성을 보장Health Check: 서버가 살아있는지 주기적으로 체크하여 상태 보장Auto Scaling: 트래픽이 급증하는 상황에서 서버 Scale in/out에 대응하여 트래픽에 유연하게 대처AWS ELB의 종류AWS ELB 종류에는 ALB, ..
최근 한국 뿐만 아니라 전세계적으로 보안 사건, 사고들이 많아지면서 서비스를 운영하는데 고민이 많아지는 것 같다. 산더미 처럼 쌓여가는 레거시 시스템들을 보안패치 하는 것은 기업들에게 큰 고민거리일 듯 하다. 이런 것들을 어떻게 자동화할 수 있을까? 하며 찾아보다 새로운 개념을 접하게 되어 정리해봤다.Policy-as-Code 란?Policy-as-code는 정책 관리 방식 중 하나로, 정책을 코드로 정의하고, 업데이트하며, 공유하고, 강제할 수 있게 하는 접근법이다. 수동 프로세스에 의존해 정책을 관리하는 대신 코드 기반 자동화를 활용함으로써, 팀은 더 빠르게 움직일 수 있고 사람의 실수로 인한 오류 가능성을 줄일 수 있다.또한 보안과 같은 영역에서 Policy-as-code 접근법을 사용하면 개발자와..
"우리 시스템이 얼마나 에러가 나도 되나? 의 지표 Error Budget"Error Budget 이란?Error Budget(오류 예산)은 Google에서 개발한 SRE 방법론의 핵심개념이다. 서비스의 안정성과 새로운 기능 개발 속도간의 균형을 정량적으로 관리하는 개념으로 보면 된다. IT업계에 있는 분들이라면 다 아시겠지만 100% 완벽한 소프트웨어는 불가능하다. 기술의 혁신을 가져가자니 시스템의 안정성이 떨어지고 안정성만 따지자니 기술 부채는 늘어간다. 이런 딜레마를 해결하는 방법 중에 하나가 Error Budget인 것 같다.Error Budget 계산Error Budget은 보통 아래 식과 같이 계산된다.Error budget = [100% - availability target] 조직에 서비..
분산 시스템에서 여로 노드가 마치 하나의 물리 노드처럼 일관된 상태를 유지하는 것은 어렵다. 네트워크 장애, 노드 실패, 패킷 손실 등등 다양한 문제들이 발생할 수 있고, 민감한 시스템의 경우 이는 큰 장애로 이어질 수도 있다. 이러한 문제를 해결하기 위해 등장한 개념이 합의 알고리즘(Consensus Algorithm) 이다. 그 중에서도 Raft 알고리즘이 가장 대표적이어 Raft를 한번 톺아보기로 했다.Raft의 탄생 배경Raft 이전의 대표적인 합의 알고리즘은 Paxos였다. 하지만 Paxos 알고리즘은 구현의 난이도가 높다는 단점이 있었다. 2013년 스탠포드에서 "Understandability"를 최 우선으로 하는 Raft 알고리즘을 개발했다.Raft의 핵심 개념서버 상태 (Server St..
DP유형의 알고리즘 문제를 풀다 모범 답안으로 @lru_cache 데코레이터를 쓴 파이썬 함수가 있어 궁금해서 찾아봤다. 라떼는 이런거 없었는데....LRU Cache란 무엇인가?LRU(Least Recently Used) Cache는 가장 최근에 사용되지 않은 항목을 제거하는 캐싱 전략이다. 메모리가 제한된 환경에서 효율적인 데이터 관리를 위해 사용되며, 프로그램의 성능을 크게 향상시킬 수 있다. LRU Cache의 핵심 개념캐시 히트(Cache Hit): 요청된 데이터가 캐시에 있는 경우캐시 미스(Cache Miss): 요청된 데이터가 캐시에 없어서 새로 계산해야 하는 경우용량 제한: 메모리 사용량 제어를 위한 최대 항목 수 설정교체 정책: 캐시가 가득 찼을 때 어떤 항목을 제거할지 결정Python ..
들어가며회사에서 아주 오래된 On-premise서버의 OS가 EoS가 되며, 신규 서버로 Clean-install을 진행하며 tomcat을 처음부터 다시 설치해야하는 요건이 생겼다.이중화 구조여서 Clustering을 해야했고, 직면한 문제가 있어 트러블슈팅한 기록과 알게된 개념을 남긴다.문제 발생기존 Tomcat 을 기동하니 아래와 같은 오류가 발생했다.Unable to join multicast group, make sure your system has multicasting enabled.Unable to start cluster.알아보니 내가 맡게된 서버의 tomcat은 Multicast 방식으로 clustering 하고 있었다. 보통 내 구축 경험으로는 Unicast로 1:1 통신을 통한 clu..
개요회사에서 Elasticsearch, Tomcat 등의 클러스터를 구축하고, 혼자 Kubernetes를 공부해보다가 "물리적으로 분산된 서버들이 어떻게 하나의 서버처럼 동작할 수 있을까?" 라는 궁금증이 생겼다. 누군가도 나와 같은 생각을 했을 것 같아서 분산 시스템을 공부해보고, 실제로 분산 시스템을 구축해보는 사이드 프로젝트를 해 공유해보기로 했다.목차1편. 분산 합의란 무엇인가? - Raft의 기본 개념 (TBD)2편. 클러스터의 심장, 리더 선출 구현기 (TBD)3편. 데이터 복제와 최종 일관성 보장하기 (TBD)
