본문 바로가기

msa7

ECS 배포중 트러블 슈팅 2편 - Eureka에 잘못된 IP가 등록되는 문제 문제 상황Spring Cloud Eureka를 사용하는 MSA 구조에서, ECS Fargate 환경에 배포된 서비스들이 잘못된 IP로 Eureka에 등록되는 현상이 발생했습니다. 모든 서비스가 Eureka에 등록될 때 IP 주소가 169.254.172.2로 고정됨.Gateway로 요청시 다음과 같은 오류 메세지를 받음finishConnect(..) failed: Connection refused: /169.254.172.2:8082 원인은?원인은 Fargate의 네트워크 구조와 Eureka의 기본 IP 등록 방식 때문이었습니다.Eureka는 기본적으로 컨테이너가 실행되는 호스트의 IP 또는 호스트 네임을 가지고 주소를 자동 등록합니다. 하지만 Fargate는 EC2와 달리 호스트 머신 이 없는 서버리스.. 2025. 5. 1.
ECR, ECS가 뭐길래 선택하였는가 서론이번 글은 저희가 배포환경을 ECR, ECS로 결정하게 된 이유와 여러가지 특징을 작성하려고 합니다. ECR (Elastic Container Registry) 이란? ECR은 Container Registry입니다. 쉽게 생각하면 Docker Hub라고 생각하시면 됩니다.차이점은 다음과 같습니다.1. AWS 내부 통신으로 더 빠름 2. ECS등에 연결할 때 IAM 인증 기반을 사용 가능즉 AWS 내 통합성, 네트워크 성능, 보안성 측면에서 다른 AWS 서비스와 활용한다면 더 좋습니다. 다만, 저희는 비용 때문에 Public으로 진행했습니다.(public은 월 50GB무료). 그럼에도 나중에 쉽게 바꾸기도 가능해서 aws의 ecs를 사용한다면 좋은 선택지 인것 같습니다. ECS (Elastic Co.. 2025. 5. 1.
[ 단잠 ] MSA에 Common 모듈 도입 🚨문제단잠 개발하는 도중 모든 서비스에서 공통적으로 설정하고 사용하는 클래스들이 존재했습니다. ( 공통응답객체, BasteEntity, Code, GlobalException Handler, Security등 )해당 클래스들은 global패키지안에 넣어 진행하고 있었습니다.  그러던 도중 문제들이 터지기 시작했습니다.바로 공통 클래스가 일관성이 유지되지 않는것이었습니다.각 서비스가 수정사항이 생긴다면 복붙 해야합니다. 매우 번거롭기도 하고 복붙해야하는걸 잊으면 수정사항이 적용이 되지 않는 경우들이 생겼습니다.또한 변경사항을 전달할때는 "어떤 서비스에서 global패키지 안에 어떤걸 넣어놨어요. 이러한 이유는~~~"단순히 어떤 역할뿐아니라 어느 서비스에 global패키지 안에 추가되었다는걸 말해줘야했습니.. 2025. 4. 1.
Spring Cloud환경에서 Gateway에 Sagger 적용 📘서론현재 MSA로 프로젝트를 진행하던 도중 Swagger를 적용시키고 싶어 해당 과정을 작성합니다.  1. 각 서비스 설정1-1.  build.gradle에 swagger 의존성 추가implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' // Swaggger 의존성 1-2. application.yml에 spring doc 설정springdoc: default-produces-media-type: application/json api-docs: path: /v3/api-docs swagger-ui: path: /swagger-ui.html display-request-duration: true 1-3. S.. 2025. 3. 24.