분류 전체보기 769

Hashicorp vault 소개

1. Hashicorp vault란?HashiCorp vault는 데이터를 안전하게 저장하는 도구입니다. vault단어의 의미는 금고라는 것을 알면 hashiCorp vault 이미지를 쉽게 연상할 수 있습니다.  vault는 스토리지에 데이터를 저장하는데, 모든 데이터는 암호화되어 있습니다. 따라서 데이터가 유출되더라도 무슨 데이터인지 확인이 불가능합니다. 암호화된 데이터는 vault만 확인할 수 있습니다. 2. vault는 언제 사용할까?vault는 데이터를 암호화해서 저장해야하고 다른 애플리케이션과 호환이 가능해야 하는 요구사항에 적합합니다. 인터넷을 쓸 수 있는 환경이라면 AWS Secrests Manager 등의 후보가 있지만, 인터넷이 되지 않는 환경이면 vault가 유력한 후보입니다. vau..

쿠버네티스 statefulset OnDelete 전략

OnDelete배포전략이란?spec.updateStrategy가 OnDelete로 설정되어 있으면 onDelete 배포전략을 사용한다고 말합니다.apiVersion: apps/v1kind: StatefulSetmetadata: name: ondeletespec: replicas: 3 updateStrategy: type: OnDelete onDelete 전략은 pod가 삭제될 때만 업데이트된 내용이 적용되는 방식입니다. 자동으로 pod가 업데이트되는 것을 방지하고, 사용자가 직접 pod를 하나씩 수동으로 업데이트할 때 사용합니다. 특히 pod 변경 사항이 큰 영향을 미칠 때 유용합니다. 언제 사용할까?onDelete 전략은 스토리지에 영향을 주는 애플리케이션에서 사용됩니다. StatefulSe..

쿠버네티스 cpu limit을 설정해야할까? 안해야할까?

가시다님 스터디에서 컨테이너 원리를 다루는 기회가 생겨, kubernetes resources.requet.cpu와 limit.cpu를 공부했습니다.  request.cpu는 cgroup weight(v1에서는 cpu share)로 변경되어, 컨테이너가 cpu시간을 상대적으로 사용한다는 것으로 이해했습니다. 그리고 limit.cpu는 컨테이너의 cpu시간을 제한한는 설정입니다. 공부를 마치고 문득 궁금한점이 생겼습니다. "request.cpu가 cpu시간을 가중치로 사용하면 limit은 설정안해도 될까?" 고민을 많이하고 제 나름대로 결론을 냈습니다. limit을 설정하는 이유는 운영 안전성을 높이기 위해서라고 결론을 냈습니다. 그리고 이권수님과 팟캐스트에 이 주제로 이야기해보니 모니터링 대시보드에서 일..

아키텍처 이야기 - 애플리케이션 개수를 증가시키면 요청 처리속도가 빨라질까?

이 글은 이권수님과 팟캐트스를 진행하면서 나눴던 이야기를 적었습니다.  컨테이너의 장점은 애플리케이션 수를 증가시키고 감소하는 과정이 매우 쉽습니다. 서버 cpu, 메모리만 충분하다면 컨테이너 개수만 늘리면 애플리케이션이 쉽게 증가하고 감소하기 때문입니다. 그러면, 애플리케이션 처리속도를 높이기 위해 단순히 애플리케이션 개수를 늘리면 될까요? 정답은 아닙니다. 인스턴스 개수를 늘려도 처리속도 한계가 존재합니다. 1. 개발로직에 처리속도 이슈가 있다면 처리속도가 유의미하게 늘어나지 않는다.애플리케이션 처리속도가 locking등 개발로직에 있다면 애플리케이션 개수를 늘려도 처리속도는 늘어나지 않습니다. 이런 상황은 개발로직을 수정해야 합니다. 2. DB connection 등 주변환경 제약이 있다면 정..

토스 slash2024를 다녀오고 기억에 남는 말

운이 좋게 2024년 토스 컨퍼런스에 다녀왔습니다. 토스 컨퍼런스는 토스가 어떤 문제를 만나 어떻게 해결했는지 설명했었습니다. 발표자가 이야기 한 것 중에 기억에 남는 말이 있었습니다. 인터널제품팀이 토스에서 왜 노코드 플랫폼을 만들었는지 설명하는 과정에서 말했던 이야기가 기억에 남습니다. "인터널제품팀은 토스내부에서 쓰는 제품을 만드는 팀입니다. 회사내 많은 요청들이 있고 이 요청들을 다 처리하려면 어쩔수 없이 제품 퀄리티가 떨어졌습니다. 이 것을  어떻게 해결할 수 있을까 팀 고민하다가 노코드 플랫폼을 만들게 되었습니다." 최근 제가 짧은 시간 안에 겹쳐지 않는 영역의 많은 일을 하다보니 저 말이 굉장히 공감되었습니다. 쿠버네티스, 네트워크, aws, DB, 트러블 슈팅, 아키텍처, 솔루션 사용, ..

회고모음 2024.09.28

리눅스 컨테이너는 cpu 자원이 어떻게 제어될까?

이 글은 리눅스가 어떻게 컨테이너 cpu를 제어하는지 설명합니다.  1. 컨테이너가 실행된다는 의미컨테이너가 실행된다는 것은 무슨 의미일까요? 컨테이너는 운영체제가 관리하는 프로세스이기 때문에 프로세스가 실행된다는 의미와 같습니다. 결국 컨테이너가 실행된다는 것은 프로세스가 실행된다는 의미와 같습니다. 프로세스가 실행된다는 의미는 CPU가 시간을 할애하여 프로세스의 연산을 수행하는 것입니다. 운영체제는 CPU가 여러 프로세스를 효율적으로 연산할 수 있도록 프로세스를 스케쥴링 합니다. 스케쥴링은 알고리즘에 따라 동작이 다릅니다. 2. 리눅스가 컨테이너 CPU자원 할당을 제어하는 원리리눅스에서는 모든 프로세스가 최대한 공정하게 CPU를 할당받을 수 있도록 CFS(Completely Fair Scheduler..