해결된 질문
24.06.27 15:40 작성
·
211
·
수정됨
1
현재 환경
VPC
public subnet 2개
ALB, Nat gateway
private subnet 2개
fagate
Security group
public group (80포트 모든 ip허용)
private group(80포트 public group아이피만 허용)
여기서 이미지 컨테이너 실행도중 한 컨테이너에서
Caused by: ! java.net.UnknownHostException: 690bd678bcf4: Name or service not known
와같은 에러와함께 컨테이너 실행이 실패했고
스택오버플로우 검색에서 얻은 정보를 통해
localhost를 수정하는 sh파일을 도커컨테이너 실행하도록 변경하여 에러를 해결했습니다.
(해당 스크립트)
#!/bin/bash set -e shift cmd="$@" echo "127.0.0.1 $HOSTNAME" >> /etc/hosts exec $cmd
현재 실행된 컨테이너는 아무문제없이 잘 작동하지만
제가 이부분에대해 이해가 잘 안되기도하고 올바른방법으로 해결한것인지 불안한감이 있어서
혹시나 좋은 피드백을 받을 수 있을까해서 질문올립니다!
위에러는 강의랑 다른구성의 서버실행도중 발생한 에러이고 저또한 정확한 질문을 드린것은 아니라
답변이 안될거라 생각되지만 혹시나하는 마음에 올려봅니다!!
답변 2
1
1
2024. 06. 27. 18:26
안녕하세요!
이 부분에 대해 저도 정확히 파악하기 위해 개인적으로 알아보았습니다.
인프라 구조를 자세히 알아야 정확한 진단이 가능하겠지만, 예상되는 원인은 한 컨테이너에서 입력한 호스트 네임으로 다른 컨테이너를 찾지 못한 에러인 것으로 보입니다.
해당 원인이 맞다면, 다음과 같은 해결책을 고려해볼 수 있습니다:
ALB의 도메인 사용: 다른 컨테이너로 요청할 때 직접 호스트 네임을 사용하는 대신, ALB(Application Load Balancer)의 도메인 이름을 사용해보세요. 이는 호스트 네임 문제를 회피하는 데 도움이 될 수 있습니다.
서비스 디스커버리 사용: AWS ECS의 Service Discovery 또는 Service Connect 기능을 사용하여 컨테이너 간의 통신을 관리할 수 있습니다. 이는 컨테이너들이 서로를 쉽게 찾을 수 있도록 도와주는 서비스입니다.
이 서비스는 이후 강의가 제작된다면 다뤄볼 예정입니다.
명확한 해결책을 드리지 못해 죄송합니다. 좋은 해결책을 찾게 되시면 공유해주시면 감사하겠습니다!
감사합니다.