Amazon DOP-C02: Kod Olarak Altyapı ve Yapılandırma Yönetimi — Çalışma kılavuzu

Şunun bir parçası: AWS DevOps Engineer Professional DOP-C02 — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Amazon sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.

Genel Bakış

AWS’te Kod Olarak Altyapı (IaC) ve konfigürasyon yönetimi, altyapı ve uygulamaların tekrarlanabilir, denetlenebilir ve yönetilen bir şekilde sağlanmasını ve yapılandırılmasını mümkün kılar. CloudFormation ve AWS Cloud Development Kit (CDK), kaynakları bildirimsel olarak veya CloudFormation’a sentezlenen kod aracılığıyla tanımlar. AWS OpsWorks ve AWS Systems Manager gibi konfigürasyon katmanları, EC2 ve hibrit filolardaki sunucularda istenen durumu zorunlu kılar ve raporlar. Sırlar, parametreler ve imaj oluşturma (image-baking), yaşam döngüsünü tamamlayarak büyük ölçekte değişmez ve güvenli dağıtımları mümkün kılar.

CloudFormation Stack’leri, Değişiklik Kontrolü ve Yönetişim

CloudFormation stack’leri dağıtım birimidir. Patlama yarıçapını en aza indirmek için stack’leri yaşam döngüsü sınırları ve sahiplik etrafında tasarlayın. Parametreleri idareli kullanın ve eşlemeler (mappings) veya SSM sorguları ile yönlendirilmiş varsayılanları tercih edin. Sıkı bağımlılığı önlemek için yalnızca kararlı, paylaşılan değerleri Çıktılar (Outputs) ve Fn::ImportValue aracılığıyla dışa aktarın ve içe aktarın.

İç içe stack’ler (Nested stacks), yeniden kullanılabilir bileşenleri kapsar ve ana şablonları küçük tutar. Bir ana stack, alt stack’lere parametreler geçirebilir ve onların çıktılarını kullanabilir, bu da modüler mimarileri mümkün kılar (örneğin, bir uygulama stack’i tarafından kullanılan paylaşılan bir ağ iç içe stack’i). İç içe stack’leri tek bir sorumluluğa (VPC, veri katmanı, uygulama katmanı) odaklayın ve bunları bağımsız olarak sürümleyin.

StackSet’ler, tek bir şablonu hesaplar ve Bölgeler (Regions) arasında dağıtır. OU’lara otomatik dağıtım yapmak ve yeni hesapları otomatik olarak dahil etmek için AWS Organizations ile hizmet tarafından yönetilen izin modelini kullanın. Dağıtım sürecini kontrol etmek için operasyon tercihlerini (maksimum eşzamanlı hesap/Bölge, hata toleransı) yapılandırın. Hesap veya Bölge başına parametre geçersiz kılmaları, standart bir şablonu yerel kısıtlamalara uyarlamanıza olanak tanır. Bant dışı değişiklikleri tespit etmek için StackSet ve stack örneği (stack instance) sürüklenmesini izleyin.

Değişiklik setleri (Change sets), güvenli, insan tarafından incelenebilir güncellemeler sağlar. ExecuteChangeSet’i çalıştırmadan önce daima CreateChangeSet komutunu kullanın ve kaynak bazındaki etkiyi, değiştirmeleri ve potansiyel veri kaybını inceleyin. Aşamalı onaylar için değişiklik setlerini otomatikleştirilmiş işlem hatlarına (pipeline) entegre edin.

Sürüklenme tespiti (Drift detection), stack kaynaklarının şablonla eşleştiğini doğrular. Kritik stack’ler ve StackSet’ler üzerinde rutin olarak sürüklenme tespiti çalıştırın; tüm kaynak türleri için tüm özelliklerin değerlendirilmediğini unutmayın (desteklenmeyen özellikler “kontrol edilmedi” olarak raporlanır). Sürüklenmeyi bir olay olarak ele alın: araştırın, bağlamı yakalayın ve ya bir stack güncellemesiyle ya da sürüklenmeyi kod haline getirip yeniden uygulayarak düzeltin.

