일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- AWS KMS
- aws vpc peering
- Today
- Total
목록2025/04 (16)
기록
보호되어 있는 글입니다.
1. 이 글을 쓰게 된 이유Spring Boot에서는 흔히. -Dspring.profiles.active=xxx 옵션으로 프로필을 지정한다. 그런데 어느 날 ./gradlew test -Dspring.profiles.active=git 명령어를 실행했는데, git 프로필이 적용되지 않는 현상을 마주하게 되었다. 분명히 JVM 옵션을 줬는데 왜 안 될까? 이 의문을 해결하기 위해 콘솔 → Gradle → JVM → Spring Boot까지의 프로필 전달 구조를 깊게 파헤쳐 보았다. 결과적으로 테스트 시에는 JVM 옵션이 자동으로 적용되지 않는 구조라는 걸 알게 되었고, Gradle의 테스트 환경과 JVM 간의 동작 방식에 대한 이해가 중요함을 느꼈다.2. 기본 개념 정리2.1 JVM 옵션 -D란?JVM을 ..
시작하면서Kafka 기반의 오케스트레이터 마이크로서비스를 구성하는 과정에서, 애플리케이션이 정상적으로 빌드되고 실행되었음에도 불구하고 바로 종료되는 현상을 경험했다.에러 메시지도 없고, 로그상으로는 성공적으로 기동된 것처럼 보이기 때문에 처음엔 의아할 수 있다. 해당 현상을 통해 Spring Boot 애플리케이션이 어떤 조건에서 프로세스를 유지하며, Kafka 기반 서비스에서는 어떤 요소들이 필수적인지를 정리해본다.1. 문제 현상: 실행되지만 바로 종료되는 Spring Boot 애플리케이션멀티모듈 기반 프로젝트에서 오케스트레이터 역할을 수행하는 모듈(service-membership-orchestrator)을 실행했더니 다음과 같은 로그만 출력되고 앱이 종료된다:Started ServiceMembersh..

시작하면서이번 글에서는 K3s 마스터와 에이전트 노드 구성이 완료된 상태에서, 클러스터의 노드 및 파드 상태를 실시간으로 시각화하는 오픈소스 도구 kube-ops-view를 설치하고 활용하는 방법을 설명한다. Grafana를 사용할 수도 있지만, kube-ops-view는 경량이며 NodePort로 노출하기에 적합해 프리티어 환경에서 간편하게 운영할 수 있는 대시보드 도구이다. 이전글K3s 기반 멀티 노드 클러스터 구축기 (1) - 컨트롤 플레인 자동화와 Helm 설치까지K3s 기반 멀티 노드 클러스터 구축기 (2) - dev 계정에서 워커 노드 연결하기목표kube-ops-view를 마스터 노드(K3s 서버)에서 설치한다.클러스터 전체 노드와 파드 상태를 실시간으로 시각화한다.외부에서 웹 브라우저로 접근..
시작하면서이번 글에서는 K3s 마스터 노드가 구성된 상태에서, dev 계정에 위치한 EC2 인스턴스를 워커 노드(Agent)로 연결하는 방법을 설명한다. 이 과정은 클러스터 확장과 cross-account 구조를 이해하는 데 매우 유용하며, 프리티어 환경에서 실습하는 데 최적화되어 있다.이전글K3s 기반 멀티 노드 클러스터 구축기 (1) - 컨트롤 플레인 자동화와 Helm 설치까지목표dev 계정에서 EC2 인스턴스를 생성하고 swap, timezone 설정을 마친다.EC2를 K3s agent 모드로 실행하여 master 노드와 연결한다.kubectl get nodes 명령어로 클러스터 확장 여부를 확인한다.CloudFormation 템플릿 요약dev 계정에서는 다음 리소스를 CloudFormation ..
시작하면서로컬 개발 환경을 매번 수동으로 셋업하는 건 꽤 귀찮다. 특히 DB 사용자나 초기 데이터베이스 권한을 설정할 일이 반복되면 더 그렇다. 이럴 때 Docker Compose를 활용하면, 한 번의 설정으로 MySQL을 포함한 전체 환경을 자동으로 구성할 수 있다.이번 포스팅에서는 MySQL 컨테이너를 띄우면서 사용자 생성, 권한 부여, DB 초기 설정까지 자동화하는 방법을 정리한다.1. 디렉토리 구조my-dev-env/├── docker-compose.yml└── init.sqldocker-compose.yml: MySQL, Redis 등을 정의하는 파일init.sql: 컨테이너 초기 실행 시 실행될 SQL 스크립트2. docker-compose.yml 설정version: '3.8'services:..
시작하면서이번 글에서는 AWS 프리티어를 최대한 활용하여 K3s 기반 멀티노드 쿠버네티스 클러스터를 구성하는 과정을 소개한다. 이 글은 그 첫 번째로, Control 계정에서 마스터 노드를 초기화하고 Helm을 설치하는 내용을 포함한다.목표AWS Control 계정에 퍼블릭 서브넷과 EC2 인스턴스를 생성한다.EC2 인스턴스에서 K3s 마스터 노드를 초기화한다.Helm을 설치하여 이후 Helm Chart를 통한 배포 기반을 마련한다.swap 설정과 timezone 초기화를 포함한다.CloudFormation 템플릿 요약다음 리소스를 CloudFormation 템플릿을 사용하여 자동으로 생성한다:VPC (CIDR: 10.30.0.0/16)퍼블릭 서브넷 (CIDR: 10.30.1.0/24)인터넷 게이트웨이,..

아키텍처 개요이번 프로젝트의 목표는 최소 비용으로 배포 환경을 구성하되, 실제 운영 환경 수준의 짜임새 있는 인프라 구조를 갖추는 것이었다. 이를 위해 다음과 같은 방향으로 인프라를 설계했다.K3s 기반 경량 Kubernetes 클러스터 운영AWS 3개 환경(Infra / Dev / Prd) 분리로 프리티어 자원 극대화EC2 기반 노드 구성, Redis는 퍼블릭 서브넷 배치ArgoCD + Helm 기반 GitOps 배포 구조 준비🔹 각 계정의 역할 및 리소스 구성1. Infra (Control Plane 전용)전체 클러스터의 제어 권한을 가진 마스터 노드를 운용. 워커 노드는 Dev/Prd 환경에 분산되어 있지만, 모든 노드는 Infra 계정의 K3s Control Plane에 연결한다.구성 리소스:E..