해결된 질문
작성
·
616
0
예제를 따라하면서
API-GATEWAY와 EUREKA 는 LOCALHOST로 서버를 열고,
MAIN-SERVICE라는 서비스만 AWS EC2에서 실행하였습니다.
직접 주소를 넣었을때는 잘 작동하는데
배운대로 lib://MAIN-SERVICE 의 형태로 하면 작동을 안합니다!..
혹시 방법이 있을까요?
참고로 모든 서버를 LOCA에서 돌렸을때는 lib이 정상 작동 하였습니다
답변 1
0
안녕하세요, 이도원입니다.
EC2에 등록한 서비스의 문제인지, apigateway-service에서 사용하는 Eureka의 서비스명이 문제인지 확인해 보기 위해서, 질문하신 내용에 다시 질문 드립니다.
lb:MAIN-SERVICE가 아니라, http://35.79.145.19:9001 (아마도 EC2 주소 같습니다만)로 직접 설정하면 어떻게 되나요?
추가로, apigateway-service가 아닌, 웹 브라우저나 Postman에서 직접 해당 주소 (EC2)로 접속 시 서비스가 작동되나요?
위 내용을 확인해 보시고 결과를 공유해 주시면, 다른 원인이 있는지도 확인해 볼 수 있을 것 같습니다.
감사합니다.
안녕하세요, 이도원입니다.
1번과 2번이 성공하셨고, 3번 결과로 보아, EC2에 방화벽 문제일 수도 있다는 생각이 듭니다. EC2 인스턴스를 생성하면, 공개 IP와 내부(inernal) IP가 부여되는데, 공개 IP는 재부팅 시 변경되어서 지속적인 서비스를 위해서는 Elastic IP를 사용하게 됩니다. 그러나, 내부 IP는 Elastic IP와 상관없이 변경되지 않고 계속 할당되어 있는 상태이고, 해당 Internal IP를 기반으로 해서 ip-172-31-43-172.ap-northeast-1.compute.internal 과 같은 도메인이 부여 됩니다. 작업하신 EC2 관리 콘솔로 이동하신 다음에 보안그룹(Security Group) Inbound 정책에 9001이 열려 있는지도 확인해 보시면 좋을 것 같습니다.
감사합니다.
안녕하세요... 아직까지 미해결중입니다.
1. 인바운드 9001포트는 계속열려있습니다
포트가 열리지 않았다면, 탄력적 ip:9001로 접속이 되지 않아야 할텐데 그건 되는듯합니다.
2. 혹시 MAIN-SERVICE가 존재하는 프로젝트의 applicaion.yml에서 세팅으로
내부아이피가 아닌 탄력적ip로 eureka와 api-gateway에 등록 시킬 수 있는 방법이 없을까요? 자동으로 내부아이피를 지정해줘서 이런 문제가 발생하는 듯합니다..
이 문제로 너무 골머리를 썩고 있습니다. 도와주세요..!
=========================================
<API-GATEWAY>
URI 옵션을 lb://MAIN-SERVICE로 설정
<MAIN-SERVICE>
eureka.instance.statue-pare-url을 ec2 내부 서버가 아닌 탄력적 ip로 지정.
<Eureka>
status가 정상적으로 올라오는것을 확인
하지만 실제로 localhost:18000/main-service/swagger-ui를 해보면 작동이 안됩니다..
eureka.instance.status-page-url= http://35.79.145.16:9001/main-service
#eureka.instance.status-page-url-path= /main-service
#eureka.instance.home-page-url-path= /main-service
이런 값을 넣어봐도 잘 작동이 안되서 질문 해봅니다
직접설정하면 작동합니다!
추가적으로 ec2 서버의 탄력적 아이피 주소가 http://35.79.145.16 입니다.
(test uri : http://35.79.145.16:9001/main-service/swagger-ui/)
유레카에 연결된 htttp://172.31.43.172는 탄력적 ip가 아니라 ec2 내부 주소? 인 것 같습니다.
작동합니다!
1번의 질문에서 localhost:18000/main-service/**로 접근해도 작동이 됩니다.
브라우저에서 swagger url을 쳐도 작동하고,
postman을 사용하여 api 호출시에도 잘 됩니다...
다만 lib://을 쓰는순간 동작이 안되네요..
ureka에 main-service를 클릭하면 나오는 주소가
http://ip-172-31-43-172.ap-northeast-1.compute.internal:9001/main-service/actuator/info 입니다.
주소가 왜 저런식으로 맵핑되는지 모르겠으나.. 여기서 actuator을 지우고 swagger 주소를 넣으면 작동이 안됩니다..
http://ip-172-31-43-172.ap-northeast-1.compute.internal:9001/main-service/swagger-ui/