echo1241 / echo

0 stars 0 forks source link

[TroubleShooting] 로드 밸런서 설정 이슈 #66

Closed hyun1202 closed 1 month ago

hyun1202 commented 2 months ago

해당 이슈는 아직 해결하지 못했기에 기록용 및 질문용으로 남깁니다.

문제

로드 밸런서 cname을 통해 nslookup으로 dns 배포여부를 확인하면 잘 나오나 어플리케이션으로 api 전송 시 통신이 되지 않음

설정

로드 밸런서에는 443만 받고싶어서 아래와 같이 설정했습니다. image

로드밸런서 보안 규칙 image

해당 443이 들어왔을 때 "대상 그룹으로 전달"의 ecs의 fargate로 배포한 애플리케이션으로 전달되게 끔 하려고 구성했으나, 보안 규칙이 어딘가 뚫리지 않은 것인지 연결이 제대로 되지 않습니다.

또한, LB를 연결하게되면 Health Check를 하는데, 이 체크를 하는 api도 따로 만들어두지 않았기에 통과하지 못하는 듯 합니다. image

따로 해당 체크를 하는 api를 만들어두어야 하는 것일까요?

헬스 체크하는 라이브러리를 사용

image

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-actuator'

security 설정 해제 image

http://localhost:8080/api/actuator/health로 접속 image

ecr에 올린 후 다시 ecs 실행 후 테스트.

hyun1202 commented 2 months ago

해결 방법

1. ECS 포트 LB와 동일하게 설정

image

2. LB에서 요청을 받아줄 수 있도록 설정

image

3. VPC - 보안그룹에서 해당 포트 열어줌

image

위와 같이 설정 후 정상적으로 어플리케이션 실행이 완료되었으나, 아래와 같이 ElasticCache에 연동이 안되는 문제가 발생 image

해당 문제는 ElasticCache의 엔드포인트가 나타나지 않았던 문제로, 여러 방면으로 생성해본 결과

자체 캐시 설계 - 클러스터 캐시 선택 클러스터모드 - 비활성화 image

위치 - AWS 클라우드 클러스터 설정 - 노드유형 cache.t2.micro image

위와 같이 생성하였더니 엔트포인트가 나타났고, 통신이 되는 것을 확인함.