분류 전체보기 20

ECS Service Discovery, CloudMap, Prometheus

0. 서론Spring Actuator를 통해 Prometheus 메트릭을 수집하기 위해서 몇 가지 고려사항이 필요하다고 생각했습니다.ECS Cluster에서 EC2 1대를 사용하고 있고, 해당 인스턴스에 하나의 ECS Service를 사용하여 두 개의 테스크(어플리케이션 서버)를 배치했다고 가정두 테스크를 구분하여 모니터링을 하고 싶으나, Public DNS를 통해 얻는 IP 주소만으론 구별이 어렵다고 판단요구 사항각 테스크를 구별해서 Prometheus에서 Scrape 할 수 있는 환경Public DNS를 사용하지 않고 Private DNS를 사용해서 불필요한 비용 축소 및 통신 속도 향상생각해낸 해결책ECS awsvpc 네트워크 모드 + ECS Service Discovery + CloudMap을 사..

AWS 2025.04.13

ECS Network Mode, ENI, VPC Endpoint 정리

0. 서론최근 모니터링 관련해서 알아보고 구축하는 도중 다음과 같은 개념들에 대해 알아보았습니다.ECS NetworkModeENI, VPC EndpointECS의 Service Discovery, Service Connect 그래서 해당 개념들을 그냥 넘기지말고 한번 정리하면 좋겠다고 생각하여 ECS Networkmode, EC2 ENI, VPC Endpoint가 무엇인지에 대해서 알아보고 정리해보고자 합니다. 1. AWS VPC Endpoint1.1 VPC Endpoint란?AWS VPC Endpoint는 인터넷을 거치지 않고 VPC 내부에서 AWS 서비스 연결을 해주는 서비스1.2 Gateway EndpointGateway Endpoint 역할Internet Gateway, NAT Gateway 없이..

AWS 2025.03.29

Gradle 설정 알아보기 (2편)

0. 서론0.1 왜 이걸 찾아보게 되었는가?멀티 모듈 아키텍처에서 의존성을 정리하면서 다양한 개념들이 나왔지만 필요한 것만 골라서 찾아봄그 당시에는 어떤 역할을 하는지 간단하게 알아보고 사용했기에 잠시만 기억하고, 기억에 남아 있지 않음하지만 계속 사용할 거라고 생각했기 때문에 한번 정리가 필요하다고 생각0.2 정리하고자 하는 내용gradle의 역할 및 특징, build.gradle에서 볼 수 있는 설정들을 1편에서 다루었습니다 -> https://recently0.tistory.com/18의존성과 관련된 implementation, compileOnly, runtimeOnly, runtimeClasspath와 같은 설정들에 대해 알아보려고 합니다. 1. Java Library Plugin1.1 Java..

Spring 2025.02.23

Gradle 설정 알아보기 (1편)

0. 서론0.1 왜 이걸 찾아보게 되었는가?멀티 모듈 아키텍처에서 의존성을 정리하면서 다양한 개념들이 나왔지만 필요한 것만 골라서 찾아봄그 당시에는 어떤 역할을 하는지 간단하게 알아보고 사용했기에 잠시만 기억하고, 기억에 남아 있지 않음하지만 계속 사용할거라고 생각했기 때문에 한번 정리가 필요하다고 생각0.2 정리하고자 하는 내용gradle의 역할 및 특징build.gradle에서 볼 수 있는 설정들의존성과 관련된 implementation, compileOnly, runtimeOnly, runtimeClasspath은 2편에서 다룰 예정 1. Gradle1.1 Gradle 역할 및 특징코드 컴파일 및 패키징Java, Kotlin, Groovy 등의 소스코드를 컴파일하고 JAR 또는 WAR 파일로 패키징..

Spring 2025.02.16

분산환경에서 SQS 리스너 서버 고려점

0. 서론SQS를 사용하면 이벤트를 처리하는 서버가 한대 있을 때는 별로 걱정할 것이 없으나, 이벤트 처리하는 서버가 다운 타임 없이 SQS를 이용해 이벤트를 처리하고 싶은 경우 고려해야 할 요소들이 몇 개 있다고 생각했습니다.메세지 서버가 다운되었을 경우 처리메세지 중복 처리그래서 SQS는 어떤 방식으로 분산환경에서 이런 문제들을 해결하고 있는지 알아보고 정리하고자 글을 작성합니다. 1. SQS 알아보기SQS란?분산 소프트웨어 시스템 및 구성 요소를 통합하고 분리할 수 있는 안전하고 내구성이 뛰어나며 사용 가능한 호스팅 대기열을 제공합니다.SQS의  주요 특징?완전관리형 서비스인프라를 직접 운영할 필요 없이 AWS에서 자동으로 관리해 줌확장성이 뛰어나며 트래픽 증가에 자동 대응가용성 및 내구성분산 대기..

AWS 2025.02.01

담백하고 깔끔한 2024년 회고