Stack politikaları (Stack policies), güncellemeler sırasında kritik kaynakları koruyan JSON belgeleridir. Yeri doldurulamaz kaynaklara (örneğin, üretim veritabanları, Route 53 bölgeleri) yönelik güncellemeleri reddedin ve belirli bir değişiklik için geçici olarak hassas bir yol açmak üzere StackPolicyDuringUpdateBody’yi kullanın, ardından daha katı politikayı geri yükleyin. Koruma mekanizmaları için sonlandırma koruması (termination protection) ve DeletionPolicy (Retain/Snapshot) ile birleştirin. Harici duruma sahip kaynaklar (S3 bucket’ları) için silme davranışlarını planlayın. Bir bucket’ın silinmeden önce boşaltılması gerekiyorsa, stack silme işleminde nesneleri temizlemek için özel bir kaynak (custom resource) uygulayın.

AWS CDK ve CloudFormation Genişletilebilirliği

AWS CDK, altyapıyı tanıdık dillerde (TypeScript, Python, Java, .NET, Go) modeller. Construct’lar CDK’nin yapı taşlarıdır:

Bir CDK uygulaması bir veya daha fazla stack içerir. cdk synth sırasında, uygulama bağlam sorgularını (örneğin, VPC ID’leri) çözer, asset’leri oluşturur ve bir CloudFormation şablonu üretir. Dağıtımdan önce, cdk bootstrap komutu ortamın asset bucket’larını ve rollerini oluşturur. Değişiklikleri önizlemek için cdk diff kullanın, ardından şablonları ve asset’leri göndermek için cdk deploy komutunu çalıştırın; CDK dahili olarak değişiklik setlerini kullanır ve güvenlikle ilgili hassas değişiklikleri (IAM veya kaynak değiştirmeleri) gösterir ve onay ister. Kuruluş çapında etiketlemeyi zorunlu kılmak için Aspects aracılığıyla stack’leri ve kaynakları etiketleyin. L2 soyutlamalarının yetersiz kaldığı durumlarda, kaçış yollarını (escape hatches) (node.defaultChild) kullanın veya L1 construct’larına inin.

CloudFormation özel kaynakları (custom resources), IaC’yi API’ler aracılığıyla erişilebilen her şeye genişletir. Lambda destekli bir özel kaynak, bir RequestId, PhysicalResourceId ve özellikler içeren Create, Update ve Delete olaylarını alır. Fonksiyon şunları yapmalıdır:

Lambda için en az ayrıcalığa sahip IAM yürütme rollerini kullanın, API çağrılarına üssel geri çekilme (exponential-backoff) ekleyin ve RequestId aracılığıyla log korelasyonu sağlayın. Büyük veya uzun süren operasyonlar için, bir yürütme token’ı bekleyen bir özel kaynak ile Step Functions kullanmayı düşünün. Uygulanabilir olduğunda, yeniden kullanılabilir, sürümlenmiş sağlayıcılar için CloudFormation Registry’yi tercih edin.

Kod Olarak Altyapıda (IaC) Gizli Bilgiler ve Parametreler

Gizli bilgileri asla şablonlara veya koda sabit olarak yazmayın. Hassas değerleri dağıtım zamanında çözümlemek için dinamik referanslar kullanın:

Dinamik referanslar, gizli bilgilerin yığın şablonunda veya olaylarda saklanmasını önler. Gizli bilgileri, CloudFormation’ın düz metin olarak kaydettiği Çıktılara (Outputs) veya kaynak özelliklerine yerleştirmeyin. CloudFormation’ın yürütme rolüne, başvurulan değerlerin şifresini çözme veya alma izni verin ve KMS CMK’lerini erişmesi gereken kimliklere (principals) göre kapsayın.

Parameter Store, gizli olmayan yapılandırmalar (özellik bayrakları, AMI ID’leri, uç noktalar) için idealdir. Ortamlar arasında güvenli geri almalar ve atomik yükseltmeler oluşturmak için sürümlenmiş SSM parametrelerini kullanın. CDK’da, güvenli değerler için ssm.StringParameter.fromStringParameterName veya fromSecureStringParameterAttributes ile değerleri içe aktarın ve parametre okumalarını kullanıcı verilerine (user data) veya uygulama başlangıç betiklerine (bootstraps) bağlayın.

Secrets Manager, yaşam döngüsü kontrolleri, rotasyon ve denetim için tasarlanmıştır. Rotasyonu, desteklenen motorlarla (RDS, Aurora) veya özel Lambda’larla entegre edin. Eskimiş materyallerin yayılmasını önlemek için gizli bilgilere AMI’lere gömmek yerine çalışma zamanında başvurun. Konteynerleştirilmiş veya sunucusuz iş yükleri için, gizli bilgileri Secrets Manager referansları tarafından desteklenen ortam değişkenleri aracılığıyla enjekte edin veya ECS/TaskDefinition gizli bilgileri aracılığıyla bağlayın (mount); kısa TTL’li bağlantı havuzları ve yeniden denemeler kullanarak minimum kesintiyle rotasyon yapın.

