개요 - 쿠버네티스 리소스를 직접 다룰 때의 불편함운영 중인 쿠버네티스 클러스터 안에는 수많은 리소스가 존재한다. Pod와 이를 관리하는 Deployment, 클러스터 내/외부와의 통신을 위한 Service, 변수 관리를 위한 Configmap 등이 이에 해당한다.이러한 쿠버네티스 리소스들은 보통 리소스별로 별도의 yaml 파일에 명시하고 관리하게 되며, 아래와 같은 명령어를 통해 클러스터에 배포한다.kubectl apply -f {resource name}언뜻 보면 그렇게 복잡한 작업이 아니어보일 수 있지만, 매번 동일한 클러스터를 구성하기 위해 수십 개의 리소스에 대해 이 명령을 실행하는 것은 꽤나 귀찮은 일이 될 수 있다.또한, 리소스의 변경 주기가 개별적으로 동작하니 변경 관리를 하기 어렵다. 언..
개요 - 민감 정보를 클러스터에 저장하려면?애플리케이션을 운영하다 보면 데이터베이스 접속 정보, API 키, 인증서 등과 같은 민감 정보를 안전하게 관리해야 한다. Kubernetes에서는 ConfigMap, Secret과 같은 환경변수 관리 목적의 리소스를 제공하지만, 이러한 방법들을 통해 민감 정보를 다루는 것은 보안적인 측면에서 명백히 한계를 갖고 있다.본 글에서는 아래와 같이 민감 정보가 전달되는 과정에서 어떻게 민감 정보를 다루는 것이 더 좋을지 각 단계별 데이터의 형태를 기준으로 살펴보고자 한다.Local Machine - 개발자가 작업하는 로컬 머신External Storage - 작업물이 올라가는 저장소. GitHub과 같은 서비스Kubernetes Cluster - 애플리케이션(Pod)이..
개요클라이언트와 서버 간 통신 과정에서, 어떠한 이유로든 둘 중 하나가 제 기능을 할 수 없게 되는 일이 종종 발생한다. 그러나 한 쪽의 무응답으로 인해 다른 한 쪽이 영영 응답을 대기할 수는 없는 노릇이다.이러한 난감한 상황을 해결하기 위해 존재하는 설정이 바로 타임아웃(Timeout)이다. 이 타임아웃 값을 잘 설정하면 클라이언트와 서버가 불필요하게 시간과 리소스를 낭비하는 것을 상당히 개선할 수 있다.오늘은 웹 서비스를 제공하기 위한 TCP/HTTP 통신 과정에서 주로 발생하는 타임아웃에는 어떤 것들이 있는지 알아보고, 이들을 어떻게 잘 다룰 수 있는지를 클라이언트와 서버 각각의 시점으로 확인해보는 시간을 가지고자 한다.오늘 알아볼 타임아웃의 주제는 아래와 같다.Connection TimeoutRe..
요구사항 - 크레딧 서버 개발어느 날, 물건 판매 개발이 포함된 서비스의 개발자인 나에게 사용자의 크레딧을 관리할 수 있는 크레딧 서버의 개발 및 요청이 들어왔다.이 크레딧은 매일 자정에 30으로 초기화되며, 사용자들은 매일 이 30개의 크레딧을 통해 물건을 구매할 수 있다. 구현 편의성을 위해 이 서버는 물건 당 크레딧, 사용자 세부 정보 등의 정보는 다루지는 않는다고 가정한다.그리하여 이 크레딧 서버가 제공해야 하는 API는 2개이다.크레딧 차감사용자 아이디, 크레딧 사용량을 입력으로 받아 해당 사용자의 크레딧을 차감크레딧 조회사용자 아이디를 입력으로 받아 해당 사용자의 당일 잔여 크레딧을 반환지금부터 2가지 방식의 설계 하에 2가지 기능을 구현하고, 2개 설계의 성능을 비교해보고자 한다. 설계버전..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.