본문 바로가기

클라우드

EKS를 이용한 3-Tier 구성

프로젝트 개요

VPN을 통한 하이브리드 클라우드 및 CICD Pipeline 구성

구축 환경

AWS(Amazon Web Services) 및 Github, Flask

주요 사용 기술

Nginx, VPN, EKS, ACM, ALB, CloudWatch, Fluentd, HPA, Github(action)

고려사항

가용성, 확장성, 편리성, 보안성, Log 관리

프로젝트 내용

[ 운영 환경 구성도 ]

On-premise : GCP VM에 설치되어있는 Mysql로 구성해 VPN 연결

  • AWS managed Kubernetes 서비스인 EKS 사용
  • 하이브리드 클라우드 구성
  • Web-Was-DB가 연동되도록 3-Tier 구축
  • 개발환경은 Full-Container Stack으로 구성

 

[ 핵심 구현 기술 (고려사항) ]

  1. Kubernetes Service
    1. SVC, Ingress, Deployment, Init container, Secret, configMap, PV/PVC
    2. HPA, Cluster Autoscaling(확장성)
  2. Amazon Cloud Native Service
    1. ACM(AWS Certificate Manager) (보안성)
    2. CloudWatch : Log 관리(*수집 : Flunted 활용)
    3. ALB : Ingress Controller(편리성)
    4. VPN (터널 이중화를 통한 가용성)
  3. Github
    1. CI : GitHub(버전 관리 및 Code repository)
    2. 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 ]

  1. GitHub code push
  2. Container Image build
  3. Image push (To Docker Hub)
  4. Deployment update (To EKS)
      1.