서버/AWS

Amazon EKS에 Spring Boot 은행 애플리케이션 배포하기 단계별 가이드

leeveoh 2025. 6. 23. 10:52
728x90

안녕하세요, 개발자 여러분! 오늘은 Amazon EKS(Elastic Kubernetes Service)를 활용하여 Spring Boot 기반 은행 애플리케이션을 배포하는 방법을 알아보겠습니다. 이 프로젝트는 Kubernetes와 ArgoCD를 사용하여 지속적인 배포를 구현하며, MySQL 데이터베이스를 함께 관리하는 데 초점을 맞춥니다. 단계별로 따라하면 클라우드 환경에서 완전히 작동하는 은행 애플리케이션을 구축할 수 있습니다!

프로젝트의 가치

  • 실제 애플리케이션을 Kubernetes 클러스터에 배포하는 실무 경험을 쌓을 수 있습니다.
  • GitOps 기반 지속적 배포(CD)를 구현하는 방법을 배울 수 있습니다.
  • Kubernetes 환경에서 MySQL 데이터베이스를 관리하는 법을 탐구할 수 있습니다.

시작 전 준비물

  1. Docker 및 Docker-Compose 설치

    • Spring Boot 애플리케이션을 컨테이너화하여 로컬에서 실행하고 테스트합니다.
  2. AWS 계정 및 AWS CLI 구성

    • Amazon EKS와 상호작용하려면 AWS 계정과 IAM 사용자가 필요합니다.
  3. Docker와 Kubernetes 기본 지식

    • 컨테이너 이미지 빌드, Kubernetes의 Pod 및 Deployment 개념을 이해하고 있다면 프로젝트를 더 쉽게 따라갈 수 있습니다.

로컬에서 애플리케이션 테스트

  1. GitHub 저장소 클론
    bash
    git clone https://github.com/Pravesh-Sudha/Springboot-BankApp.git
    cd Springboot-BankApp/
  1. Docker-Compose 실행
    bash
    docker-compose up --build

    • Spring Boot 애플리케이션과 MySQL 데이터베이스가 함께 시작됩니다.
  2. 애플리케이션 확인

    • 브라우저에서 http://localhost:8080에 접속하여 로그인 화면을 확인하세요.

Amazon EKS 클러스터 설정

  1. kubectl 및 eksctl 설치

    • EKS 클러스터 관리를 위해 필수 도구를 설치합니다.
  2. EKS 클러스터 생성
    bash
    eksctl create cluster --name=bankapp --region=us-west-1 --version=1.30 --without-nodegroup

    • 클러스터 생성 후 OIDC 공급자를 연결하고 노드 그룹을 추가합니다.

ArgoCD를 사용한 지속적 배포

  1. ArgoCD 설치
    bash
    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

    • ArgoCD 대시보드를 외부에서 접근 가능하도록 LoadBalancer로 설정합니다.
  2. Bank App 배포

    • ArgoCD 대시보드에서 새로운 애플리케이션을 생성하고 Git 저장소를 연결합니다.
  3. 애플리케이션 접근

    • EC2 퍼블릭 IP와 NodePort를 사용하여 애플리케이션에 접속합니다.

결론 및 다음 단계

이 프로젝트를 통해 클라우드 환경에서 Kubernetes와 GitOps를 활용한 자동화된 배포 과정을 익혔습니다. 앞으로는 Helm 차트, CI/CD 파이프라인 통합, AWS RDS 사용 등으로 프로젝트를 확장해보세요. 이를 통해 클라우드 네이티브 애플리케이션 배포에 대한 심층적인 이해를 얻을 수 있습니다.

계속 실험하고, 배우고, 성장하세요!