inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

비전공자도 이해할 수 있는 Docker 입문/실전

[실습] AWS EC2에 Spring Boot, MySQL, Redis 배포하기

로컬과 ec2에서 같이 실행이 안되나요?

118

choney

작성한 질문수 2

0

기존 로컬에서 mysql+spring 프로젝트에 해당 강의 영상을 보며 적용하고 있었습니다.

 

compose.yml 설정을 하고 application.yml 설정까지 하니 localhost -> my-db 로 바뀌어서 그런지,,

로컬에서는 db 연결이 실패했다고 뜨는데요 (ec2 인스턴스에서는 실행 됩니다)

 

정상적인 것인지 궁금합니다.

docker docker-compose docker-volume docker-image container ecr

답변 2

0

JSCODE 박재성

안녕하세요 choney님! 질문 잘 해주셨어요:D

우선 결론부터 말씀드리면 로컬에서도 잘 작동해야 정상입니다!

다른 요인 때문에 DB 연결이 실패한 것 같네요~!!

아래 링크로 연락 한 번 주시면 같이 디버깅 도와드릴게요!

https://open.kakao.com/o/srGtpusg

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. choney님!

현재 로컬 환경과 EC2 인스턴스에서의 데이터베이스 연결에 대해 궁금하신 점이 있으시군요. Docker Compose를 사용하여 데이터베이스와 Spring Boot 애플리케이션을 설정할 때, localhost를 데이터베이스 서비스 이름(my-db 등)으로 변경한 부분이 문제가 될 수 있습니다.

주요 원인 및 해결 방안

  1. 서비스 이름으로 접속 시도

    • Docker Compose 환경에서는 각 서비스가 서로를 서비스 이름으로 참조할 수 있습니다. 따라서 my-db라는 이름은 컨테이너 내에서만 유효합니다.
    • 로컬에서 서비스를 호출할 경우에는 localhost나 실제 IP 주소를 제공해 주어야 합니다. 로컬에서 테스트 시 application.yml 파일에 localhost로 데이터베이스 연결 설정을 유지하시고, 배포 환경에서는 해당 연결 정보를 변경해 주셔야 합니다.
  2. 환경 구분

    • application.yml 파일에서 Spring 프로파일을 이용해 개발(dev)와 배포(prod) 환경을 구분하여 각각 다른 데이터베이스 URL 및 인증 설정을 사용할 수 있습니다.
    • 예시로, application-dev.yml에서는 localhost를 사용하고, application-prod.yml에서는 my-db를 사용할 수 있습니다.
  3. 로컬 DB 설정 검토

    • 로컬 환경에서도 Docker를 사용하여 MySQL 데이터베이스를 띄워 테스트할 수 있습니다. 로컬 PC에도 동일한 Docker Compose 설정을 적용하여 로컬에서 DB 연결을 테스트해 보시면 도움이 될 수 있습니다.

관련된 유사한 문제에 대한 설명을 이 게시물에서 확인하실 수 있습니다. 이 게시물에서는 EC2와 로컬 환경에서 Docker Compose 환경 설정의 차이에 대해 논의하고 있어 choney님께 큰 도움이 될 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

EC2 터미널에서 docker pull

0

62

2

AWS ECR

0

57

2

FROM openjdk:17-jdk 현재 기준 dockerhub에 없습니다

1

98

2

Redis 볼륨 설정?

0

114

2

컨테이너의 IP

0

79

2

도커 이미지를 만들 때 application.yml

0

101

2

compose.yml 관리

0

86

2

ECR 리포지토리에 이미지가 3개가 보입니다.

0

76

2

액세스 키 등록하는 시점 관련 질문이 있습니다.

0

82

1

depends_on에 따른 컨테이너 실행 순서

0

75

2

실제 웹 서비스 배포 시 질문

0

80

2

도커 volume 질문

0

66

3

HTTPS로도 받고 싶으면 docker compose에 443도 쓰면 될까요?

0

71

2

sql 볼륨 폴더 지우면 데이터베이스 데이터 날라가는거 아닌가요?

0

71

2

39강 도커파일 빌드 경로 질문이 있습니다.

0

67

2

도커파일 copy

0

69

2

실무에서 docker compose up --build를 할 때

0

183

2

mysql_data 폴더 내부에 다른 파일이 있는데도 잘 되는 경우

0

83

2

도커 허브에서 postgres 버전 확인하는 법

0

127

2

보충 자료와도 관련된 추가 내용

1

81

1

현업에서 MySQL은 RDS와 도커 볼륨 중 어떤 걸 사용하나요?

0

108

2

노션 자료에 안 보이는 이미지가 있습니다

0

99

1

도커 허브에서의 latest가 가장 최신인 게 맞나요?

0

117

2

docker image ls 실행 시 나오는 내용이 다릅니다

0

86

2