8. EKS 활용 사례 2 (배포)

Update : 2025.08.07

0. 사전 설정

Deployment에 대한 활용사례를 실습하기 위해, Sample Application을 사전 배포합니다.

cd ~/environment/
#Sample Application 을 Clone 하고, 실행합니다.
git clone https://github.com/aws-samples/eks-workshop-v2.git
kubectl apply -k ~/environment/eks-workshop-v2/manifests/base-application

Sample Application이 정상적으로 동작하는 지 확인합니다.

kubectl get namespaces -l app.kubernetes.io/created-by=eks-workshop
kubectl get deployment -l app.kubernetes.io/created-by=eks-workshop -A

30~40초 후에 아래와 같은 결과를 확인할 수 있습니다.

$ kubectl get deployment -l app.kubernetes.io/created-by=eks-workshop -A
NAMESPACE   NAME             READY   UP-TO-DATE   AVAILABLE   AGE
carts       carts            1/1     1            1           36s
carts       carts-dynamodb   1/1     1            1           36s
catalog     catalog          1/1     1            1           36s
checkout    checkout         1/1     1            1           36s
checkout    checkout-redis   1/1     1            1           36s
orders      orders           1/1     1            1           36s
ui          ui               1/1     1            1           36s

1. EKS 관리를 위한 Cusotm Agent와 Context 설정

1.1 Custom Agent 설정

EKS 관리를 위한 별도의 Custom Agent를 설정해 봅니다.

실행 후 제공되는 vi editor 창에 아래와 같은 eks agent용 JSON 파일을 입력합니다.

1.2 컨텍스트 파일 생성 (eksadmin.md)

q chat 창에서 빠져나와서 , shell 모드로 변경합니다.

아래와 같이 eksadmin agent를 위한 context를 추가합니다.

이 파일은 다음과 같은 행동 규칙을 Amazon Q에게 전달합니다:

  • eks 관리자 역할을 명시

  • region (ap-northeast-2), eks cluster name (eksworkshop)을 명시

  • 모든 결과를 한글로 출력하고, 기술용어를 한글과 영어로 동시 표기 명시

  • 결과는 markdown으로 저장할 것을 명시

  • “application”은 ~/environment/eks-workshop-v2/manifests/base-application 경로의 앱을 의미함

  • 업데이트 전 YAML 파일을 수정해야 함

  • kustomize 플래그 -f 를 루트 디렉터리에 사용

  • 다이어그램은 .md 파일로, Mermaid 형식으로 작성

1.3. Custom Agent 세션 시작

eks custom agent로 실행합니다.

아래와 같은 실행 창을 확인 할 수 있습니다.

1.5 현재 적용된 컨텍스트 확인

실행 결과는 아래와 같습니다:

💡 출력 결과에 eksadmin.md가 포함되어 있으면 컨텍스트 설정이 정상적으로 완료된 것입니다.


2. 애플리케이션 검토 (Review Application)

2.1 어플리케이션 리뷰 (Review Application)

프롬프트:

설명:

  • 지정된 경로에 있는 애플리케이션이 어떤 구성으로 되어 있는지, 어떤 마이크로서비스로 나뉘는지에 대해 요약 설명을 요청합니다.

실행 결과는 아래와 같습니다:

makrdown 예시 arrow-up-right

2.2 애플리케이션 배포 (Deploy Application)

프롬프트:

설명:

  • kubectl apply -k 명령을 사용하여 base-application을 클러스터에 배포합니다.

  • Q CLI는 kustomize를 이용한 배포를 자동 실행합니다.

실행 결과는 아래와 같습니다:

makrdown 예시 arrow-up-right


2.3 애플리케이션 준비 상태 확인 (Application Readiness)

프롬프트:

설명:

  • 배포된 파드들이 모두 Ready 상태가 될 때까지 기다립니다. Q CLI가 상태를 추적해 알려줍니다.

실행 결과는 아래와 같습니다:

makrdown 예시 arrow-up-right

2.4 애플리케이션 업데이트 (Update the Application)

프롬프트:

설명:

  • checkout 디플로이먼트의 복제 수(replicas)를 3으로 변경합니다.

  • YAML 파일 수정 → 적용(kustomize) 순으로 진행됩니다.

실행 결과는 아래와 같습니다:

makrdown 예시 arrow-up-right


3. 토폴로지 시각화 (Topology Diagram)

프롬프트:

설명:

현재 클러스터에 실행 중인 애플리케이션의 서비스 간 구조를 mermaid 기반 다이어그램으로 생성합니다.

MkDocs 또는 GitBook에서 시각화 가능한 Markdown 코드로 출력됩니다.

makrdown 예시 arrow-up-right

Last updated