전체 글
[TIL] Descheduler
TIL: Descheduler배경회사 Kubernetes 클러스터에 ECK Elasticsearch 배포 중 일부 데이터 노드가 리소스 부족으로 배포되지 못했다. Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 18m (x923 over 5h16m) default-scheduler 0/6 nodes are available: 1 node(s) didn't match Pod's node affinity/selec..
![[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 6장 : 키-값 저장소 설계](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FUAmeZ%2FbtsLDN1NWvT%2FAAAAAAAAAAAAAAAAAAAAAHDhkSRO5JXGrwwjEN-zc76yiQx0wwOdG55jKLw2s_aR%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D53a5XgS1%252BrCa%252BuwNHXJB%252BdckXHA%253D)
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 6장 : 키-값 저장소 설계
키-값 저장소(key-value store)는 비 관계형 데이터베이스이다. 이 저장소에 저장되는 값은 고유 식별자를 키로 가져야한다.키-값 쌍에서 키는 유일해야 하며 키에 매달린 값은 키를 통해서만 접근할 수 있다.아마존 다이나모memcachedRedis CAP 정리분산 시스템을 설계할 때는 CAP 정리(Consistency, Availability, Partition Tolerance theorem)를 이해하고 있어야 한다.CAP 정리는 데이터 일관성(Consistency), 가용성(Availability), 파티션 감내(Partition Tolerance)라는 세 가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다는 정리다.데이터 일관성 : 분산 시스템에 접속하는 모든 클라이언트는..
![[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 7장 : 분산 시스템을 위한 유일 ID 생성기 설계](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbvSoMQ%2FbtsKLhjbOUE%2FAAAAAAAAAAAAAAAAAAAAALSzCeqHMY70WuIcLsH1KXcvYICzoSQ3kgI4FbJapqyV%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DblZajyuUAYSz%252B5FFMEckomNpqLQ%253D)
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 7장 : 분산 시스템을 위한 유일 ID 생성기 설계
분산 환경에서 데이터베이스 서버 한 대로는 요구사항을 감당할 수 없을 뿐더러, 여러 데이터베이스 서버를 쓰는 경우에는 지연 시간을 낮추기가 힘들것이다.분산 시스템에서 유일성이 보장되는 ID를 만드는 방법은 아래와 같다.다중 마스터 복제(multi-master replication)데이터베이스의 auto_increment 기능을 활용한다.다음 ID의 값을 구할 때 1씩 증가시키는 것이 아니라, 데이터베이스 서버의 수(k)만큼 증가시킨다.단점여러 데이터 센터에 걸쳐 규모를 늘리기 어렵다.ID의 유일성은 보장되겠지만 그 값이 시간 흐름에 맞추어 커지도록 보장할 수는 없다.→ 로드밸런싱 로직에 따라 하나의 데이터베이스 서버에서 ID를 연속해서 생성하면, 이후 다른 서버에서 생성한 ID는 앞서 생성한 ID..

CAP 정리와 PACELC 정리
CAP 정리란? CAP 정리(브루어의 정리)는 아래 세 가지 조건을 모두 만족하는 분산 컴퓨터 시스템이 존재하지 않음을 증명한 정리이다. 일관성 (Consistency) 가용성 (Availability) 분할 내성 (Partition tolerance) 각 조건의 상세한 내용은 다음과 같다. 일관성 (Consistency) 모든 노드가 같은 순간에 같은 데이터를 볼 수 있어야 한다. 가용성 (Availability) 하나 이상의 노드가 작동 중지된 경우에도 데이터를 요청하는 클라이언트가 응답을 받을 수 있어야 한다. 분할 내성 (Partition tolerance) 메시지 전달이 실패하는 시스템 일부가 망가져도 시스템이 계속 동작해야한다. 노드 간의 통신 장애가 발생하더라도 동작해야한다. = 두 개의 노..

2022년 🐟🏃🏻♂️(회고라는 뜻ㅎ)
다사다난했던 2022년도 오늘을 마지막으로 끝난다. 작년만 하더라도 올해는 그냥저냥 지나가는 한 해가 될 줄 알았는데, 이렇게 많은 일들이 벌어질 지 몰랐다. 나름의 위기와 역경이 많이 있었고 잘 극복해냈던 해라고 말 할 수 있을 것 같다. 오늘은 2022년의 마지막을 맞이하며 올 한해를 되돌아보는 회고를 해보려고 한다. 이전까지는 자주 듣는 플레이리스트를 첨부했지만, 올해는 유튜브에서 봤던 가장 인상깊었던 영상을 첨부하려고한다. 나를 온 세상이 억까할때, 어떻게 극복을 해야하는지에 대해 우왁굳이라는 유튜버가 조언을 해주는 영상인데, 내용이 상당히 인상적이어서 개인적으로 유튜브 재생목록에 추가해둔 영상이다. 근데 중요한 거는 그런거잖아요. 그 노부부는 당나귀랑 같이 집에 무사히 잘 가는게 목표인거에요. ..
![[Jenkins] CentOS6에서 nvm 사용 시 node-error가 발생할 때](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FAHcZ1%2FbtrUbrWNgvV%2FAAAAAAAAAAAAAAAAAAAAANWLoQjIShd07gosozfe_adGxWZLsnsI5AvJu1elBsT7%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D0ioh5kKp0S9bAQzH2iHlvzZsvcI%253D)
[Jenkins] CentOS6에서 nvm 사용 시 node-error가 발생할 때
많은 서비스에서 CI/CD(Continuous Integration/Continuous Delivery, 지속적 통합/지속적 제공) 도구로 Jenkins를 사용합니다. 그중에서도 npm을 통해 의존성 패키지를 관리하는 프로젝트를 빌드하고 배포하는 경우가 있는데요, NVM(Node Version Manager)이라는 도구를 사용해 각 파이프라인별로 Node.js의 버전을 다르게 사용할 수 있습니다. 이번 포스팅에서는 그동안 잘 되고 있던 파이프라인에서 갑자기 발생한 node-error 오류와 그 오류를 해결하는 과정을 공유하고자 합니다. (문제가 발생하기 전 마지막 빌드가 반년 전인건 비밀...) 환경 🖥️ OS : CentOS 6.8 Jenkins 2.263.3 nvm-wrapper 0.1.7 npm을 ..