분류 전체보기
EKS Ingress Controller Group 사용
EKS Ingress Controller Group 사용
2023.11.06Intro EKS Ingress Controller로 Elastic LoadBalancer 유형을 ALB, NLB 지정해서 사용할 수 있다. 서비스가 확장됨에 따라 Namespace를 분리하는 일이 생겼다. ALB를 분리할 필요는 없었지만, Ingress Controller는 Namespace에 종속돼 있어서 여러 개의 로드 밸런서가 생기는 문제를 발견했다. Ingress Yaml 파일에 어노테이션을 추가함으로써 간단하게 해결할 수 있었는데, 알아보자. Ingress Yaml 어노테이션 추가 위에서 말했듯이 Namespace에 종속돼서 만들어지기 때문에 별도의 어노테이션을 Yaml파일에 추가해야 한다. alb.ingress.kubernetes.io/group.name을 활용하면 된다. 아래와 같이 파일을..
EKS Ingress Controller (Application LoadBalancer) 유형
EKS Ingress Controller (Application LoadBalancer) 유형
2023.10.31Intro AWS의 EKS에서는 Ingress Controller를 Helm or Manifest를 이용해서 Application LoadBalancer or Networ LoadBalancer를 만들 수 있게 해 준다. 만드는 방법은 링크를 참고하면 된다. Ingress Controller를 만들면, 우리가 만든 서비스랑 연결을 해줘야 라우팅이 가능해진다. 여기서 문서를 살펴보니, alb.ingress.kubernetes.io/target-type 라는 타입을 명시할 수가 있는데, 이걸로 네트워크 최적화가 가능했다. 한 번 살펴보자. target-type 앞에서 언급한 alb.ingress.kubernetes.io/target-type은 2가지 타입이 instance, ip 타입이 존재한다. 하나씩 알..
EKS OverProvisining - 1
EKS OverProvisining - 1
2023.10.30Intro AWS EKS를 사용하면서 서비스 규모가 확장되고, Pod의 수가 늘어나거나 HPA에 의해 Scale Out이 필요한 상황들이 발생한다. 이런 경우에 노드의 리소스 부족으로 인해 새로운 Pod를 실행할 수 없는 상황이 생길 수 있다. 이러한 문제를 해결하기 위해 EKS는 Cluster AutoScaling 기능을 제공하며, 추가적으로 Karpenter라는 도구도 사용할 수 있다. 관리형 노드 그룹에 새로운 노드를 추가하는 방식으로 동작한다. 그러나, 실제로 이 기능을 적용했을 때 문제점이 하나 있다. 바로 새로운 노드가 관리형 그룹에 추가되고 실행 가능 상태가 되기까지 약간의 시간이 소요된다는 점이다. 이때 요청이 증가해서 가동되고 있는 파드들 또한 문제가 발생한다면, 서비스의 다운타임이 발생..
API 공통 응답 형식 정하기
API 공통 응답 형식 정하기
2023.10.23들어가기 앞서 API는 web FrontEnd, IOS, Android 등 어떠한 클라이언트도 이용할 수 있는 상황이다. 응답에 대해서 유연하고, 클라이언트에게 필요한 데이터를 유연하게 변경할 수 있어야 한다. 이런 조건을 만족시키는 공통 응답 형식을 만들어보자. 조건 살펴보기 응답 형식에는 다양한 조건이 있을 수 있다. 임의의 로 조건을 설정하고 필요한 이유에 대해서 알아보자. 1. HttpStatus가 포함 클라이언트의 보낸 요청에 대한 서버의 응답 코드이다. 이것을 통해서 클라이언트 측에서는 성공대인 200, 클라이언트 오류인 400대 등을 알 수 있으므로 포함돼야 한다. 2. 응답 메시지 HttpStatus만으로는 모든 상태를 설명할 수 없다. 그래서 메시지를 통해서 명확한 요청의 상태를 전달한다..
Java Null 처리에 대한 여정
Java Null 처리에 대한 여정
2023.10.16개요 개발을 하다 보면, null인 데이터를 처리해야 할 때가 있다. 반환만 한다면, 문제없지만 데이터를 가공한다면, NullPointerException을 마주치게 될 것이다. 따라서 null일 수 있는 데이터 판별과 어떻게 처리해야 할 지에 대한 고민을 적어보려고 한다. 지극히 개인적인 생각이 많으므로 자유롭게 댓글 달아주셔도 됩니다. 예시 객체 @AllArgsConstructor(access = AccessLevel.PROTECTED) @Builder @Getter public class Member { private String name; private LocalDateTime serviceStartTime; private Integer age; } 고민의 시작 위의 객체 데이터를 반환할 때 아래..
AWS DevOps Engineer Professional (DOP-C02) 취득 후기
AWS DevOps Engineer Professional (DOP-C02) 취득 후기
2023.10.11DOP 준비를 작성하고 난 후, 공부를 시작했다. SAA를 약 3달간 준비했었기에, 한 단계 높은 Professional이고, DVA를 따지 않아서 동일하게 3달을 목표로 했다. 근데 SAA를 취득하고 난 후라서 그런지 너무 쉽게 느껴졌다. 그래서 10/9 응시로 변경하고 시험을 응시했다. 그 준비 과정과 느낌점을 남겨놓으려고 한다. 준비 과정 1. 인강 수강 2. 덤프 풀기 SAA를 땄을 때와 동일하게 DOP 인강을 수강했다. 인강 분량이 20시간이었고 한 달 반을 생각했었다. 왜냐하면 27시간 분량의 SAA를 들었을 때 한 달 반이 걸렸었다. 근데 인강을 들으니 업무에서 사용했던 서비스들이 정말 많았다. 그래서 시간을 많이 단축할 수 있었다. 모두 듣고나서 덤프를 풀었다. examtopic에서 문제..