EKS : 관리형 쿠버네티스 서비스
컨테이너는
가상 서버에 비해 굉장히 가볍고 이식성이 좋다
한 번 패키징해놓으면 다시 사용하기 쉽다
따라서,
컨테이너는 다양한 분야에 걸쳐 유용하게 사용된다.
특히, 비즈니스 특성상 트래픽 편차가 심한(세일, 마케팅 이베트 등)
이커머스 리테일 분야에서 유용하다.
대량의 트래픽이 들어오더라도 컨테이너가 있다면 빠르고 쉽게 대응이 가능하기 때문이다.
컨테이너 규모에 따른 오케스트레이션
단일 컨테이너 또는 컨테이너 그룹으로 운용할 수 있다.
이때 컨테이너 그룹을 관리하는 것은 꽤 어렵기 때문에,
컨테이너 오케스트레이션이 필요하다.
컨테이너 런타임을 묶어서 클러스터링 한다.
오케스트레이션 플랫폼이 하는 역할
1. 스케줄링 : OS에 컨테이너 배치, 스케일링, 업그레이드, 롤백
2. 서비스 관리 : 대용량 환경에서 분산 어플리케이션을 관리
> 가용성 보장(다중 가용성 영역에서 운영되는지 보장)
> 라이프사이클(플랫폼 내에서 컨테이너 생성 삭제 등의 라이프 사이클 관리)
> 서비스 디스커버리(서비스가 살아있고 트래픽을 받을 준비가 되어 있는지 확인)
3. 리소스 관리 : 얼마나 많은 리소스를 이용할 수 있는지 (Memory , CPU 등)
AWS EKS 특징
1. 주요 마스터 컴포넌트들을 완전 관리형 서비스로 제공
2. AWS 서비스들과 밀접하게 통합: ECR(이미지레파지토리) , LB,인증, 보안, 네트워크, 스토리지 등
3. 커뮤니티(깃허브)와 함께 구축
4.호환성: 커뮤니티에 있는 다양한 플러그인 사용 가능
EKS구성요소
1.컨트롤 플레인(마스터노드) : 완전관리형으로 제공
2.데이터 플레인 : 컨테이너 런타임을 끼워주는 역할
EKS 아키텍처
> Network Load Balancer: 다중영역 부하분산
> ENI
EKS 장점
온프레미스 기반, 가상서버로 구축, 퍼블릭클라우드 등
쿠버네티스를 사용하는 방법은 아주 다양하다.
그 중
쿠버네티스 사용에 있어서 EKS의 장점은?
EKS 장점1. 빠르고 쉬운 플랫폼 설치
호환성의 문제를 해결해준다:
이전에는 다양한 온프레미스에 맞는 설치 환경을 맞추는게 어려웠다
EKS을 활용하면, 클라우드 포메이션으로 설치할 수있고 eksctl이라는 툴로 설치 가능해진다
EKS 장점2. 멀티AZ기반 가용성
장애없는 무중단 서비스에 있어 가용성은 매우 중요한 문제이다.
AZ란, 단순한 물리적 데이터 센터의 위치를 말하는것이 아니라,
두 개의 데이터 센터를 고속으로 연결( 그 거리는 가용성이 보장되는 거리)해서 구성되는 영역
EKS 장점3. 용량관리 및 탄력성(Master)
EKS는 데이터플레인과 컨트롤플레인이 분리되어있다.
멀티 AZ에 각 컴포넌트들이 배치되어, 용량 관리에 대한 걱정 없이 사용 가능하다.
EKS 장점3. 용량관리 및 탄력성(Worker)
1) 개별적으로 관리하거나
2) 오토스케일링 그룹 노드 그룹 활용 : 데이터플레인
3) FARGATE 사용 : 데이터플레인 용량 관리 걱정 없이 사용 가능
EKS 장점4. 인그레스 컨트롤러
안정성을 충분히 입증받은 ALB 인그레스 컨트롤러
EKS 장점5. Egress 트래픽 제어
CNI 플러그인이 IP를 받아온다
a와 b pod, c와d pod은 각자 인스턴스에 함께 배치
rds는 특정 팟으로부터만 접근되어야 한다면
소스ip에서 허용트래픽 제어 가능
만약 오버레이를 사용하면 어려운데,
Eks는 네이티브vpc를 사용하기 때문에 이것이 가능
EKS 장점6. 간편한 스토리지 연동
... ebs efs fsX ...
CSI(Container Storage Interface)드라이버로 간단히 연결이 가능하다.
이미지 레파지토리 연동에도 스토리지가 필요
API로 연동가능한 EKS의 스토리지연동의 특징
EKS 장점7. 모니터링 및 로깅
가장 일반적인 모니터링 방식: 프로메테우스
로깅같은 경우: eLASTIC서치, 키바나 등을 활용
EKS에서는 컨테이너 관리를 위해
클라우드 와치 컨테이너 인사이트와 같은 완전관리형 서비스
클라우드 워치 로그를 통해 로깅 확인까지 한번에
쉽게 구성 가능
비용 효율적 클러스터 만들기
스팟 인스턴스를 적절히 활용가능 (온디맨드 대비 최대 90퍼까지 낮은가격제공)
하지만,
스팟 인스턴스는 2분 전 경고 후 다른 자원으로 대체될 수 있다는 위험
따라서, 클러스터의 Worker 노드를
모두 스팟인스턴스로 구성하거나
On-Demand 와 혼용하여 구성하는 것도 필요하다.
하나의 클러스터 안에 여러개의 노드그룹 배치하면,
효율적인 구성이 가능해진다.
어플리케이션 배포시 태그를 통해 적절한 인스턴스 배치
: 스테이징, 개발 환경의 경우 스팟 인스턴스에 배치하는 등
간단한 데모 시연
EKSTL CREATE CLUSTER --NAEM RETIAL --MANAGED --NODES 2 - NODE-TYPE T3.MEDIUM
자동으로 다중 자동영역에 서브넷 할당 및 마스터가 구성된다.
AWS 클라우드포메이션을 기반으로 자동화 구성된다.
15분 정도 기다리면 신규 클러스터가 구성된다.
이후 사용명령어는, 쿠버네티스 명령어와 동일하다.
kubectl get all -n default
get nodes
추후 내가 해야할 것
aws eks 관련 실습을 진행하여, 완전관리형 통합 서비스 제공을 경험해보자.
'자기발전소 > # AWS' 카테고리의 다른 글
AWS 공부: Key Pair (0) | 2020.12.21 |
---|---|
AWS 공부 : EC2 (0) | 2020.11.30 |
AWS 공부 : Public IP / Private IP / Elastic IP (0) | 2020.11.15 |
[AWS 웨비나 기록] Retail 산업에서의 AI활용 (0) | 2020.11.13 |
AWS의 ACL과 보안그룹 (0) | 2020.11.01 |