🛠️ Gerçek Hayat — AWS'te QA

Gerçek Hayat — AWS'te QA: Gerçek dünya AWS QA'sı komut öğrenmekten ibaret değildir — altyapının tek kullanımlık olduğu bir iş akışı tasarlamakla ilgilidir.

Gerçek dünya AWS QA'sı komut öğrenmekten ibaret değildir — altyapının tek kullanımlık olduğu bir iş akışı tasarlamakla ilgilidir. Bir e-ticaret ekibinin Black Friday hazırlığını düşün: yük testi için 4 saat çalışacak 20 EC2 instance gerekiyor. Dedicated donanımda bu 20 sunucu aylık $3.000'e mal olur ve testten 27 gün önce boşta bekler. Ama neden tek kullanımlık altyapıya güvenmek zordur? Çünkü Java geliştiricileri sunucuları kalıcı durum olarak görmeye alışkındır — SSH ile bağlanır, JDK kurar, JVM flag'lerini ayarlar ve bu işi bir daha yapmak istemez. AWS tam tersini zorlar: her instance bir script'ten yeniden oluşturulabilir olmalıdır, yoksa zamanla bozulan bir ortama dönüşür. Java analojisi: EC2 instance'ları JUnit test yaşam döngüsü gibidir — `@BeforeAll` instance'ı kurar, `@AfterAll` sonlandırır, test gövdesi arada çalışır. Gerçek bir QA olayında, testin çalıştığı ortamı tam olarak yeniden üretemeyen ekip "hata gerçek miydi yoksa ortam mı flakeydi?" sorusunu cevaplayamaz — etiketlenmiş, script'lenmiş AWS ortamları bu soruyu otomatik olarak yanıtlar.

Senaryo: EC2'de Selenium Grid

run-instances Çalıştığında EC2, VM'i ANINDA mı Hazır Eder?

run-instances, VM'i BAŞLATMA isteğini…

`aws ec2 run-instances`, VM'i BAŞLATMA isteğini AWS'e sadece GÖNDERİR — komut ANINDA döner ama makine hâlâ "pending" durumundadır, SSH ile bağlanmaya HENÜZ HAZIR değildir.

describe-instances, dinamik olarak ATANAN…

`aws ec2 describe-instances --query ... PublicIpAddress`, dinamik olarak ATANAN IP adresini SORGULAR — bu IP her `run-instances` çağrısında FARKLI olduğundan, ELLE bir yere yazılamaz.

ssh komutu, --key-name'de belirtilen ANAHTARLA…

`ssh -i my-qa-key.pem ec2-user@ ` SADECE `--key-name`'de belirtilen ANAHTARLA eşleşen `.pem` dosyasıyla ÇALIŞIR — yanlış anahtar dosyası "Permission denied (publickey)" hatası VERİR.

Senaryo: Test Raporlarını S3'te Sakla

aws s3 sync, aws s3 cp'den Neden Farklı Davranır?

aws s3 sync, TÜM klasörü (Allure raporu…

`aws s3 sync ./allure-report/ s3://.../`, TÜM klasörü (Allure raporundaki YÜZLERCE dosya) TEK komutla yükler — sadece DEĞİŞEN dosyaları göndererek `cp`'den daha HIZLI çalışır.

aws s3 website, bucket'ı BİR statik web…