inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

비전공자도 이해할 수 있는 CI/CD 입문·실전

비용 나가지 않게 사용한 AWS 서비스들 정리하기

cicd 전과정 잘 들었습니다

해결된 질문

104

염경호

작성한 질문수 12

0

안녕하세요! 강의 잘 들었습니다. 저는 여기에 추가로 rds로 db 연결, 그리고 Dockerfile 세팅작업에서 나아가 compose.yml로 nginx,redis 등 세팅 해주려 하는데 그것도 이 기본 세팅 위에서 작업하면 되는건가요..? 감사합니다. 그리고 단일 프로젝트에서는 codedeploy까지는 안해도 괜찮은 건지 궁금하고 추후 무중단 배포로 갈때는 blue/green 이런 전략을 찾아보고 채택하면 되는지 질문드립니다!

aws docker ci/cd github-actions aws-code-deploy infrastructure aws-ec2

답변 2

0

JSCODE 박재성

안녕하세요 경호님! 강의 잘 들어주셔서 감사합니다ㅎㅎ

저는 여기에 추가로 rds로 db 연결, 그리고 Dockerfile 세팅작업에서 나아가 compose.yml로 nginx,redis 등 세팅 해주려 하는데 그것도 이 기본 세팅 위에서 작업하면 되는건가요..?

-> 네! 그렇게 하셔도 됩니다:) 그리고 추가로 compose.yml에 같이 작성하면 좋은 컨테이너와 같이 작성하지 않는 게 좋은 컨테이너를 구분하는 기준도 한 번 찾아서 공부해보셔도 좋을 것 같네요!

단일 프로젝트에서는 codedeploy까지는 안해도 괜찮은 건지 궁금하고 추후 무중단 배포로 갈때는 blue/green 이런 전략을 찾아보고 채택하면 되는지 질문드립니다!
-> 추가로 codedeploy와 blue/green 배포는 현업에서도 자주 사용되는 툴이라 공부하시는 것도 좋은 방향이라고 생각합니다!

 

이 외로 궁금하신 점 있으시면 편하게 댓글 남겨주세요~~

1

염경호

네 감사합니다. 학습에 도움이 많이 되었습니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 염경호님.

강의를 잘 수강하셨다니 기쁩니다! 추가적인 설정을 하고 싶으신 부분에 대해 몇 가지 유용한 정보를 드리겠습니다.

  1. RDS로 DB 연결: 이미 EC2 또는 다른 인스턴스에서 Docker 기반으로 애플리케이션을 배포하고 있다면, RDS를 통해 데이터베이스 연결 설정을 Docker Compose 파일에서 환경 변수로 관리할 수 있습니다. docker-compose.yml 파일 내에 데이터베이스 관련 환경 변수(DB_HOST, DB_NAME 등)를 추가하여 사용하면 됩니다.

  2. Docker Compose로 Nginx 및 Redis 설정: 현재의 docker-compose.yml 파일에 Nginx 및 Redis 컨테이너 설정을 추가하여 여러 서비스를 동시에 관리할 수 있습니다. Nginx의 경우, 애플리케이션 컨테이너와 포트를 연결하여 프록시 서버로 설정할 수 있으며, Redis는 애플리케이션 캐시 기능을 담당합니다.

   version: '3.8'
   services:
     web:
       build: .
       ports:
         - "80:80"
       ...

     nginx:
       image: nginx:latest
       ports:
         - "8080:80"
       ...

     redis:
       image: redis:latest
       ports:
         - "6379:6379"
       ...
  1. 단일 프로젝트에서 CodeDeploy 사용 여부: 단일 프로젝트라면 반드시 CodeDeploy를 사용할 필요는 없습니다만, 지속적인 통합 및 배포 자동화의 측면에서는 유용합니다. 다만, 초기에는 GitHub Actions 같은 CI/CD 도구로 시작해도 충분할 수 있습니다.

  2. 무중단 배포: 말씀하신 대로, 무중단 배포를 원하신다면 Blue/Green 배포 전략이나 Canary 배포 방식을 고려해보는 것이 좋습니다. 이 전략들은 새로운 버전의 애플리케이션을 안전하게 배포하는 데 매우 효과적입니다.

추가적으로 유사한 질문을 다룬 게시물도 참조하여 구현의 방향을 설정하시면 도움이 될 것입니다:

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

무중단 배포

0

56

2

workflows/deploy.yml 궁금증

0

52

2

.git-credentials 파일이 없이 배포가 성공한 이유가 궁금

0

57

1

(해결 - 정보공유) /home/runner/work/_temp/6be6e~0.sh: line 1: ./gradlew: Permission denied 오류

1

63

2

(확인 완료) git config --global creadential.helper store 후에도 비밀번호 물어보는 현상

1

71

2

질문_ 강의 순서 및 그외

0

70

2

섹션 4 - Docker + 백엔드(Spring Boot)

0

63

2

deploy.yml작성후 원격에 push불가

0

62

2

CodeDeploy 사용시 registration 요구

0

104

3

스프링 종료 명령어

0

68

2

RAM & 스왑메모리 폭증하는 문제

0

102

2

섹션 4, 5와 6, 7은 유사한가요?

0

66

1

code deploy 배포입니다.

0

98

3

사용자 삭제가 안되는 이유

0

86

2

이미지 pull중 no basic auth credentials 문제입니다.

0

113

2

Docker Compose파일을 작성했을때 CI CD와의 연동

0

96

2

보안그룹 생성 오류

0

84

3

AWS 5월에 탈퇴해서 그러는데....

0

81

1

배포 오류

0

80

2

node.js 설치시 에러

0

149

2

appspec.yml, 스크립트 파일 수정요청

0

82

2

appleboy/ssh-action stop_script 대체

1

179

2

Vue.js 파일 배포

0

61

2

aws를완강하고 ci/cd로 넘어왔습니다.

0

85

1