클라우드
EKS를 이용한 3-Tier 구성
uni.2
2024. 1. 29. 00:04
프로젝트 개요
VPN을 통한 하이브리드 클라우드 및 CICD Pipeline 구성
구축 환경
AWS(Amazon Web Services) 및 Github, Flask
주요 사용 기술
Nginx, VPN, EKS, ACM, ALB, CloudWatch, Fluentd, HPA, Github(action)
고려사항
가용성, 확장성, 편리성, 보안성, Log 관리
프로젝트 내용
[ 운영 환경 구성도 ]
- AWS managed Kubernetes 서비스인 EKS 사용
- 하이브리드 클라우드 구성
- Web-Was-DB가 연동되도록 3-Tier 구축
- 개발환경은 Full-Container Stack으로 구성
[ 핵심 구현 기술 (고려사항) ]
- Kubernetes Service
- SVC, Ingress, Deployment, Init container, Secret, configMap, PV/PVC
- HPA, Cluster Autoscaling(확장성)
- Amazon Cloud Native Service
- ACM(AWS Certificate Manager) (보안성)
- CloudWatch : Log 관리(*수집 : Flunted 활용)
- ALB : Ingress Controller(편리성)
- VPN (터널 이중화를 통한 가용성)
- Github
- CI : GitHub(버전 관리 및 Code repository)
- CD : GitHub action 자동 배포
3-Tier 상세 구성도 및 설정
Frontend Tier
[ Ingress ]
Ingress controller : AWS ALB
TLS : ACM
[ svc ]
Type : NodePort
[ deployment ]
Web : Nginx
[ configmap ]
nginx.conf 파일 구성
Backend Tier
[ svc ]
Type : Cluster IP
[ deployment ]
Was : Flask
DataBase Tier (개발 환경)
[ svc ]
ClusterIP: None
[ statefulset ]
DB Pod 구성
[ secret ]
Mysql 접속을 위한 환경변수 설정
[ PV/PVC ]
데이터를 보존하기 위해 영구 볼륨 사용
CICD Pipeline
[ GitHub Workflow ]
- GitHub code push
- Container Image build
- Image push (To Docker Hub)
- Deployment update (To EKS)
-