프로젝트 개요
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)
-
'클라우드' 카테고리의 다른 글
[Ncloud] Backup (0) | 2023.12.03 |
---|---|
[Ncloud] 재해복구, DR (0) | 2023.12.03 |
[Ncloud] GlobalTrafficManager (0) | 2023.12.01 |
[CDN] AWS CloudFront, S3 적용 및 mp4 파일 전송 데이터 크기/응답시간 비교 (0) | 2023.11.08 |