EKS, NLB, Istio을 통한 고가용성 API gateway 핸들링 하기
Devops팀장 , 카카오페이
<1> 개요
<2> 데이터 센터 구성
<3> 현대적 애플리케이션이란?
<4> 금융 서비스 요청사항 개선 내용 (문제점, 개선방향)
<5> API Gateway on EKS
<6> 경험했던 내용 공유
<7> 개인 정리
<1> 개요
쿠버 네티스 + Istio 서비스 중
비 중요 서비스들 일부 AWS에 서비스 중이다.
인프라 관련 부분임.
애플리케이션은 다루지 않음.
<2> 데이터 센터 구성
1
퍼블릭 존과 프라이빗 존으로 구성되어 있다.
프라이빗 존은 90% 이상 컨테이너 기반인 쿠버 네티스 환경에서 서비스 애플리케이션들이 운영되고 있다.
2
퍼블릭존에서 프라이빗으로 전달은 리버스 프락시로 한다.
초기에는 엔서블로 구성.
<3> 현대적 애플리케이션이란?
1
빠른 출시, 프로세스 자동화
애플리케이션 모듈화
복원력, 회복력
확장성, 가용성
2
테라폼으로 관리한다.
GitOps툴인 아틀란티스를 연동해서 AWS자원들을 상태 관리하고 배포하고 있다.
모든 배포 이력은 Git PR에 태그 정보를 통해 관리된다.
3
애플리케이션 배포는 젠킨스, Spanaker을 통합해 CI/CD영역을 각각 담당한다.
마이크로 서비스는 EKS에서 배포되어 , 쿠버 네티스와 ISTO를 통해 롤링 업데이트와 카나리 배포를 한다.
EKS는 오토스케일링한다.
서비스 그룹별로 nodegroup 분리해 사용, spot 사용.
<4> 금융 서비스 요청사항 개선 내용 (문제점, 개선방향)
1
public , private 영역을 물리적 단위로 분리
=> vpc 단위로 분리
2
vpc to vpc 통신이 필요.
=> api통신은 도메인 기반의 route53 사용하여 통신함.
3
모든 출발과 목적지는 고정 IP 기반으로 처리가 되어야 한다.
외부 통신은 EIP 필수.
IP범위 단위로 관리하면 안 된다.
4
온프라미스 ----------- AWS로 전환?
LB ------------------------ NLB (프리 웜이 필요 없는 NLB , 고정 IP 제공 필수)
쿠버 네티스 ------------ EKS
proxy --------------------
APIGateway -------- ISTIO로 전환.
5
테라폼으로 쿠버네티스 관리.
6
VPC간은 방화벽, NACL , 시큐리티 그룹으로 통신 구간의 허용과 차단 정책이 관리됩니다.
7
Istio로 트래픽 관리한다.
<5> API Gateway on EKS
구조?
모바일 디바이스 --- NLB ------------- Envoy --------- 서비스
오피스
이처럼 외부에 모든 통신은 Route53으로 등록된 DNS기반으로 사용한다.
<6> 경험했던 내용 공유
1
EKS custom cidr 확장은 사전에 고려 필요하다.
2
보안 그룹 룰에 100. 대의 커스템 CIDR IP 가 고려되어야 한다.
3
서비스 성격 별로 NodeGroup을 충분히 분리하세요.
spot을 활용하는데 도움이 된다.
<7> 개인 정리
Istio에 대해 자세한 설명이 된다.
감사합니다.