Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
AWS ile Azure arasındaki platform farklarını daha iyi anladığınıza göre, AWS'de web uygulaması mimarisini ve Azure Kubernetes Service (AKS) ile uyumlu hale getirmek için gereken değişiklikleri inceleyelim.
Yelb uygulama mimarisi
Yelb örnek web uygulaması adlı bir ön uç bileşeninden ve adlı yelb-ui
yelb-appserver
bir uygulama bileşeninden oluşur.
Tarayıcıya yelb-ui
JavaScript kodu sağlar. Bu kod bir Angular uygulamasından derlenmiş. Bileşen, yelb-ui
dağıtım modeline bağlı olarak bir nginx
ara sunucu da içerebilir.
yelb-appserver
bir önbellek sunucusu () ve Postgres arka uç veritabanı (redis-server
) ile etkileşim kuran bir yelb-db
uygulamasıdır.
Redis Cache sayfa görüntüleme sayısını depolarken PostgreSQL oyları kalıcı hale getirmektedir. Her iki hizmet de AWS veya Azure'da veri depolamak için hiçbir yönetilen hizmet kullanılmadan Kubernetes'e dağıtılır.
Özgün Yelb uygulaması bağımsızdır ve dış hizmetlere dayanmaz, bu nedenle kod değişikliği yapmadan AWS'den Azure'a geçirebilirsiniz. Azure'da, AKS'de dağıtılan Redis Cache ve PostgreSQL hizmetlerinin yerine Redis için Azure Cache ve PostgreSQL için Azure Veritabanı'nı kullanabilirsiniz.
Örnek Yelb uygulaması, kullanıcıların bir dizi alternatif (restoran) üzerinde oy kullanmasına ve pasta grafikleri alınan oy sayısına göre dinamik olarak güncelleştirmesine olanak tanır. Uygulama ayrıca sayfa görüntüleme sayısını izler ve ne zaman bir oy verilir veya bir sayfa yenilenirse, API isteğini sunan örneğin ana bilgisayar adını yelb-appserver
görüntüler. Bu özellik, uygulamayı bağımsız veya işbirliğine dayalı olarak tanıtmanızı sağlar.
AWS'de mimari
AWS, web uygulamalarının ve API'lerin yaygın web açıklarından korunmasına yardımcı olmak için AWS Web Uygulaması Güvenlik Duvarı (WAF) ve AWS Güvenlik Duvarı Yöneticisi sunar.
AWS hizmetlerini Azure hizmetlerine eşleme
Azure'da AWS iş yükünü en az değişiklikle yeniden oluşturmak için her AWS hizmeti için bir Azure eşdeğeri kullanın. Aşağıdaki tablo, hizmet eşlemelerini özetlemektedir.
Hizmet eşleme | AWS hizmeti | Azure hizmeti |
---|---|---|
Web erişimi güvenlik duvarı | AWS Web Uygulaması Güvenlik Duvarı (WAF) | Azure Web Uygulaması Güvenlik Duvarı (WAF) |
Uygulama yük dengeleme | Uygulama Yük Dengeleyici (ALB) | Kapsayıcılar için Azure Application GatewayAzure Uygulama Geçidi (AGC) |
İçerik teslim ağı | Amazon CloudFront | Azure Front Door (AFD) |
Orkestrasyon | Elastic Kubernetes Service (EKS) | Azure Kubernetes Service (AKS) |
Sırlar kasası | AWS Anahtar Yönetimi Hizmeti (KMS) | Azure Key Vault |
Container kayıt defteri | Amazon Elastic Container Registry (ECR) | Azure Container Registry (ACR) |
Alan Adı Sistemi (DNS) | Amazon Route 53 | Azure DNS |
Önbellekleme | Amazon ElastiCache | Redis için Azure Önbelleği |
NoSQL | Amazon DynamoDB | PostgreSQL için Azure Veritabanı |
Azure ile AWS hizmetleri arasında kapsamlı bir karşılaştırma için bkz. AWS ile Azure hizmetleri karşılaştırması.
Azure'da mimari
Bu çözümde Yelb uygulaması bir AKS kümesine dağıtılır ve NGINX giriş denetleyicisi gibi bir giriş denetleyicisi aracılığıyla kullanıma sunulur. Giriş denetleyicisi hizmeti bir iç (veya özel) yük dengeleyici aracılığıyla kullanıma sunulur. AKS'de uygulamalarınıza erişimi kısıtlamak için iç yük dengeleyici kullanma hakkında daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) ile iç yük dengeleyici kullanma.
Bu örnek, Helm şemasını kullanarak uygulama yönlendirme eklentisi ile birlikte yönetilen bir NGINX giriş denetleyicisi veya yönetilmeyen bir NGINX giriş denetleyicisi yüklemeyi destekler. NGINX giriş denetleyicisi ile uygulama yönlendirme eklentisi aşağıdaki özellikleri sağlar:
- Kubernetes NGINX giriş denetleyicisini temel alan yönetilen NGINX giriş denetleyicilerinin kolay yapılandırılması.
- Genel ve özel bölge yönetimi için Azure DNS ile tümleştirme.
- Azure Key Vault'ta depolanan sertifikalarla SSL sonlandırma.
Diğer yapılandırmalar için aşağıdaki makalelere bakın:
- DNS ve SSL yapılandırması
- Uygulama yönlendirme eklentisi yapılandırması
- Azure özel DNS bölgesi için iç NGINX giriş denetleyicisini yapılandırma
Yelb uygulaması, AKS kümesiyle aynı sanal ağ içinde veya eşlenmiş bir sanal ağda ayrılmış bir alt ağa dağıtılan bir Azure Application Gateway kaynağıyla güvenli hale getirilir. Web uygulamalarının yaygın açıklardan ve güvenlik açıklarından merkezi olarak korunmasını sağlayan Azure Web Uygulaması Güvenlik Duvarı'nı (WAF) kullanarak Yelb uygulamasına erişimi güvenli hale getirebilirsiniz.
Çözüm mimarisi tasarımı
Aşağıdaki diyagramda Azure'da önerilen mimari gösterilmektedir:
Çözüm mimarisi aşağıdakilerden oluşur:
- Application Gateway TLS sonlandırmasını işler ve HTTPS üzerinden arka uç uygulamasıyla iletişim kurar.
- Application Gateway Dinleyicisi , Azure Key Vault'tan alınan bir SSL sertifikası kullanır.
- Dinleyici ile ilişkili Azure WAF İlkesi, gelen isteklere karşı OWASP kurallarını ve özel kuralları çalıştırır ve kötü amaçlı saldırıları engeller.
- Application Gateway Arka Uç HTTP Ayarları, 443 numaralı bağlantı noktasında HTTPS aracılığıyla Yelb uygulamasını çağırır.
- Application Gateway Arka Uç Havuzu ve Sistem Durumu Yoklaması, HTTPS kullanarak AKS iç yük dengeleyici aracılığıyla NGINX giriş denetleyicisini çağırır.
- NGINX giriş denetleyicisi AKS iç yük dengeleyicisini kullanır.
- AKS kümesi, Secrets Store CSI Sürücüsü eklentisi için Azure Key Vault sağlayıcısı ile bir CSI birimi aracılığıyla Azure Key Vault'tan sırları, sertifikaları ve anahtarları almak üzere yapılandırılmıştır.
- SecretProviderClass, Azure Key Vault'tan Application Gateway tarafından kullanılan sertifikayı alır.
- Kubernetes giriş nesnesi, UYGULAMAYı AKS iç yük dengeleyici aracılığıyla HTTPS aracılığıyla kullanıma açmak için NGINX giriş denetleyicisini kullanır.
- Yelb hizmeti türündedir
ClusterIP
ve NGINX giriş denetleyicisi aracılığıyla kullanıma sunulur.
Bu mimariyi kullanarak AKS'de Yelb uygulamasını dağıtma hakkında kapsamlı yönergeler için yardımcı örneğe bakın.
Alternatif çözümler
Azure, AKS kümesinde bir web uygulaması dağıtmak ve bir web uygulaması güvenlik duvarı ile güvenli hale getirmek için çeşitli seçenekler sunar:
- Application Gateway Giriş Denetleyicisi
- Kapsayıcılar için Azure Application Gateway
- Azure Front Door
- NGINX giriş denetleyicisi
Application Gateway Giriş Denetleyicisi (AGIC), bir Kubernetes uygulaması olduğundan Azure Kubernetes Service (AKS) iş yükleriniz için bulut yazılımını İnternet'te kullanıma sunma amacıyla Azure'ın yerel Application Gateway L7 yük dengeleyicisini kullanabilirsiniz. AGIC, barındırılan Kubernetes kümesini izler ve bir Application Gateway'i sürekli güncelleştirerek seçili hizmetlerin İnternet'e açık olmasını sağlar.
Giriş Denetleyicisi, AKS kümesindeki kendi podunda çalışır. AGIC, değişiklikler için Kubernetes Kaynaklarının bir alt kümesini izler, kümenin durumunu Application Gateway'e özgü bir yapılandırmaya çevirir ve Bunu Azure Resource Manager'a (ARM) uygular. Daha fazla bilgi için bkz. Application Gateway Giriş Denetleyicisi nedir?.
Aşağıdaki tabloda Application Gateway Giriş Denetleyicisi'nin (AGIC) avantajları ve dezavantajları özetlenmiştir:
Avantajlar | Dezavantajlar |
---|---|
*
Yerel tümleştirme: AGIC, Aks üzerinde çalışan hizmetlere trafiğin sorunsuz ve verimli bir şekilde yönlendirilmesine olanak tanıyan Azure hizmetleriyle, özellikle de Azure Application Gateway ile yerel tümleştirme sağlar. * Basitleştirilmiş dağıtımlar: AGIC'yi AKS eklentisi olarak dağıtmak, diğer yöntemlerle karşılaştırıldığında basit ve basittir. AgIC özellikli bir Application Gateway ve AKS kümesinin hızlı ve kolay bir şekilde ayarlanmasını sağlar. * Tam olarak yönetilen hizmet: Eklenti olarak AGIC, otomatik güncelleştirmeler ve Microsoft'un artan desteği gibi avantajlar sağlayan tam olarak yönetilen bir hizmettir. Giriş Denetleyicisinin güncel kalmasını sağlar ve ek bir destek katmanı ekler. |
* Tek bulut yaklaşımı: AGIC öncelikli olarak tek bulut yaklaşımını benimseyen müşteriler tarafından benimsenmiştir. Farklı bulut platformları arasında dağıtımın gerekli olduğu çok bulutlu bir mimariye ihtiyacınız varsa, bu en iyi seçenek olmayabilir. Bu durumda vendo-lockin sorunlarından kaçınmak için NGINX, Traefik veya HAProxy gibi buluttan bağımsız bir giriş denetleyicisi kullanmak isteyebilirsiniz. |
Daha fazla bilgi için aşağıdaki kaynaklara bakın:
Azure Kubernetes Service