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

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

양성욱님의 프로필 이미지

작성한 질문수

실전! GitHub Actions으로 CI/CD 시작하기

시나리오 2까지 학습 후 AWS에 관해 질문이 있습니다!

작성

·

103

0

시나리오 2를 실습해 개발 & 운영 환경 배포를 모두 완료했고 ELB(로드 벨런서)가 2개 생성된걸 확인했는데 ec2가 2개 뿐이라 살펴보니 두 ELB가 이 2개의 ec2를 둘 다 바라보고 있어 살짝 혼란이 왔습니다! (개발 & 운영 각각 2개씩 총 4개의 ec2가 생성됨을 예상했습니다!)

이건 강사님이 실습 비용 절약을 위해 쿠버네티스와 helm 설정에 개발 & 운영환경이 같은 ec2 2개를 같이 사용하도록 설정하셔서 그런걸까요? (쿠버네티스를 이번 강의에서 처음 다뤄서 설정 내용 해석이 잘 안되네요..)

답변 2

0

이상원님의 프로필 이미지
이상원
지식공유자

안녕하세요, 양서은님

비용 절감을 위해서, 쿠버네티스 클러스터를 1개 사용하고 네임스페이스를 통해 환경별 분리를 진행했습니다.

eks cluster를 생성하실 때 (create-cluster.yaml) 아래 설정을 사용하셨다면 클러스터 생성 시점에

EC2 (노드) 는 2개가 생성됩니다.
managedNodeGroups:

- name: managed-ng

instanceType: t3.medium

minSize: 2

maxSize: 2

desiredCapacity: 2

volumeSize: 100

=========================

기본적으로 LB는 모든 노드를 로드밸런서에 등록합니다.

파드가 여러 노드에 스케줄링되더라도 트래픽을 전달해야하기 때문에 모든 노드를 등록하는 것이 기본적인 동작 방식이다라고 이해하시면 될 것 같습니다.

 

요약하면, 아래와 같습니다.

a. EC2(노드)가 2개인 이유는, 클러스터를 생성할 때 디폴트로 2개로 설정했기 때문입니다.

b. LB의 기본 동작 방식은 모든 노드를 등록해서, 파드가 또다른 노드에 스케줄링된다하더라도 LB가 트래픽을 전달하기 위함입니다.

 

혹시 더 많은 설명이 필요하시면 언제든 질문주세요~!

 

 

0

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

안녕하세요, 인프런 AI 인턴입니다. 양서은님.

쿠버네티스와 Helm을 활용하여 AWS EKS 환경에서 CI/CD 파이프라인을 구축하며 발생한 혼란에 대해 질문해주셨네요. 시나리오 2에서는 개발 및 운영 환경을 각각 설정하는 과정에서 EC2 인스턴스의 수와 ELB(Elastic Load Balancer) 구성이 매우 중요합니다.

실습 과정에서 ELB가 2개 생성되었음에도 불구하고 EC2가 2개밖에 없다는 점이 혼란스러우셨을 겁니다. 이는 강사님이 동일한 EC2 인스턴스를 개발 및 운영 환경 모두에 사용하도록 설정했기 때문입니다. 비용 절감을 고려하여 쿠버네티스 클러스터의 노드 수를 최소화하면서 서로 다른 환경을 같은 물리적 자원 위에서 운영하는 설정을 하신 것으로 보입니다.

원칙적으로라면, 개발과 운영 환경이 서로 독립적이어야 하므로 각각의 환경에 대응하는 EC2 인스턴스를 상정하는 것이 일반적입니다. 하지만 실습 과정에서 리소스 관리를 최적화하기 위해 이러한 구성이 선택된 것입니다.

혹시 다른 설명 또는 도움이 필요하신 부분이 있다면 추가 질문해 주세요. 이와 관련하여 더 깊은 이해를 돕기 위해 아래 링크를 참조해 보시길 권장드립니다.

이 질문들이 환경 설정과 관련된 유사한 문제를 다루고 있어 도움이 될 수 있습니다.

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