inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

273

나예야

작성한 질문수 2

0

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

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

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

답변 2

0

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 또는 환경 변수 파일을 활용하여 설정을 조정할 수 있습니다.

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

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

EC2 터미널에서 docker pull

0

62

2

AWS ECR

0

57

2

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

1

100

2

Redis 볼륨 설정?

0

117

2

컨테이너의 IP

0

80

2

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

0

105

2

compose.yml 관리

0

87

2

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

0

77

2

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

0

83

1

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

0

76

2

실제 웹 서비스 배포 시 질문

0

80

2

도커 volume 질문

0

67

3

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

0

72

2

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

0

72

2

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

0

69

2

도커파일 copy

0

70

2

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

0

185

2

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

0

85

2

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

0

127

2

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

1

82

1

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

0

110

2

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

0

100

1

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

0

119

2

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

0

86

2