Yapılandırma Yönetimi ve Değişmez Altyapı

AWS OpsWorks, kuralcı bir yapılandırma yönetimi sağlar. OpsWorks Stacks, uygulama yapılandırmasını ve dağıtımlarını düzenlemek için Chef cookbook’larını ve yaşam döngüsü olaylarını (Kurulum, Yapılandırma, Dağıtım, Dağıtımı Geri Alma, Kapatma) kullanır ve örnekleri durduran/başlatan veya değiştiren sağlık kontrolleri ile otomatik iyileştirmeyi destekler. Geçmişte OpsWorks, yönetilen Chef Automate ve Puppet Enterprise de sunuyordu; günümüzde birçok ekip, ajan tabanlı orkestrasyon için Systems Manager’ı standartlaştırıyor veya Ansible/Chef/Puppet kontrol düzlemlerini kendileri çalıştırıyor. Ansible, OpsWorks ile yerel olarak entegre değildir; bunun yerine, playbook’ları çalıştırmak için Systems Manager State Manager’ı veya SSM Session Manager bağlantısı ve EC2 dinamik envanteri ile AWX/Ansible Automation Platform’u kullanın.

AWS Systems Manager, hibrit yapılandırma için modern kontrol düzlemidir:

Değişmez altyapı, yapılandırma kaymasını (drift) ortadan kaldırır ve geri almayı (rollback) hızlandırır. EC2 Image Builder, imaj boru hatlarını (pipelines) şu şekilde kod haline getirir:

CIS ölçütlerini, ajan sağlığını (SSM/CloudWatch) ve uygulama duman testlerini (smoke checks) doğrulamak için test bileşenleri ekleyin. İmajları sürümleyin ve anlamsal etiketlerle etiketleyin. AMI ID’lerini Parameter Store’a (örneğin, /app/frontend/ami) yayınlayın ve Auto Scaling başlatma şablonlarında referans gösterin. Kademeli (rolling) veya mavi/yeşil stratejileriyle dağıtım yapın; değişmezliği korumak için yerinde yama yapmak yerine örnekleri değiştirin. Güvenlik açığı taramalarını (Amazon Inspector) boru hattı terfi kapılarına (promotion gates) besleyin. Sırları (secrets) imajların içine gömmeyin; önyükleme sırasında Instance Metadata Service v2 ve SSM/Secrets Manager referansları aracılığıyla alın.

Pratik Problem Senaryosu

Capital One, sıkı yönetişim, sır yönetimi ve yapılandırma kaymasını ortadan kaldırma zorunluluğuyla, müşteri odaklı bir platform için çoklu hesap, çoklu Bölge dağıtımlarını standartlaştırmalıdır. Ortam, AWS Organizations’da yüzlerce hesabı kapsamakta ve veritabanı erişimi ile işletim sistemi sıkılaştırması etrafında katı kontrollere sahiptir.

  1. Altyapıyı AWS CDK ile modelleyin ve CloudFormation’a sentezleyin
  1. Temel ağ ve koruma mekanizması yığınlarını CloudFormation StackSets aracılığıyla dağıtın
  1. Kritik kaynakları yığın politikaları (stack policies) ve değişiklik kümeleri (change sets) ile koruyun
  1. IaC’yi Lambda destekli özel kaynaklarla (custom resources) genişletin
  1. Sırları ve yapılandırmayı Secrets Manager ve Parameter Store ile merkezileştirin
  1. İstenen durumu ve uyumluluğu Systems Manager State Manager aracılığıyla zorunlu kılın
  1. EC2 Image Builder ile değişmez altyapıyı benimseyin
  1. Boru hattı orkestrasyonu ve yönetişim

CI · Tüm alanlar · İzleme

Bu soruları çözün → · ExamRoll.io’da süreli pratik →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Sınavınızı geçin →

Amazon'a göz atın →

Related guides

Hepsi bir arada erişim

Tek abonelik. Her sınav.

Her plan, sınırsız cevap aramayı, pratik testlerini, AI açıklamalarını ve tam kaynak kütüphanesini — 20'den fazla dilde — açar.

Aylık
24.87
Just €0.83/day
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

En iyi değer
12 ay
179.87
Just €0.49/daySave 40%
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

✓ Ücretsiz plan dahil · ✓ İstediğiniz zaman iptal edin · ✓ Tüm planlar tam ürünü açar