강의 내용에서 보강 하고 싶어서 질문 드립니다 - DEV, PROD 환경
실전에서는 주로 어떻게 하는지 궁금 해서 질문 드립니다.
보통 실전에서는 개발서버 및 상용서버가 각각 물리적으로 분리 된 상태에서 관리를 할텐데요.
현재 선생님께서 알려주신 부분에서 이부분을 어떻게 적용 할지 궁금 해서 질문 드립니다.
AWS EKS 하나로 같이 사용하되 네임스페이스를 논리적으로 분리해서 개발 환경하고 상용 환경을 분리하자
AWS EKS 물리적으로 개발 환경하고 상용 환경을 분리 하기
이렇게 이슈가 있을 것 같습니다. 일단 1번 내용으로 하게 된다면
name: deploy DEV backend
on:
push:
branches:
- dev
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
----- 생략 -----
- name: configure aws
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET }}
aws-region: ap-northeast-2
- name: update cluster infomation
run: aws eks update-kubeconfig --name ${클러스터이름} --region ap-northeast-2
- name: Login to ECR
----- 생략 -----
- name: build and push docker image to ecr
env:
REGISTRY: ${AWS ECR REPOSITORY}
REPOSITORY: ${개발 Repository 명}
IMAGE_TAG: latest
run: |
docker build \
-t $REGISTRY/$REPOSITORY:$IMAGE_TAG \
-f ./project/Dockerfile ./project
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG
- name: eks kubectl apply
run: |
kubectl rollout restart deployment ordersystem-backend -n dev
name: deploy PROD backend
on:
push:
branches:
- prod
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
----- 생략 -----
- name: configure aws
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET }}
aws-region: ap-northeast-2
- name: update cluster infomation
run: aws eks update-kubeconfig --name ${클러스터이름} --region ap-northeast-2
- name: Login to ECR
----- 생략 -----
- name: build and push docker image to ecr
env:
REGISTRY: ${AWS ECR REPOSITORY}
REPOSITORY: ${상용 Repository 명}
IMAGE_TAG: latest
run: |
docker build \
-t $REGISTRY/$REPOSITORY:$IMAGE_TAG \
-f ./project/Dockerfile ./project
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG
- name: eks kubectl apply
run: |
kubectl rollout restart deployment ordersystem-backend -n prod
이렇게 네임스페이스 통해 논리적으로 분리해서 관리 하는 것도 있을 것 같은데요.
하지만 제가 생각 했을때는 단점으로는 SPOF (Single Point Of Failure) 문제가 발생 될 것 같아 고민이 들지만 비용면에서는 1번이 좋을 것 같기도 합니다.
주로 실전에서는 어떻게 관리를 하는지 궁금 합니다! ^_^
답변 2
2
안녕하세요~! 좋은질문이십니다.
개발하시는 서버의 규모가 크고, 사용자가 많다고 하면 클러스터 자체를 분리하는게 더 나아보입니다.
다만, 서비스가 아직까진 소규모다라고 하면 네임스페이스를 분리하여 한 클러스터내에서 작업하는게 더 좋아보입니다.
저는 실무에서 주로 클러스터를 따로 분리한 아키텍처를 사용했었습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 리나님, 질문 주셔서 감사합니다.
AWS EKS를 사용하여 개발 환경(DEV)과 상용 환경(PROD)을 관리하는 방법에 대해 문의 주셨네요. 두 가지 옵션을 고려할 수 있습니다:
EKS 하나를 사용하여 네임스페이스를 통한 논리적 분리:
- 장점: 비용 절감 효과가 있습니다. 하나의 클러스터만 관리하면 되므로 운영 비용과 관리 부담이 줄어듭니다.
- 단점: SPOF (Single Point Of Failure) 문제가 있을 수 있습니다. 클러스터의 장애가 모든 환경에 영향을 줄 수 있어 이것을 방지하려면 추가적인 대비책이 필요합니다.
- 장점: 비용 절감 효과가 있습니다. 하나의 클러스터만 관리하면 되므로 운영 비용과 관리 부담이 줄어듭니다.
물리적으로 DEV와 PROD 환경을 분리:
- 장점: 이 방법은 물리적인 클러스터를 분리하여 각각의 환경에 독립성을 제공합니다. 이는 높은 안정성과 가용성 보장을 가능하게 하며, 한 환경의 문제가 다른 환경에 영향을 주지 않습니다.
- 단점: 비용이 더 많이 들며 각 클러스터를 별도로 관리해야 하므로 운영 복잡도가 증가할 수 있습니다.
- 장점: 이 방법은 물리적인 클러스터를 분리하여 각각의 환경에 독립성을 제공합니다. 이는 높은 안정성과 가용성 보장을 가능하게 하며, 한 환경의 문제가 다른 환경에 영향을 주지 않습니다.
실전에서는 프로젝트의 규모와 예산, 요구 사항에 따라 선택이 달라질 수 있습니다. 일반적으로 규모가 큰 조직은 안정성을 더 중시하여 각 환경을 물리적으로 분리하지만, 스타트업이나 예산이 한정된 프로젝트는 비용 절감을 위해 논리적 분리를 선택하는 경우가 많습니다.
Inflearn의 유사한 질문 및 답변을 참고해보시면 도움이 될 것입니다. 인프런에서 주로 다루는 AWS EKS 환경에서는 어떻게 네임스페이스 관리와 클러스터 운영을 수행하는지에 대한 다양한 예시도 확인해 보실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
맥북으로 RDP 연결 질문
0
13
1
라우팅 테이블 설정 중 궁금한게 있습니다.
0
26
1
수강 연장 가능하면 요청 드립니다.
0
15
2
JPA Repository 질문이 있습니다!
1
28
2
일주일동안 도메인이 DNS에 퍼지지 않고 있습니다.
0
59
1
ingress_nginx.yml 질문
0
59
2
AWS 회원가입 관련 문의
0
55
2
24강에서 depl_svc.yml 질문 있습니다.
1
42
1
rds에 db 인스턴스 크기가 없는데 어떤 걸 선택하면 될까요?
0
79
2
openjdk:17-jdk-alpine이 docker hub에서 삭제된 거 같습니다.
0
197
2
초기 클러스터 생성시 나타나는 오류
0
86
2
3강 spting 빌드환경에서 mysql 부분 질문있습니다.
0
80
2
S3 업로드 역할 부여 질문 드려요
0
64
2
수업 자료는 어디서 확인 가능한가요?
0
112
2
38강 질문입니다.
0
51
2
AWS ECR 로그인이 되지 않습니다.
0
109
2
rds 인바운드 규칙을 추가해도 접속이 안되는 경우가 있네요.
2
144
3
RDS 인바운드 규칙 설정 관련 질문
1
95
2
MSA - member service 배포시 문제
0
96
2
MAS 환경에서 Feign Client 라이브러리를 이용해 HTTP 통신 발생시 에 대한 질문 있습니다.
0
89
1
AWS EKS 클러스터 생성 후 에러 문구 질문
0
232
1
프로젝트 연결
0
105
2
"https통신을 위한 인증서 작업" 영상에서 나오는 notion 정보 어디에 있는 걸까요?
0
100
1
EKS 에서 노드 그룹 생성 실패 질문
1
311
2





