인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

나예야님의 프로필 이미지

작성한 질문수

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

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

AWS 배포 시 docker-compose.yml 관리 방법 질문입니다.

작성

·

93

0

현재 강의에서는 aws 인스턴스 에서 직접 compose.yml을 작성하는데 제가 현재 spring boot 프로젝트 루트 경로에 compose.yml을 구현해뒀어도 프로젝트 빌드시에는 yml이 포함되지 않아서 강의와 같이 인스턴스가 직접 생성해줘야하는 지 궁금합니다.

그리고 나중에 ci/cd를 하게 되면 github Actions같은 CI/CD 도구를 이용해야 yml파일이나 .env이런 파일을 직접 인스턴스에 구현하지 않아도 되는 것이 맞는 지 궁금합니다.

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 나예야님! 질문 잘 해주셨어요~!!

우선 compose.yml이 있어야 실행을 시킬 수 있는 상황입니다.

compose.yml을 EC2 인스턴스로 옮기는 방법은 여러가지가 있습니다.

  1. 강의에서처럼 compose.yml을 직접 작성하기

  2. spring boot 프로젝트 경로에 compose.yml을 구현하고 Github Repository에 저장. 그런 뒤에 EC2 인스턴스에 들어가 clone 받아서 사용하기

  3. filezilla와 같이 EC2 인스턴스로 파일 전송하는 툴을 활용해 compose.yml 을 전송

  4. Github Actions의 CI/CD 툴을 활용해 EC2 인스턴스로 compose.yml 파일 자동으로 전송되게 만들기

위 4가지 방법을 활용해서 EC2 인스턴스에 compose.yml 파일을 배치시킵니다!

이 외로 또 궁금하신 점 있으시면 질문 남겨주세요~~

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 나예야님.

AWS에 배포할 때 docker-compose.yml 파일을 어떻게 관리할지에 대한 좋은 질문을 주셨습니다. 현재 상황에서 몇 가지 방법을 통해 이 문제를 해결할 수 있습니다.

docker-compose.yml 파일 관리 방법

  1. 프로젝트와 함께 관리:

    • Spring Boot 프로젝트의 루트에 docker-compose.yml을 두는 것은 좋은 방법입니다. CI/CD 파이프라인에서는 이 파일을 사용하여 다양한 환경에서 동일한 설정으로 컨테이너를 띄울 수 있기 때문입니다.
  2. CI/CD 통합:

    • CI/CD 도구(예: GitHub Actions)를 사용하면 docker-compose.yml 파일과 환경 설정 파일(~.env)을 자동으로 인스턴스로 배포할 수 있습니다. 이 방법을 사용하면 수동으로 인스턴스에 파일을 배포할 필요가 없어집니다. CI/CD 파이프라인에서 코드가 변경될 때마다 자동으로 빌드, 테스트, 배포 단계를 실행할 수 있습니다.
  3. 운영 환경에서의 구성:

    • 로컬 개발 환경과 프로덕션 환경에서 docker-compose.yml 파일을 다르게 구성할 수 있습니다. 환경 변수 파일(.env) 또는 별도의 설정 파일을 사용하여 환경에 따라 설정을 다르게 적용할 수 있습니다.
  4. 다중 환경 지원:

    • 여러 환경(dev/test/prod)을 지원하기 위해, docker-compose.override.yml 또는 환경 변수 파일을 활용하여 설정을 조정할 수 있습니다.

아래는 관련 질문에서 도움이 될 수 있는 유사한 사례들입니다:

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