eksctl로 단일 노드 쿠버네티스 클러스터 생성하기
·
Infrastructure/AWS
들어가며 쿠버네티스 v1.28 기준으로 쿠버네티스는 다음과 같은 기준까지 수용하도록 설계되었다. 노드 당 파드 110개 이하 노드 5,000개 이하 전체 파드 150,000개 이하 전체 컨테이너 300,000개 이하 나는 최근 '쿠버네티스 교과서'라는 도서로 스터디를 진행하며 쿠버네티스에 대해 공부하고 있다. 나의 상황의 경우 단일 노드 클러스터로도 충분하기 때문에, 이번 포스트에서는 앞으로 진행할 예제의 준비물로 단일 노드 쿠버네티스 클러스터를 생성하는 과정에 대해 알아본다. 현재 사용 중인 M1 맥북 로컬 환경에 Minikube 등을 사용하여 쿠버네티스 환경을 구성할까? 생각도 하였지만, AWS 서비스에 친숙해지고 싶어서 맨땅에 헤딩으로 실패한 경험이 있어서 (가능하다면) 추후 프로젝트에 도입하고 싶..
Redis의 개념에 대해 알아보자
·
Database
1. Redis란?Remote Dictionary Server의 약자로, 키-값(key-value) 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다. 데이터베이스, 캐시, 메시지 브로커로 사용되며, 인메모리 데이터 구조를 가진 저장소이다.캐시 - 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소, 최소한의 비용으로 반복적으로 접근할 수 있도록 함Local Cache(Local 장비 내에서만 사용), Global Cache(여러 서버에서 Cache Server에 접근하여 사용) 두 가지로 나눌 수 있는데 Global Cache에 적합하다메시지 브로커 - 애플리케이션, 시스템 및 서비스가 서로 간에 통신하고 정보를 교환할 수 있도록 해주..
Spring boot 프로젝트에 Flyway 도입하기 (feat. 기존 데이터가 있을 경우)
·
Spring
Flyway란? Flyway는 데이터베이스의 형상 관리를 목적으로 하는 오픈소스 마이그레이션 툴이다. Flyway를 통해 변경 사항을 추적하고, 업데이트나 롤백을 보다 쉽게 할 수 있다. 우리가 개발하며 필수적으로 사용하는 git에서 코드를 형상 관리하듯 데이터베이스도 형상 관리가 가능한 것이다! 형상 관리를 하면 데이터베이스 schema의 변경 이력이 남기 때문에 데이터베이스의 변경 작업을 안전하게 할 수 있다. Flyway를 도입한 이유 기존 프로젝트의 환경별 데이터베이스 상황은 아래와 같다. local - H2 Database, ddl-auto: create dev - RDS(MySQL), ddl-auto: update prod - RDS(MySQL), ddl-auto: none (최초에는 ddl-..
개발 서버와 운영 서버를 분리할 때 ALB에서 한 실수
·
Infrastructure/AWS
프로젝트 상황 서비스를 운영하기 위해서는 개발하는 과정에서 사용하는 개발 환경과 실제 사용자들이 사용하는 운영 환경을 분리해야 한다. 현재 진행 중인 프로젝트에서는 하나의 EC2 인스턴스 안에서 2개의 포트를 사용하여 개발 환경과 운영 환경을 동시에 실행시키고 있다. 8080번 포트: Profile이 dev인 Spring boot 서버 실행 8081번 포트: Profile이 prod인 Spring boot 서버 실행 Best Practice로는 개발 환경과 운영 환경을 물리적으로 분리하는 것이 좋다. 하지만 물리적 분리를 하기 위해서는 자원이 2배로 필요하기 때문에 포트를 2개 사용하여 하나의 인스턴스 내에서 개발 환경과 운영 환경을 분리하는 방법을 선택했다. 그리고 서브 도메인으로 개발 환경은 dev,..
IntelliJ로 Kotlin 프로젝트 생성하고 Hello World 출력하기
·
Semi Tips
IntelliJ 프로젝트 생성 New Project를 누르고 Language를 Kotlin으로 선택한다. Location, Build system, JDK는 자신에게 알맞게 선택한다. Kotlin 파일 생성 src/main/kotllin 디렉토리에 파일을 생성한다. Kotlin 파일의 확장자는 .kt이다. HelloWorld 앞서 생성한 파일에 아래와 같이 코드를 작성하고 Run을 눌러준다. 코드를 작성하면 옆에 라인에 연두색 play 아이콘이 생기는데 이걸 눌러도 된다. fun main(args: Array) { println("Hello, World!") } 결과
디스코드로 Spring boot 에러 로그 보내는 방법 with. logback
·
Spring
에러 로그 알림 시스템을 구축한 이유 EC2에 API 서버를 올렸다고 가정하자. 만약 아무런 세팅 없이 API 서버를 실행하고 있다면, API 에러가 발생했을 때 터미널로 EC2에 접속하여 nohup.out 등을 확인하여 직접 로그를 확인해야 한다. 터미널이기 때문에 UI가 불편하며, 무엇보다도 에러가 발생했을 때 즉각적으로 파악하기 어렵다는 점이 가장 힘들었다. 그렇기 때문에 팀 내 커뮤니케이션 툴인 디스코드로 API 에러가 발생할 때마다 알림이 올 수 있도록 환경을 구축해보았다! 해당 게시글에서는 로그에 대한 구체적인 내용은 다루지 않을 예정이다. Logback? Logback은 log4j 이후에 출시된 Java 기반 Logging 프레임워크 중 하나이다. Slf4j의 구현체로, 별도의 depende..
짱정연
짱정연의 짱개발자 도전기