MySQL 전환에 따른 Docker Compose 설정 검증 및 수정 작업

날아올라돼지야·2024년 8월 27일
0

이번엔 Docker Compose 파일을 검증하고, 마이크로서비스와 MySQL 데이터베이스 컨테이너 간의 연결을 성공적으로 설정하는 과정을 다룹니다. 이전 챕터에서 발생한 문제를 해결하고, 올바르게 컨테이너를 시작하는 방법을 설명합니다.

1. Docker Compose 파일 수정

  • 이전 강의에서 Docker Compose 파일에 포함된 일부 오류를 수정합니다.
  • Docker 이미지 태그를 S6에서 S7로 변경합니다. 각 마이크로서비스의 Docker 이미지가 올바르게 최신 버전의 이미지를 참조하도록 수정합니다.

2. Config Server의 불필요한 의존성 제거

  • config-server 서비스에서 rabbit 서비스에 대한 의존성을 제거합니다.
  • 이전에 삭제한 rabbit 서비스를 여전히 참조하고 있었기 때문에 오류가 발생했습니다. 이를 수정하여 더 이상 사용되지 않는 의존성을 제거합니다.

3. Docker Compose 명령어 실행

  • Docker Compose 파일을 수정한 후, 터미널에서 다음 명령어를 실행하여 컨테이너를 시작합니다:
    docker-compose up
  • 모든 데이터베이스 컨테이너가 정상적으로 시작된 후, 마이크로서비스 컨테이너가 시작됩니다.

4. 네트워크 설정 문제 해결

  • loanscards 마이크로서비스에서 데이터베이스 연결 오류가 발생했습니다.
  • 이 오류의 원인은 각 서비스의 데이터베이스 URL에 잘못된 포트 번호(3307, 3308)를 사용한 것이었습니다. Docker 네트워크 내에서 컨테이너 간 통신은 외부 포트를 사용할 필요가 없으므로, 모든 데이터베이스 URL에서 포트 번호를 3306으로 수정합니다.
  • 외부 도구(예: SQL Electron)에서 데이터베이스에 접근하기 위해서는 외부 포트 매핑을 유지합니다.

5. Docker Compose 재실행

  • 수정된 Docker Compose 파일로 모든 컨테이너를 다시 시작합니다.
  • 기존에 실행 중이던 컨테이너를 중지하고 삭제한 후, Docker Compose 명령어를 다시 실행합니다:
    docker-compose down
    docker-compose up -d
  • -d 옵션을 사용하여 백그라운드에서 컨테이너를 실행합니다.

6. 프로덕션 및 QA 환경에 대한 Docker Compose 파일 복사

  • Default 환경에서 사용한 Docker Compose 파일을 프로덕션(prod) 및 QA(qa) 환경으로 복사합니다.
  • 각 환경에 맞게 common-config.yml 파일을 수정하여 spring_profiles_active 값을 각각 prodqa로 설정합니다.

7. 컨테이너 상태 확인 및 로그 분석

  • Docker Desktop에서 각 컨테이너의 상태를 확인합니다. 모든 컨테이너가 정상적으로 시작되고 있는지 확인합니다.
  • 특정 컨테이너(예: cards 또는 loans)가 시작되지 않은 경우, 로그를 분석하여 문제를 파악합니다.

8. API 테스트 및 데이터베이스 검증

  • Postman을 사용하여 API를 테스트합니다. 예를 들어, 계정 생성, 카드 생성, 대출 생성 등의 API를 호출하여 응답을 확인합니다.
  • SQL Electron을 사용하여 데이터베이스에 실제로 데이터가 저장되었는지 확인합니다. 각 데이터베이스(accountsDB, loansDB, cardsDB)에 연결하여 테이블에 저장된 데이터를 조회합니다.

9. 외부 데이터베이스 사용 시의 설정 변경

  • 만약 프로젝트에서 외부 개발 데이터베이스 또는 클라우드 데이터베이스를 사용하는 경우, Docker Compose 파일에서 로컬 데이터베이스 설정 대신 해당 환경의 데이터베이스 URL, 사용자 이름, 비밀번호를 환경 변수로 설정합니다.

10. 마무리 및 검증

  • Docker Compose 파일이 올바르게 설정되었고, 모든 마이크로서비스가 MySQL 데이터베이스에 성공적으로 연결되었는지 확인합니다.
  • 모든 설정이 완료되면, 최종적으로 마이크로서비스와 데이터베이스 간의 통신이 정상적으로 이루어지는지 검증합니다.

이 강의를 통해 Docker Compose를 활용하여 마이크로서비스와 MySQL 데이터베이스 간의 연결을 설정하고, 해당 설정이 올바르게 작동하는지 검증할 수 있었습니다. 이를 통해 실제 개발 환경에서 마이크로서비스를 안정적으로 운영할 수 있는 기반을 마련하게 되었습니다.

profile
무슨 생각하며 사니

0개의 댓글