피드로 돌아가기![[SaaS] Private AWS EKS Cluster With Github Actions](https://tsewlmecqtvqphyhezcm.supabase.co/storage/v1/object/public/thumbnails/b6d9211c-ec37-43ba-ac81-c9b7fc3562d7.webp?)
강남언니 공식 블로그DevOps
원문 읽기
[SaaS] Private AWS EKS Cluster With Github Actions
힐링페이퍼가 Private EKS 클러스터에 GitHub Actions Self-hosted Runner를 VPC 피어링으로 연결해 보안을 유지하면서 CI/CD 파이프라인 자동화 구현
AI 요약
Context
Private AWS EKS 클러스터 기반 SaaS 서비스에서 GitHub Actions를 통한 배포 자동화가 필요했으나, Public IP 대역 개방으로 인한 보안 위험과 GitHub IP 변경 시 지속적인 관리 부담이 존재했다.
Technical Solution
- Self-hosted Runner 배포: Shared AWS Account의 Private VPC 내 EC2에 GitHub Actions Self-hosted Runner 구성
- VPC 피어링 구축: Shared Account의 Runner EC2가 있는 VPC와 Development/Production Account의 EKS 클러스터 VPC를 피어링으로 연결
- IAM OIDC 연동: AWS IAM OIDC Provider 설정으로 GitHub Actions Job에서 IAM Role Assume 역할 수행
- ECR 통합: Runner가 Shared Account의 ECR에 Docker 이미지 빌드 및 푸시 수행, Development/Production 환경의 EKS가 해당 이미지 사용
- kubectl 명령 실행: Runner에서
aws eks update-kubeconfig및kubectl apply명령으로 Kubernetes 리소스 매니페스트 배포
Key Takeaway
Multi-Account AWS 환경에서 Private EKS 클러스터로의 안전한 CI/CD 연결은 GitHub IP 화이트리스팅 대신 VPC 피어링 + Self-hosted Runner + IAM OIDC 조합으로 IP 대역 노출 없이 내부 통신만으로 구현할 수 있으며, 이는 변경에 강한 인프라 관리 체계를 제공한다.
실천 포인트
Multi-Account AWS 환경에서 Private EKS를 운영하는 백엔드 팀이 GitHub Actions를 사용할 때, Shared Account에 Self-hosted Runner를 배치하고 VPC 피어링으로 다른 Account의 EKS와 연결한 후 IAM OIDC로 권한을 위임하면 보안 인증서 관리 없이 내부 VPC 통신만으로 배포 자동화를 구현할 수 있다.