0. 회고 들어가기 전어느덧 2025년이 되었습니다. 2025년에 들어가면서 2024년에는 어떤 목표를 세웠고 얼마큼 이루었는지, 또 목표로 가지지는 않았지만 어떤 것들이 내 삶에 도움이 되었는지, 마지막 회고한 내용을 종합적으로 생각해 봤을 때 2025년에 어떤 목표를 세우고 이루려고 하는지 기록하고자 합니다. 1. 2024년에 세웠던 목표1.1 어떤 목표가 있었는가?2023년 회고를 하면서 2024년에는 아래와 같은 목표를 세웠습니다.한 달마다 블로그 글쓰기영어 공부옷 관련 사업 구상1.2 수치적으로 얼마큼 이루었는지?한 달마다 블로그 글쓰기1월부터 12월까지 14개의 글을 작성해 수치상 100% 초과 달성가벼운 목표라고 생각했지만, 생각만 하던 블로그를 시작했고 예상 수치보다 더 많이 작성해 만족영..

회고 2025.01.05

Flyway 도입 전 탐색해보기

0. 서론이전에 Flyway를 사용해서 DB 형상 관리를 하면, 좀 더 개발에 집중할 수 있다고 생각해 도입한 기억이 있습니다. 다만 소수 인원이었기에 단순히 배포할 때, 실행해야 할 쿼리가 누락되는 걸 방지하기 위한 용도로만 사용했습니다. 이후 업무를 하면서 DDL, DML 쿼리가 생각보다 자주 발생하는 것을 느끼고 이를 팀원끼리 매번 공유하기 어려워, Flyway를 도입해 그 시간을 단축하면 좋겠다는 생각이 들었습니다. 그리하여 도입 전 Flyway에 대해 알아보고 정확히 알아보기 위해 이번 글을 작성하고자 합니다. 1. Flyway 알아보기1.1 Flyway란?Flyway는 DB 마이그레이션 툴로, DB 형상관리를 위한 도구Git을 통해 코드 형상 관리를 하듯, Flyway를 사용해 다른 사람들과 ..

Spring 2024.12.07

AWS ECS 넓게 펼쳐보기

서론AWS ECS 10주년 글을 확인했습니다. ECS를 사용하고 있지만, 그 개념 자체에 대해서는 깊게 공부해 본 적이 없다고 생각합니다. 그리하여 ECS를 사용하면서 가볍게 지나갔던 개념들을 첫 번째로 넓고 얕게 정리해 보고, 순차적으로 궁금했던 점들을 찾아내 구체적으로 하나씩 정리하여 여러 글에 담아내고자 합니다. 1. AWS ECS1.1 AWS ECS란?컨테이너 어플리케이션을 쉽게 배포, 관리할 수 있도록 도와주는 완전 관리형 컨테이너 오케스트레이션 서비스AWS, ECR, Docker 등의 서드 파티 도구와 통합되어 사용오토 스케일링을 사용하여 높은 확장성 및 안정성을 확보1.2 AWS ECS 용량?컨테이너가 실행되는 인프라를 ECS 용량이라고 합니다. 구성 옵션은 다음과 같습니다.AWS EC2 인..

AWS 2024.11.24

환경변수가 있었는데요? 없었습니다

서론환경변수를 관리하고 있는 서버가 모종의 이유로 더 이상 서버에 접근할 수 없고, 사용하고 있는 환경변수를 백업하지 않았다면 환경변수 값을 정확하게 알기 어렵습니다. 그래서 이번 포스팅에서는 이미 올라가 있는 서버에 대해, JVM Heap Dump를 활용하여 환경변수를 찾아오는 방법에 대해 공유해드리고자 합니다.사용한 기술 및 소프트웨어Java11, Spring Boot 2.6.11, Docker, Filezilla JVM Heap Dump?일단 JVM Heap Dump에 대해 간단하게 소개를 드리겠습니다. JVM Heap Dump는 JVM의 힙 메모리에 저장된 모든 객체들의 스냅샷을 저장한 파일입니다. 해당 파일들은 다음과 같은 정보를 가지고 있습니다.힙에 저장된 객체 정보객체 간의 참조 관계클래스별..

Spring 2024.11.09

JPA 양방향 매핑 탈출기

서론이때까지 개인적으로 해오던 프로젝트들은 개발에 충분한 시간이 주어지고, 도메인이 단순했습니다. 그래서 ORM 기술인 JPA를 사용할 때 단방향 매핑을 사용해서 모든 것을 해결할 수 있었습니다. 하지만 실제 업무를 진행할 때는 급하게 개발을 하다 보니 양방향 매핑을 자주 사용했습니다. 그리고 그 문제들은 점점 커져 유지보수에 어려움을 주고 있었기에, 성능에 영향을 주는 OneToOne 관계를 급선무로 하여 약 90% 정도 (OneToMany는 조금씩 진행 중) 끊어냈습니다. 이 과정에서 제가 겪었던 양방향 매핑의 문제점에 대해 공유하고자 글을 작성했습니다. 사용한 기술들 -> Java17, Spring Boot 3.2.7, MySQL 8.0.34, JPA, QueryDSL 1. 데이터 획득 경로 분산양..

Spring 2024.10.27