AWS EKS Mimarisi Nasıl Kurulur? Adım Adım Rehber
AWS EKS Mimarisi Nasıl Kurulur?
Bir "Hello World" uygulamasını Kubernetes'te çalıştırmak kolaydır, ancak binlerce kullanıcısı olan kritik bir uygulamayı barındıracak Amazon EKS kümesini kurmak mühendislik gerektirir. Yanlış bir ağ yapılandırması veya güvenlik ayarı, ileride büyük sorunlara yol açabilir.
Bu yazıda, AWS Danışmanlığı tecrübelerimize dayanarak, üretim ortamına (Production) hazır bir EKS mimarisinin nasıl kurulması gerektiğini adım adım anlatacağız.
1. Ağ (VPC) Tasarımı
EKS'in temeli ağdır. En yaygın ve güvenli tasarım şöyledir:
- Public Subnets (Açık Alt Ağlar): Sadece Load Balancer'lar (ALB/NLB) ve NAT Gateway'ler burada bulunur. İnternete açıktır.
- Private Subnets (Özel Alt Ağlar): EKS Worker Node'ları ve Pod'lar burada çalışır. Doğrudan internet erişimleri yoktur, güvenlidirler.
- Tagging (Etiketleme): AWS Load Balancer Controller'ın subnetleri bulabilmesi için
kubernetes.io/role/elb(public) vekubernetes.io/role/internal-elb(private) etiketlerini eklemeyi unutmayın.
2. IAM Rolleri ve Yetkilendirme (IRSA)
EKS kümenizin AWS servislerine (S3, DynamoDB) erişmesi gerekecektir.
- Eskiden: Node'lara (EC2) geniş yetkili bir IAM rolü verilirdi. Bu güvenlik açığıdır.
- Şimdi (Best Practice): IAM Roles for Service Accounts (IRSA) kullanılır. Her bir Pod'a (mikroservis) sadece ihtiyacı olan yetkiyi veren özel bir IAM rolü atanır. Bu, "En Az Yetki" (Least Privilege) prensibidir.
3. Worker Node Stratejisi
- Managed Node Groups: AWS'in yönettiği EC2 gruplarıdır. İşletim sistemi güncellemelerini AWS kolaylaştırır.
- Spot Instances: Maliyeti düşürmek için stateless uygulamalarınızı Spot instance'larda çalıştırın.
- Taint & Tolerations: Kritik sistem podlarını (CoreDNS, metrics-server) ve uygulama podlarını birbirinden izole etmek için Node gruplarını ayırın.
4. Eklentiler (Add-ons)
EKS çıplak haliyle yeterli değildir. Üzerine şu bileşenleri kurmalısınız:
- AWS Load Balancer Controller: Ingress kaynaklarını yönetmek için.
- ExternalDNS: Route53 DNS kayıtlarını otomatize etmek için.
- Metrics Server: Otomatik ölçeklendirme (HPA) için.
- Cluster Autoscaler / Karpenter: Node sayısını trafiğe göre artırıp azaltmak için.
5. Güvenlik Katmanı
- Security Groups: Node'lar arasındaki ve Control Plane ile Node'lar arasındaki trafiği kısıtlayın.
- KMS Envelope Encryption: Kubernetes Secret'larını (şifreler) AWS KMS anahtarı ile şifreleyin.
Kurulum Aracı: Terraform
Bu mimariyi manuel (ClickOps) kurmak hataya açıktır. Biz, tüm altyapıyı Terraform ile kod olarak (IaC) yönetmenizi şiddetle öneririz. Bu sayede felaket durumunda (Disaster Recovery) aynı altyapıyı dakikalar içinde başka bir bölgeye kurabilirsiniz.
Doğru kurulmuş bir EKS mimarisi, size uykusuz geceler yerine, kendi kendine iyileşen ve ölçeklenen bir sistem sunar.