Amazon DVA-C02: CloudFormation ve Kod Olarak Altyapı (SAM, CDK) — Çalışma kılavuzu
Şunun bir parçası: AWS Developer Associate DVA-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.
Özel kaynaklar, yığın koruması ve yerel/artımlı dağıtım hızlandırıcıları
CloudFormation’ın yerel bir kaynak türü bulunmadığında özel kaynakları kullanın ve Create/Update/Delete olayları için CloudFormation yanıt protokolüne uyan Lambda destekli sağlayıcılar uygulayın. Idempotent işleyiciler oluşturun, cfn-response veya CloudFormation CLI çerçevesi ile yanıt verin ve uzun süren eylemleri ilerleme olayları (progress events) ile veya durumu DynamoDB’de saklayarak yönetin. Özel kaynak zaman aşımlarına dikkat edin: CloudFormation’ın maksimum yığın işlemi zaman aşımı vardır ve Lambda destekli kaynakların bu süre içinde tamamlanması gerekir, aksi takdirde yığının geri alınmasına (stack rollback) neden olurlar. Yığın güncellemeleri sırasında belirtilen mantıksal kimliklerin (logical IDs) değiştirilmesini veya güncellenmesini engellemek için kritik kaynakları yığın politikaları (stack policies) (SetStackPolicy) ile koruyun ve silinmesini göze alamayacağınız ortamlar için sonlandırma korumasını (termination protection) etkinleştirin. Artımlı ve yerel geliştirme için, yalnızca kod güncellemelerini hızlıca yapmak amacıyla AWS SAM CLI (sam build, sam local invoke, sam local start-api) ve sam sync komutlarını; yalnızca değişen kaynakları güncellemek için ise CDK watch veya varlıklarla (assets) birlikte cdk deploy komutunu kullanın; bu araçlar varlık karmalarını (asset hashes) (lambda asset hashing) hesaplar, böylece yalnızca değişen kod yeniden yayınlanır. Güvenli dağıtımlar için CloudFormation ChangeSets, Lambda sürümlemesini (SAM’de AutoPublishAlias veya CDK’da lambda.Version) ve CodeDeploy trafik kaydırmayı (traffic-shifting) entegre edin. Sık karşılaşılan tuzaklar arasında şablon veya parametre sınırlarını aşmak, hesaplar arası içe aktarmaları (cross-account imports) yanlış kullanmak ve işleyicilerin (handler) içinde ağır SDK istemcilerini başlatarak soğuk başlatma (cold-start) gecikmelerine neden olmak yer alır — bunun yerine yapılandırılabilir zaman aşımları ve yeniden deneme davranışına sahip, genel (global) ve geç başlatılan (lazy-initialized) istemcileri tercih edin.
Pratik Problem: Kullanım Senaryosu
Senaryo: AcmeMedia, us-east-1 bölgesinde ayrı Dev, Staging ve Prod hesaplarına sahip çoklu hesaplı bir AWS organizasyonunu yönetmektedir. Sunucusuz bir görüntü işleme hizmetinin (Lambda + S3 + DynamoDB), merkezi olarak depolanan paylaşılan hassas yapılandırmayla birlikte tüm hesaplara tutarlı bir şekilde dağıtılması gerekmektedir.
Zorluk: Aynı CloudFormation/SAM/CDK yığınını birden çok hesaba dağıtmak ve Lambda kod eserlerinin (artifacts) her hedef hesapta güvenli bir şekilde mevcut olmasını sağlarken, sırları şablonların dışında tutmak.
Önerilen Yaklaşım:
- Hizmet tarafından yönetilen izinlerle (service-managed permissions) AWS CloudFormation StackSets kullanın (
undefined
) ve ardından hedef hesapları ve bölgeleri hedeflemek için
undefined
komutunu çalıştırın veya CDK Pipelines’ı her hesap için rollerle sentezleme (synth) ve dağıtım yapacak şekilde yapılandırın. 2. Lambda varlıklarını (assets) CDK varlık yayınlamayı (her hesapta/bölgede cdk bootstrap) veya sam package komutunu kullanarak her hedef hesaptaki bir S3 bucket’ına paketleyin; varlık kopyalamayı CI aracılığıyla (aws s3 cp veya S3 replication kullanan CodeBuild) otomatikleştirin ve hedef hesap kimlik bilgileriyle cdk deploy veya sam deploy komutunu kullanın. 3. Hassas yapılandırmayı her hesapta AWS Secrets Manager’da saklayın ve şablonda dinamik referanslar (
undefined
) aracılığıyla başvurun veya NoEcho parametrelerinden kaçınarak Secrets Manager çoğaltma (replication) özelliği aracılığıyla çoğaltılmış bir sır (replicated secret) dağıtın. 4. ChangeSets (create-change-set, execute-change-set) kullanın, üretim yığınlarında sonlandırma korumasını (termination protection) etkinleştirin ve güncellemeler sırasında DynamoDB tablolarının veya S3 bucket’larının yanlışlıkla değiştirilmesini önlemek için yığın politikalarını (stack policies) kullanın.
Gerekçe: StackSets ve pipeline odaklı dağıtımlar, güvenli ve denetlenebilir çoklu hesap/bölge yayılımı sağlarken; varlık yayınlama ve hesap başına sırlar, kimlik bilgilerini yerel ve denetlenebilir tutar. ChangeSets, sonlandırma koruması ve yığın politikaları, yinelemeli (iterative) dağıtımlar sırasındaki riski azaltır.
← Amazon DynamoDB ve NoSQL Tasarımı · Tüm alanlar · Dağıtım ve CI →
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 →