Actions Runner Controller 를 이용해 self-hosted runner로 배포하기
·
성장이야기/TIL
Actions Runner Controller 를 이용해 self-hosted runner로 배포하기 Github actions workflow를 실행시키는 환경에는 Github가 제공하는 github-hosted 환경과 자체적으로 관리하는 self-hosted 환경이 존재한다. 대부분(나 또한 그랬듯이) github-hosted 환경에서 빌드 및 배포 작업을 진행한다. 대표적으로 ubuntu-latest 환경(windows-latest, macos-latest..)이 있다. 하지만 이번에 self-hosted 환경에서 애플리케이션을 빌드 및 배포하는 작업을 진행했다. self-hosted runner를 어디에서 실행시킬지도 2가지 방법으로 나뉜다. (다른 방법이 더 존재할 수도..) EC2에서 실행 e..
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
·
성장이야기/TIL
AWS EKS Cluster를 생성 후 node를 확인하기 위해 node를 확인하는 명령어(kubectl get nodes)를 입력했는데 아래 에러가 발생했다. 대충 에러 로그가 의미하는 바는 현재 권한이 없는 게 문제인 것 같은데, eks 사용하기 위해 별도의 IAM을 만들어 eks 관련 역할을 부여해 주었는데도 위와 같은 에러가 발생해 꽤나 삽질을 하느라 시간을 소비했다. 에러를 해결하기 위해 시도했던 과정들을 나열을 해보자. 1. 로컬의 kubectl 설정 업데이트 aws eks update-kubeconfig --region --name 위 명령어로 현재 로컬의 kubectl 설정(kubeconfig 파일)을 업데이트하여 EKS cluster에 접근이 가능하도록 했다. Updated context..
[개발일지] 230721 Redis Sorted Set(ZSET)
·
성장이야기/TIL
Redis Sorted Set Redis의 Sorted Set(ZSET) 자료구조에 대해 알아보자. Sorted Set은 저장된 데이터의 정렬된 순서를 가지는 집합 데이터 구조이다. Set 구조이기 때문에 각 멤버(member)에 대해 고유한 식별자(key)와 함께 점수(score)를 지정하여 데이터를 저장한다. 아래 그림을 보면 구조를 파악하기 쉽다. key안에 고유한 member가 존재하고 각 member에 대한 점수가 있다. 만일 동일한 점수가 존재할 경우 member의 사전순으로 정렬을 한다. Sorted Set 특징 정렬된 순서: Sorted Set의 멤버는 각 멤버의 점수를 기준으로 오름차순에 따라 정렬되어 저장된다 고유한 멤버: Sorted Set은 각 멤버를 식별자로 구분할 수 있어 중복되..
[개발일지] 230706 Java BiFunction 인터페이스
·
성장이야기/TIL
새로운 메서드를 추가하는데 기존에 존재하는 코드와 중복되는 부분이 많아 코드를 재사용하기 위해 BiFunction이라는 것을 사용할 수 있다는 것을 알게 되었다. 그래서 오늘은 BiFunction에 대해 알아보려고 한다. BiFunction BiFunction은 Java 8에서 도입된 함수형 인터페이스 중 하나로, 두 개의 입력을 받아 결과를 반환하는 함수를 모델링합니다. BiFunction 인터페이스 인터페이스에서 T와 U는 함수의 입력 타입이고, R은 반환 타입이다. BiFunction을 사용하는 간단한 예제 코드를 살펴보자. BiFunction biFunction = (x, y) -> x + y; String biFunctionResult = biFunction.apply("Hello", " Wor..
[개발일지] 230704 no main manifest attribute error (With Manifest, jar)
·
성장이야기/TIL
현재 Spring boot 파일을 docker 환경에서 독립적으로 실행해야 하는 상황인데 no main manifest attribute error가 발생했다. main mainfest 속성이 없다는데 manifest가 뭔지 알아보자. JAR (Java Archive) MANIFEST.MF 파일을 알아보기 전에 jar파일부터 간단하게 알아보자. jar파일은 여러 개의 Java 클래스 파일, 메타데이터 및 리소스를 하나의 파일로 모아서 사용되는 패키지 파일 포맷이다. 쉽게 생각하면 Java 프로젝트를 압축한 파일이라고 생각하면된다. 이 jar파일 안에 존재하는 MANIFEST.MF 파일을 이용해 독립적으로 실행될 수 있는 애플리케이션으로 사용될 수 있는데 이 MANIFEST.MF에 대해 알아보자 Manif..