inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

143

양성욱

작성한 질문수 6

0

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

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

aws kubernetes ci/cd github-actions eks

답변 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 인스턴스를 상정하는 것이 일반적입니다. 하지만 실습 과정에서 리소스 관리를 최적화하기 위해 이러한 구성이 선택된 것입니다.

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

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

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

자료가 깨진 것 같습니다.

0

58

2

강의자료 다운로드

0

75

2

로드밸런서 연결 실패

0

56

1

섹션5 시나리오2 워크플로우 구성하기

0

69

1

섹션4-7. high 이슈 추가 시 slack의 high-test 채널로 상세 알림 미전송

0

77

2

github-actions repo의 create-cluster.yaml과 init.sh 사용

0

91

2

슬랙 연동 안됨

0

315

3

visual studio code 터미널에서 github-actions 경로 설정 어떻게 하는 건가요?

0

118

2

강의자료 다운로드 문제

0

115

3

깃헙 레포 생성 자동화 구성하기 2 관련 질문드립니다.

0

165

1

강의 자료 파일이 깨진거 같습니다

0

128

2

runs-on 질문

0

114

2

cloud9 이 종료되어서 진행하기가 힘듧니다.

0

413

2

트렁크 베이스로 개발할 경우

0

172

2

region 도쿄로 안하시는 분들

0

184

2

Tag를 이용한 QA 환경 배포와 워크플로우 구성 질문

0

275

2

애플리케이션 실행시 환경 변수에 대해서

0

202

2

처음 강의에서 push.yaml을 workflows 폴더에서 part1으로 옮겼을때

0

199

2

이벤트 트리거 pull_request의 types

0

298

2

강의자료 다운

1

181

2

cloud9 서비스 종료

0

789

2

시나리오2에서 여러 릴리즈 브랜치를 한 번에 운영환경에 배포

0

179

1

처음 push.yaml 에서 actions로 넘어갈때

0

325

2

도커 볼륨 vs RDS, 롤백

0

195

1