분류 전체보기 718

디버깅 과정에서 직관력이 방해되었던 경험

이번주 24년 10월 2주차 금요일, 약 18:00경에 디버깅을 했던 경험을 공유하고자 합니다.  A팀에서 운영배포를 하고 있었고 애플리케이션이 실행될 때 performance_shcema관련 에러가 발생했습니다. 다행히도 서비스에 영향은 없없지만 에러 메세지가 보였기 때문에 디버깅을 잠시 했었습니다. performance_shcema라는 키워드를 보자마자 저는 경험에 의존하여 datadog계정에 권한 부족이라고 바로 생각했습니다. 오류 메세지를 검색하지 않고 datadog라고 판단한거죠. 몇 분뒤 팀원이 오류 메세지를 검색한 후, 애플리케이션이 사용하는 라이브러리에서 문제가 있다는 것을 찾았습니다. 제 직관이 오히려 문제 해결을 방해했던 순간이었습니다. 몇 시간 뒤 퇴근을 하면서 저는 2년 차 때 스..

회고모음 2024.10.14

망분리 개선 주제로 팟캐스트 녹화를 마치며

2024년 8월에 금융위원회에서 망분리 개선 로드맵을 공개했습니다. 감사하게도 팀원 씬커님이 이 주제를 보고 팟캐스트를 진행하고 싶다고 하셔서 오프라인으로 팟캐스트를 진행했습니다.보도자료 링크: https://www.fsc.go.kr/no010101/82885?srchCtgry&curPage&srchKey&srchText&srchBeginDt&srchEndDt  쉬지 않고 약 2시간동안 녹음을 진행했습니다. 큰 주제만 정하고 대본 없이 진행을 했는데 정신차리고 보니 2시간이 지났습니다. 2시간을 녹음했지만 사실 진행은 매끄럽지 않았습니다. 이번 기회로 게스트가 답변을 잘 할 수 있도록 질문을 정리하는게 얼마나 중요한지 느끼게 되었습니다. 2시간 분량을 한번에 업로드하면 청취자가 듣기가 어렵다고 생각했습니..

회고모음 2024.10.13

hashicorp vault secret엔진을 v2로 업그레이드하는 방법

1. secret엔진 v2의 핵심 기능v2 핵심기능은 데이터 버전관리입니다. 그리고 데이터 버전관리가 되기 때문에 데이터 롤백기능도 지원합니다. v1에서는 버전관리 기능이 없어 데이터 롤백이 불가능합니다. 2. 버전 확인방법vault CLI또는 UI대시보드에서 secret엔진 버전을 확인할 수 있습닏. CLI에서는 secret list 명령어로 확인이 가능합니다. 명령어를 실행할 때 -detailed옵션을 설정해야 하며 options필드에 version이 표시됩니다.vault secrets list -detailed UI대시보드에서는 secret 엔진 정보에 버전이 표시됩니다.  3. 업그레이드 하는 방법3.1 데이터가 있는 경우데이터가 이미 있는 secret 엔진인 경우 버전 업그레이드 명령어인 ..

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을 설정하는 이유는 운영 안전성을 높이기 위해서라고 결론을 냈습니다. 그리고 이권수님과 팟캐스트에 이 주제로 이야기해보니 모니터링 대시보드에서 일..