-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feat] DB 세팅 및 배포 플로우 자동화 기본 작업 #5
Conversation
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
인프라 작업 진행하시느라 너무 수고 많으셨습니다. 제가 인프라 지식이 부족하여 몇가지 질문하고 싶은 게 있어요!
MySQL 세팅 관련
- "로컬에서도 Dev RDS 접근하여 작업하는 구조"라는 것이, 로컬 Application을 실행할 때는 dev RDS에 접근하도록 하고, 로컬 테스트를 실행할 때는 경호님이 구축한 테스트 컨테이너를 활용하는 것이 맞는지 궁금해요!
도커 세팅 관련
- "Dockerfile 빌드 단계와 실행 단계 분리"한 목적이 무엇인지 궁금합니다! 검색해 보았을 때 여러 목적이 언급되었는데 그중에서도 찬기님이 생각하시는 이유가 궁금해요!
- "로컬에서 빌드 테스트할 수 있도록 docker compose 파일 생성"을 해주셨는데, 로컬에서 빌드 테스트를 하는 이유는 배포 전 문제를 사전에 발견하고 안정적으로 배포하기 위함이라고 봐도 될까요?! 로컬에서 빌드 테스트를 해본 경험이 없어 질문 드려요.
CD Flow 관련
- "AWS Public ECR Repo"가 어떤 목적으로 도입되었는지 궁금해요! Dockerhub와 비슷한 역할(빌드된 이미지를 저장하는 용도)을 한다고 봐도 될까요?!
궁금하신 부분은 편하게 모두 물어봐도 된다고 하셔서 제가 이해한 방향이 맞는지 헷갈리는 모든 것을 질문하였습니다.. 감사합니다!
+) 그리고 곳곳에 추가되지 않은 EOL(맨 밑 개행) 추가해주시면 정말 감사하겠습니다 🙇♀️🥹
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다!!
멀티 스테이지 부분의 이점이 이미지 크기가 작아지는 것만으로 좋아보이고, 보안상 좋다고 하는데 도입이 이유가 이게 맞는건지 궁금합니다! 이 부분은 채영님이 잘 정리해서 질문해주셔서 같이 답해주시면 될거 같아요!
MySQL 세팅
넵넵 정확히 말씀주신대로,
Docker 세팅
가장 큰 목적은 이미지 사이즈 최적화 입니다. 저희 로컬과 다르게 EC2 인스턴스는 용량(EBS)이 제한적이어서, 저희가 만약 메인 서비스 Application 이외에 추가 서버나 툴을 도커로 관리한다고 하면 이미지 저장 용량이 금방 꽉차게 됩니다. (⇒ 새 이미지를 배포할 때는 이전 배포 이미지를 항상 삭제함) 따라서 배포에 꼭 필요한 부분만 가져와서 이미지 크기를 줄이는 Multi Stage Build 는 필수적이고, 이미지 크기가 줄어듦에 따라 배포 시간이 단축된다는 장점도 있습니다. 추가로 보안측면에서는,
네네 일반적으로 로컬에서 Application 을 실행하는 환경과 도커환경에서 실행하는 환경이 많이 달라서, 배포하기 전에 확인하는 용도로 사용됩니다. CD Flow
넵! DockerHub 과 동일하다고 생각해주시면 될 것 같습니다.
Private ECR Repo 를 사용하면 더 좋았겠지만, 프리티어 상에서 이미지 용량 제한이 너무 작고 비용적인 문제가 있어 Public Repo 를 사용하게 되었습니다. Public Repo의 경우 AWS Configure 을 하지 않아도 Pull 이 가능하지만, configure 설정 후 pull 하게 되면 ECR 사용량이 덜 제한적이게 되어 IAM Key 설정을 해두는 것이 좋습니다. |
EOL 작업 완! |
H2 대신 저희가 사용하기로 한 MySQL을 기존의 H2를 인메모리에서 사용했던 것처럼 docker가 자동으로 올라갔다가 사라진는 구조입니다! 플로우 자체는 이해하신게 맞아요!! |
관련 이슈가 있다면 적어주세요.
issue #2
📌 개발 이유
기본적인 원격 환경 배포에 필요한 리소스들 세팅 작업
💻 수정 사항
MySQL 세팅
도커 세팅
GitAction 기반 자동 배포 CD Flow
🎯 리뷰 포인트