Amazon EKS 환경에서의 Q CLI
1.Amazon Q Developer CLI Basics
Amazon Q Developer CLI는 터미널에서 실행되는 AI 기반 도우미로, 개발자의 질문에 응답하고, 코드를 생성하며, AWS 환경과 상호작용할 수 있는 대화형 채팅 인터페이스를 제공합니다.
2. 시작하기: Chat 세션 열기
q chat
실행하면 다음과 같은 대화형 프롬프트가 열립니다:
To learn more about MCP safety, see https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-security.html
Welcome to
█████╗ ███╗ ███╗ █████╗ ███████╗ ██████╗ ███╗ ██╗ ██████╗
██╔══██╗████╗ ████║██╔══██╗╚══███╔╝██╔═══██╗████╗ ██║ ██╔═══██╗
███████║██╔████╔██║███████║ ███╔╝ ██║ ██║██╔██╗ ██║ ██║ ██║
██╔══██║██║╚██╔╝██║██╔══██║ ███╔╝ ██║ ██║██║╚██╗██║ ██║▄▄ ██║
██║ ██║██║ ╚═╝ ██║██║ ██║███████╗╚██████╔╝██║ ╚████║ ╚██████╔╝
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚══▀▀═╝
╭───────────────────────── Did you know? ─────────────────────────╮
│ │
│ You can use /editor to edit your prompt with a │
│ vim-like experience │
│ │
╰─────────────────────────────────────────────────────────────────╯
/help all commands • ctrl + j new lines • ctrl + k fuzzy search
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
이 환경에서 Amazon Q는 다음과 같은 작업을 도와줄 수 있습니다:
AWS 서비스에 대한 질문
인프라 구성, EKS, IAM, S3 등 Best Practice 안내
코드 스니펫 생성
쉘 명령어 실행
문제 해결 및 디버깅 조언
로컬 파일 읽기/쓰기 (허용 시)
3. EKS 환경에서의 예시 프롬프트
예시1. EKS 보안 권장 사항 묻기 프롬프트:
“EKS 클러스터를 보호하기 위한 몇 가지 모범 사례는 무엇인가요?”
실제 결과
EKS 클러스터를 보호하기 위한 모범 사례는 다음과 같습니다:
1. 네트워크 보안
• 프라이빗 서브넷에 워커 노드 배치
• 보안 그룹을 사용하여 트래픽 제한
• AWS PrivateLink 또는 VPC 엔드포인트 사용
2. IAM 및 RBAC 구성
• 최소 권한 원칙 적용
• IAM 역할과 Kubernetes RBAC 통합
• 서비스 계정에 IAM 역할 사용 (IRSA)
3. 암호화 및 보안 설정
• EKS 클러스터 및 EBS 볼륨에 대한 암호화 활성화
• Secrets 암호화 구현
• AWS KMS 키 사용
4. 컨테이너 보안
• 신뢰할 수 있는 이미지만 사용
• 이미지 스캐닝 구현 (ECR 스캐닝 또는 서드파티 도구)
• 컨테이너 실행 시 루트 권한 제한
5. 모니터링 및 감사
• AWS CloudTrail 활성화
• Amazon GuardDuty EKS Protection 사용
• Kubernetes 감사 로그 활성화
6. 패치 및 업데이트
• EKS 클러스터 및 노드 그룹 정기적 업데이트
• 자동 업데이트 메커니즘 구현
7. 추가 보안 도구
• AWS Security Hub 사용
• AWS Config 규칙 구현
• Calico 또는 AWS VPC CNI 플러그인을 통한 네트워크 정책 적용
8. Pod 보안
• Pod Security Standards 적용
• SecurityContext 설정으로 권한 제한
• 리소스 제한 설정
이러한 모범 사례를 구현하면 EKS 클러스터의 보안 태세를 크게 향상시킬 수 있습니다.
예시2. nginx 배포 YAML 생성 프롬프트:
~/environment/myeks 디렉토리에 nginx-deployment.yaml이라는 이름으로 기본 Kubernetes nginx 배포를 위한 YAML 파일을 생성해주세요.
실제 결과
Kubernetes nginx 배포를 위한 기본 YAML 파일을 생성하겠습니다.
🛠️ Using tool: fs_write
⋮
● Path: /home/ec2-user/nginx-deployment.yaml
+ 1: apiVersion: apps/v1
+ 2: kind: Deployment
+ 3: metadata:
+ 4: name: nginx-deployment
+ 5: labels:
+ 6: app: nginx
+ 7: spec:
+ 8: replicas: 3
+ 9: selector:
+ 10: matchLabels:
+ 11: app: nginx
+ 12: template:
+ 13: metadata:
+ 14: labels:
+ 15: app: nginx
+ 16: spec:
+ 17: containers:
+ 18: - name: nginx
+ 19: image: nginx:1.14.2
+ 20: ports:
+ 21: - containerPort: 80
+ 22: resources:
+ 23: limits:
+ 24: cpu: "0.5"
+ 25: memory: "512Mi"
+ 26: requests:
+ 27: cpu: "0.2"
+ 28: memory: "256Mi"
+ 29: ---
+ 30: apiVersion: v1
+ 31: kind: Service
+ 32: metadata:
+ 33: name: nginx-service
+ 34: spec:
+ 35: selector:
+ 36: app: nginx
+ 37: ports:
+ 38: - port: 80
+ 39: targetPort: 80
+ 40: type: ClusterIP
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:
> t
Creating: /home/ec2-user/nginx-deployment.yaml
⋮
● Completed in 0.0s
nginx-deployment.yaml 파일을 성공적으로 생성했습니다. 이 파일에는 다음 내용이 포함되어 있습니다:
1. Deployment 리소스:
• 3개의 복제본(replicas)
• nginx:1.14.2 이미지 사용
• 포트 80 노출
• 리소스 제한 설정:
• CPU 제한: 0.5 코어, 요청: 0.2 코어
• 메모리 제한: 512Mi, 요청: 256Mi
2. Service 리소스:
• ClusterIP 타입 서비스
• 포트 80을 통해 Deployment에 연결
이 YAML 파일을 사용하여 Kubernetes 클러스터에 nginx를 배포할 수 있습니다:
bash
kubectl apply -f nginx-deployment.yaml
배포 후 상태를 확인하려면:
bash
kubectl get deployments
kubectl get pods
kubectl get services
4. 채팅 세션 내 명령어 모음
명령어
설명
!
현재 세션 내에서 쉘 명령 실행 (!ls, !kubectl get pods)
ctrl + j
멀티라인 입력
/editor
프롬프트를 편집기로 작성
/help
사용 가능한 명령어 목록 표시
/issue
버그 또는 기능 요청 전송
/quit
채팅 세션 종료
/clear
현재 세션의 히스토리 초기화
/reset
전체 대화 맥락 초기화 (컨텍스트 제거)
/tools
Q가 사용할 수 있는 도구 목록 및 권한 관리
/profile
다양한 Q 프로파일 관리
/context
대화에 사용되는 컨텍스트 파일 관리
/compact
대화 히스토리를 요약하여 컨텍스트 최적화
예시: 도움말 확인
/help
5. 요약
항목
설명
실행 명령
q chat
주요 기능
질문 응답, 코드 생성, AWS 연동, 쉘 실행
로컬 권한
파일 읽기/쓰기 가능 (허용 시)
확장성
프로파일, 컨텍스트, MCP 기반 확장 지원
Q CLI는 단순한 터미널 도우미가 아닌, 개발자 환경과 대화형으로 연결된 AI 개발 파트너입니다.
Last updated