Ana içeriğe geç

Azure Altyapısı

Bu doküman, Switzerland North bölgesinde barındırılan wastelog-vnet için bulut altyapısının özetini sunmaktadır. Mimaride, herkese açık bir giriş noktası ile Geliştirme (Development) ve Üretim (Production) ortamları için tamamen izole edilmiş özel ortamlar bulunmaktadır.

Mimarinin Genel Görünümü

Ağ, güvenlik ve görevlerin mantıksal olarak ayrılması amacıyla public ve private subnet'lere bölünmüştür.

  • Bölge: Switzerland North
  • VNet Adı: wastelog-vnet
  • Adres Alanı: 10.0.0.0/16 (subnet'lere dağıtılmıştır)

Diyagram

Azure Diagram

Ağ Topolojisi

Virtual Network, farklı roller için belirli subnet'lere ayrılmıştır.

OrtamSubnet AdıCIDRKaynak TürüNotlar
Genelpublic-gateway10.0.1.0/24App GatewayGiriş noktası (HTTPS)
Genelpublic-generic10.0.0.0/24Bastion HostYönetim erişimi
Devprivate-app-dev10.0.6.0/24Sanal MakineNGINX Web Sunucusu (1 Node)
Devprivate-db-dev10.0.2.0/24Sanal MakineMySQL Sunucusu
Devprivate-cache-dev10.0.4.0/24Yönetilen RedisÖnbellekleme Katmanı
Prodprivate-app-prod10.0.7.0/24Sanal MakineNGINX Web Sunucusu (1 Node)
Prodprivate-db-prod10.0.3.0/24Azure Managed MySQL Flexible ServerMySQL Flexible Server
Prodprivate-cache-prod10.0.5.0/24Yönetilen RedisÖnbellekleme Katmanı

Bileşen Detayları

1. Giriş & Bağlantı

  • App Gateway: İnternetten gelen tüm HTTPS trafiğini karşılar ve istekleri uygun backend havuzuna (Dev veya Prod) yönlendirir.
  • Bastion Host: Genel subnet'te yer alan, özel olarak ayrılmış bir Sanal Makinedir. Özel VM'lere güvenli SSH/RDP erişimi sağlar. Özel VM'lere doğrudan internetten erişim engellenmiştir.

2. Hesaplama (Uygulama Katmanı)

Hem Dev hem de Prod ortamlarında, NGINX çalıştıran Sanal Makineler 80 numaralı port üzerinden hizmet vermektedir.

  • Ölçekleme: Her ortam için şu anda tek bir VM node olarak yapılandırılmıştır.

3. Veri Kalıcılığı

  • Veritabanı:

    • Development (Dev) Ortamı: MySQL, Sanal Makineler üzerinde barındırılmaktadır.
    • Production (Prod) Ortamı: Azure Managed MySQL Flexible Server kullanılmaktadır.
  • Not: Switzerland North bölgesindeki yüksek talep nedeniyle, sadece Dev ortamı için Azure Flexible Server yerine VM kullanılmaktadır. Prod ortamında ise MySQL Flexible Managed DB aktif olarak kullanılmaktadır.

  • Önbellek: Yüksek performanslı veri önbellekleme için Azure Yönetilen Redis kullanılmaktadır.

  • Depolama: Azure Blob Storage, nesne depolama için (örneğin, admob verisi) kullanılmaktadır.

4. Gözlemlenebilirlik

  • Application Insights: Performans izleme ve hata takibi için hem Dev hem de Prod ortamlarında entegre edilmiştir.

5. Güvenlik

  • NSG'ler (Ağ Güvenlik Grupları): Subnet'lere uygulanarak ağı filtreler (izin/verme/engelleme).
  • ASG'ler (Uygulama Güvenlik Grupları): Sanal Makineleri grup bazında yönetmek için kullanılır ve detaylı güvenlik politikaları sunar.

Geçici Bot VM veya Benzeri Genel VM Dağıtımı

Eğer geçici bir bot VM veya benzeri bir genel erişime sahip VM dağıtılacaksa, bu işlem public-generic subnet'i üzerinde yapılabilir. Ancak güvenlik için, subnet'e atanmış NSG'nin (Ağ Güvenlik Grubu) uygun şekilde güncellenmesi gerekmektedir. Bu amaçla güncellenmiş NSG'nin adı vm-app-dev-nsg'dir. Aşağıda örnek bir NSG yapılandırmasını gösteren diyagram yer almaktadır:

NSG Örneği

Not: Ekstra izin verilen portlar/servisler gereksiz yere açılmamalıdır. Sadece gerekli olan trafiğe izin verin; gereksiz trafiği engellemeye devam edin.