AWS Emulator, AWS API çağrılarını bilgisayarda veya sürekli entegrasyon (CI) ortamında yerel olarak karşılayan bir emülatör. AWS CLI ya da SDK’ların isteklerini yerel bir HTTPS uç noktasına yönlendirerek geliştiricilerin, gerçek AWS altyapısı oluşturmadan uygulamalarını denemesine imkân veriyor. Kullanmak için AWS hesabı gerekmiyor.
4
5
7
Bu yaklaşım, özellikle kodun sık değiştiği geliştirme sürecinde geri bildirim süresini kısaltabilir. Ancak AWS Emulator’ı, gerçek AWS’nin eksiksiz bir kopyası ya da uygulamanın bulut güvenliğini kanıtlayan bir test ortamı olarak görmek doğru olmaz.
Yerel test neden işe yarayabilir?
AWS’ye bağlı bir özelliği her denemede buluta dağıtmak yerine, geliştiriciler CLI ve SDK isteklerini yerel emülatöre yönlendirebilir. Böylece AWS servislerinin davranışına bağlı bölümler yerelde sınanabilir; uygulamanın geliştiricinin kontrolündeki iş mantığı içinse alışılmış taklit nesneleri (mock’lar) kullanılabilir.
4
Emülatörün kendisi için ek bir hizmet ücreti olmadığı bildiriliyor. Ücret, kullanıcılar sonrasında gerçek AWS kaynaklarını devreye aldığında doğuyor; yani yerel testin ücretsiz olması, buluta dağıtılan kaynakların da ücretsiz olduğu anlamına gelmiyor.
10
Geniş kapsam, kusursuz eşdeğerlik demek değil
AWS Emulator’ın 200’den fazla AWS hizmetini ve 400’den fazla API modelini kapsadığı belirtiliyor.
9 Bu genişlik, onu AWS’ye bağlı iş akışlarını geliştirme aşamasında denemek için kullanışlı kılabilir. Fakat bir API’nin kapsamda yer alması, gerçek AWS’deki tüm davranışların ve istisnaların desteklendiğini tek başına göstermez.
Proje, sürümlerle birlikte hizmet bazında uygunluk puanları yayımlıyor; AWS ayrıca herkese açık bir davranış değerlendirme paketi sunuyor.
6
16 Bu kontroller, sınanan davranışlar hakkında fikir verir ama her işlem ve uç durum için birebir uyumluluk garantisi oluşturmaz. Örneğin yayımlanmış bir hata kaydında, gerçek AWS’de farklı yanıt beklenen bir işlemin emülatörde HTTP 501 NotImplemented döndürdüğü belgelenmiş.
19
Güvenlik sınırlarını göz ardı etmeyin
AWS’nin güvenlik rehberinde, emülatörün IAM politikalarını ve izin sınırlarını, kaynak tabanlı politikaları, AWS KMS anahtar politikalarını ya da hesaplar ve bölgeler arasındaki erişimi test etmek için kullanılmaması gerektiği belirtiliyor.
8 Bazı izin davranışları emülatör içinde değerlendirilse bile bunların gerçek AWS ile aynı şekilde çalıştığı varsayılmamalı.
8
Bu nedenle yerel testte başarılı olan bir iş akışı, uygulamanın AWS’de doğru yetkilendirildiğini veya hesaplar ve bölgeler arasında beklenen biçimde çalışacağını kanıtlamaz. Bu tür senaryoları dağıtımdan önce gerçek AWS ortamında doğrulamak gerekir.
4
8
Kodunu yapay zekâ ajanları yazdı
AWS’nin yayımladığı anlatıma göre, AWS Emulator’ın kodu otonom yapay zekâ ajanları tarafından yazıldı ve ekip kodu ne yazdı ne de gözden geçirdi.
9
15 Projenin tanıtımında ajanların gerçek AWS ile karşılaştırmalı testler yapıp buldukları uyumsuzlukları gidermeye çalıştığı da aktarılıyor.
9 Bu, geliştirme sürecine ilişkin dikkat çekici bir bilgi; ancak tek başına aracın hatasız veya güvenlik açısından doğrulanmış olduğu anlamına gelmiyor.
Matt Goldberg’in lansman yazısına göre proje CC0 lisansıyla yayımlandı.
7 Kullanım açısından temel çıkarım şu: AWS Emulator, desteklenen AWS bağımlı akışlarda hızlı yerel geri bildirim almak için değerlendirilebilir; güvenlik denetimlerinin ve emülatörün kapsamadığı senaryoların yerini tutmaz.
4
8