AWS EKS “instances failed to join the kubernetes cluster” Error
·
성장이야기/TIL
AWS EKS “instances failed to join the kubernetes cluster” Error AWS EKS Node Group을 생성 하는데, instances failed to join the kubernetes cluster 에러가 발생하는 문제가 있었다. 결론부터 나의 경우 체크해보아야 하는 부분은 크게 3가지였다. Cluster Private, Public Endpoint 확인 Cluster Worker Node의 IAM 권한 확인 Cluster가 배치된 VPC 내 Subnet 연결 설정 확인 노드 그룹 생성 시 인스턴스는 정상적으로 생성이 되었는데, 해당 인스턴스가 eks cluster에 Join이 되지 않아 cluster 생성에 실패하는 문제였는데 어떻게 해결했는지 복기해..
EKS ERROR couldn't get current server API group list: the server has asked for the client to provide credentials
·
트러블슈팅
AWS EKS Cluster를 생성 후 node를 확인하기 위해 node를 확인하는 명령어(kubectl get nodes)를 입력했는데 아래 에러가 발생했다. 대충 에러 로그가 의미하는 바는 현재 권한이 없는 게 문제인 것 같은데, eks 사용하기 위해 별도의 IAM을 만들어 eks 관련 역할을 부여해 주었는데도 위와 같은 에러가 발생해 꽤나 삽질을 하느라 시간을 소비했다. 에러를 해결하기 위해 시도했던 과정들을 나열을 해보자. 1. 로컬의 kubectl 설정 업데이트aws eks update-kubeconfig --region --name   위 명령어로 현재 로컬의 kubectl 설정(kubeconfig 파일)을 업데이트하여 EKS cluster에 접근이 가능하도록 했다.Updated contex..
서비스 확장성과 유지보수성을 높이는 레거시 코드 리팩터링 과정
·
트러블슈팅
이번 글에서는 최근 진행한 프로젝트에서 도메인 타입에 따라 데이터를 조회하는 서비스 로직을 전면적으로 리팩터링한 경험을 공유합니다. 특히 도메인이 늘어날수록 반복적으로 등장하는 if문과 switch-case문으로 인해 발생한 문제점을 어떻게 해결했는지 예시와 함께 살펴보겠습니다. 배경 및 문제점기존 금융 데이터 처리 시스템은 도메인(일반, 은행, 카드, 증권 등)별로 서로 다른 데이터 조회 및 변환 로직을 갖고 있었습니다.각 도메인마다 데이터 변환 로직을 개별적으로 구현이 되어 있는데, 이로 인해 시간이 지날수록 다음과 같은 문제들이 발생했습니다. 기존 코드에서는 여러 도메인 타입(general, bank, card, insurance 등등)의 데이터를 조회하기 위해 서비스 레이어마다 유사한 switch..
[Spring Security] ProviderManager와 AuthenticationProvider 사용하기
·
Java/Spring Security
본 포스팅은 ProviderManager와 AuthenticationProvider가 무엇인지 이해하고 이들을 이용해 인증하는 방법을 공부합니다.  ProviderManagerProviderManager는 이름에서도 알 수 있듯이 provider를 관리하는 manager클래스 입니다.예를 들어, 어떤 일을 하는데 작업을 하는 사람만 있다면 작업자들은 어떤 일을 누가 해야 할지 모를 수 있는데, 작업을 관리하는 관리자가 있다면 어떤 작업을 어떤 사람이 할지 지시를 해줌으로써 좀 더 효율적으로 작업을 할 수 있습니다. 이처럼 인증 작업을 어떤 클래스가 할지 정해주는 역할을 하는 것이 ProviderManager입니다.즉, 인증 작업을 관리하는 매니저라고 생각할 수 있습니다. ProviderManager는 A..
[Spring Security] SecurityFilterChain 파헤치기
·
Java/Spring Security
본 포스팅은 Spring Security의 전체적인 흐름과 FilterChain이 어떻게 동작하는지 이해하는 것을 목표로 합니다. 우선 클라이언트가 HTTP 요청을 했을때 security가 어떻게 작동하는지 흐름부터 살펴본 뒤, 하나씩 알아보겠습니다. 클라이언트의 HTTP 요청이 서버에 도착합니다. "DelegatingFilterProxy"라는 서블릿 필터가 해당 요청을 가장 먼저 받아 "FilterChainProxy"에게 요청을 처리하도록 위임합니다. "FilterChainProxy"는 자신이 관리하고 있는 여러개의 "SecurityFilterChain"에게 순서대로 요청을 넘깁니다. 요청에 적합한 "SecurityFilterChain"내의 filter가 차례대로 실행되며, 각각의 filter는 보안(..
[Spring Security] SecurityContextHolder 이해하기
·
Java/Spring Security
Session 관련 문제가 발생해 프로젝트의 Security 설정 부분을 살펴보다 Spring Security 부분을 공부를 해야겠다는 생각이 들었다. 그래서 거대한 Spring Security 부분을 차근차근 정리하면서 공부해보려고 한다. SecurityContextHolder SecurityContextHolder는 인증된 사용자의 정보를 저장하고 있는 저장소이다. SecurityContextHolder의 구조를 사진으로 보면 SecurityContext를 감싸고 있고 SecurityContext 안에 Authentication(인증)이 저장되어 있다. SecurityContextHolder 설정 1. SecurityContext securityContext = SecurityContextHolder..