Uygulamanızın Barındırma Maliyetleri Nasıl Azaltılır
Barındırma maliyetlerini azaltmak için gerçekte neyin çalıştığını ve nedenini bulun, sonra kimse kullanmadığında her şeyi uyutun. Sıfıra indiren barındırma hizmetlerinde boşta bir uygulama ve uyuyan bir veritabanı çok az maliyet getirir. Bu yüzden en büyük tasarruflar genellikle onları uyanık tutan şeyi kaldırmaktan gelir; bu çoğunlukla veritabanını her birkaç saniyede bir kontrol eden koddur. Ardından bant genişliğini küçültün ve kimsenin kullanmadığı uygulamaları silin.
Çoğu küçük uygulamanın trafik sorunu yoktur. “Bir şey sürekli açık” sorunu vardır. Bu rehber bunu nasıl bulup düzelteceğinizi, bir yapay zeka uygulama oluşturucuya verebileceğiniz komutlarla birlikte gösterir.
Gerçekte neye para ödüyorsunuz
Küçük uygulamaların barındırma faturası birkaç kalemden oluşur. Hangisinin büyük olduğunu bilmek nereye bakacağınızı gösterir.
| Maliyet | Neyi belirler | Genel çözüm |
|---|---|---|
| İşlem gücü (sunucu) | Makinenin boyutu ve kaç saat çalıştığı | Uyumasına izin verin; boyutunu ihtiyaca göre ayarlayın |
| Veritabanı | Boyutu ve ne kadar süre uyanık kaldığı | Sürekli sorguları durdurun ki uyuyabilsin |
| Bant genişliği | Ziyaretçilerin ne kadar veri indirdiği | Görselleri sıkıştırın, dosyaları önbelleğe alın |
| Depolama | Sakladığınız dosyalar ve veriler | İhtiyacınız olmayan eski yüklemeleri, günlükleri ve yedekleri silin |
| Üçüncü taraf API’ler | Yapay zeka modelleri, haritalar, e-posta, SMS çağrıları | Sonuçları önbelleğe alın, sınır koyun |
Mythex dahil birçok modern barındırma hizmeti sıfıra ölçeklenir: kimse uygulamayı kullanmadığında sunucu durur ve işlem gücü için ücret alınmaz, bir sonraki ziyarette yeniden uyanır. Bu, soruyu “sunucum ne kadar büyük?” sorusundan “sunucum neden uyanık?” sorusuna çevirir.
Adım 1: Paranın nereye gittiğine bakın
Hiçbir şeyi değiştirmeden önce barındırma sağlayıcınızın kullanım sayfasını açın ve şunları bulun:
- En çok maliyet çıkaran proje. Çoğu zaman tek bir uygulama faturanın büyük kısmıdır.
- Hangi kategori: işlem gücü, veritabanı, bant genişliği ya da depolama.
- Ne zaman harcama yapıldığı. Hiç kullanıcınız yokken gece boyunca düz bir çizgi, bir şeyin uygulamayı uyanık tuttuğunun ipucudur.
Mythex’te Kullanım ayrıntıları son 30 günü Build (yapay zeka ajanı) ve Run (barındırma, bant genişliği, veritabanı ve dosya depolama) olarak, proje bazında dökümle gösterir.
Adım 2: Boşta kalan uygulama ve veritabanlarını uyutun
Çoğu küçük uygulama için asıl kaldıraç budur. Boşta kaldığında uyuyan ve bir sonraki istekte uyanan bir veritabanı, sessiz saatlerde neredeyse hiç maliyet çıkarmaz. Her birkaç saniyede bir sorgulanan bir veritabanı hiç boşta kalmaz, bu yüzden bütün gün para ödersiniz.
Mythex’in barındırma limitleri yayınlanmış uygulamalar için bunun nasıl çalıştığını açıklar: uyuyan bir uygulama işlem gücü için hiçbir şey harcamaz, veritabanı en küçük boyutta başlar, meşgul olduğunda büyür, 5 dakika boşta kaldıktan sonra uyur ve uyanık kaldığı süre ile boyutunun çarpımı kadar ücretlendirilir. Yani veritabanını gece gündüz birkaç dakikada bir sorgulayan bir uygulama, her zaman meşgulmüş gibi faturalandırılır. Arka plan trafiği olmayan aynı uygulama ise çok az maliyet getirir.
Uygulamayı uyanık tutan yaygın şeyler:
- Yoklama. Sayfanın her 2–5 saniyede bir sunucuya “yeni bir şey var mı?” diye sorması. Bir dizüstü bilgisayarda bu sekmeyi açık bırakırsanız veritabanı hiç uyumaz.
- Kendiliğinden yenilenen panolar, kimse bakmazken bile bir zamanlayıcıyla veri yeniden yükler.
- Çalışma süresi izleyicileri, uygulamaya her dakika ping atar.
- Sunucu kodundaki arka plan döngüleri, örneğin verileri sonsuza kadar temizleyen ya da eşitleyen bir
setInterval. - Yavaş ilk ziyaretten kaçınmak için eklenmiş zamanlanmış “canlı tutma” istekleri. Bunlar uykuyu engelleyerek çalışır; tam da para harcatan şey budur.
Yapay zekadan bunları bulmasını isteyin:
Kodda bir zamanlayıcıda çalışan ya da veritabanını tekrar tekrar sorgulayan her şeyi bul: yoklama, setInterval, otomatik yenileme, arka plan döngüleri. Her birini, ne sıklıkla çalıştığını ve kimse sayfayı açık tutmazken çalışıp çalışmadığını listele. Henüz hiçbir şeyi değiştirme.
Sonra bunları tek tek düzeltin:
Panel her 3 saniyede bir /api/orders adresini yokluyor. Bunu yalnızca tarayıcı sekmesi görünürken yenileyecek şekilde değiştir ve 3 saniye yerine 60 saniyede bir yap. Elle Yenile düğmesi ekle.
Uygulamanızın gerçekten canlı güncellemelere ihtiyacı varsa (bir sohbet, canlı bir skor tablosu), sürekli sormak yerine yalnızca bir şey değiştiğinde güncellemeleri gönderip gönderemeyeceğini sorun. Birçok uygulama için “kullanıcı sekmeye geri döndüğünde yenile” yeterlidir.
Adım 3: Sunucu boyutunu ihtiyaca göre ayarlayın
Daha büyük makineler saat başına daha fazla maliyet çıkarır. Yapay zekayla yapılmış birçok uygulama makul bir varsayılan boyutla başlar; sorunlar, aslında yavaş bir sorgudan kaynaklanan yavaşlığı düzeltmek için “daha fazla güç” istemekten çıkar.
- Hatasız trafiğinizi karşılayan en küçük boyutu tutun.
- Bellek çökmeleri görürseniz, önce yapay zekaya uygulamanın belleğe çok fazla veri yükleyip yüklemediğini sorun (sonuçların tek bir sayfası yerine tüm bir tablo).
- Yalnızca ölçtüğünüz ve ihtiyaç duyulan trafiğiniz varsa makine ekleyin.
Mythex’te makine boyutu yayınlama sırasında uygulamanın ihtiyacına göre seçilir; ek makineler yalnızca trafik yoğun olduğunda başlar ve trafik düştüğünde yeniden uyur. Maliyet boyutu izler, bu yüzden aşırı büyük olduğunu düşünüyorsanız sohbette daha küçük bir boyut isteyin.
Adım 4: Bant genişliğini azaltın
Bant genişliği, ziyaretçilerin indirdiği veridir. Görseller genellikle en büyük payı oluşturur.
- Görselleri sıkıştırın ve WebP ya da AVIF gibi modern biçimlerde sunun.
- Görselleri gösterildikleri boyuta küçültün. 400 piksellik bir küçük resim olarak gösterilen 4.000 piksellik bir fotoğraf, indirilenin çoğunu boşa harcar.
- Ekranın altındaki görselleri ihtiyaç anında yükleyin (lazy load).
- Statik dosyaları (betikler, stiller, görseller) önbelleğe alın ki geri dönen ziyaretçiler bunları yeniden indirmesin. Önbellek nedir sayfasına bakın.
- Uygulamanın her sayfa görüntülemesinde büyük dosyalar dağıtmasına izin vermeyin.
Uygulamadaki her görseli kontrol et. Hepsini gösterildikleri en büyük boyuta küçült, WebP’ye çevir ve ilk ekranın altındaki her şeyi ihtiyaç anında yükle. Önce ve sonra toplam boyutu bana söyle.
Daha hızlı sayfalar ve daha düşük bant genişliği genellikle birlikte gelir. Web sitenizi nasıl daha hızlı yaparsınız rehberine bakın.
Adım 5: Kimsenin kullanmadığı şeyleri temizleyin
- Eski uygulamaların yayınını kaldırın: test dağıtımları, bitmiş denemeler, geçen yılın etkinlik sitesi.
- Eski yüklemeleri, günlükleri ve dışa aktarımları silin, ihtiyacınız yoksa.
- Artık kullanmadığınız paylaşılan önizleme bağlantılarını silin. Mythex’te bir önizleme bağlantısını açmak projeyi uyandırır ve kredinizle çalışır; bu yüzden unutulmuş ve birinin açmaya devam ettiği bir bağlantı hâlâ maliyet çıkarır.
- Kullanılmayan hizmetleri kaldırın: uygulamanın artık çağırmadığı bir API sunucusu ya da çalışan.
Adım 6: Statik bir site düşünün
Sitenizde giriş yoksa, kayıtlı kullanıcı verisi yoksa ve sunucu mantığı yoksa (bir pazarlama sitesi, bir portfolyo, bir menü), bu bir statik site olabilir: bir CDN’den sunulan düz dosyalar. Çalışır durumda tutulacak bir sunucu ya da veritabanı yoktur. Mythex’te statik siteler bekledikleri sürece kredi kullanmaz.
Bu sitede giriş ya da kayıtlı veri yok. Sunucusuz bir statik site olarak yeniden oluşturulabilir mi? Ne kaybederiz?
Adım 7: Ücretli API çağrılarını izleyin
Yapay zeka modelleri, haritalar ya da SMS kullanan uygulamalarda üçüncü taraf faturaları barındırmayı çok geride bırakabilir.
- Çağrı başına ücretli olan her şey için giriş yapmayı zorunlu kılın.
- Kullanıcı başına bir limit ekleyin (hız sınırlama nedir sayfasına bakın).
- Değişmeyen yanıtları önbelleğe alın, örneğin aynı adresin koordinatlarını tekrar tekrar aramak yerine.
- Her sağlayıcıda harcama sınırları ya da uyarılar ayarlayın.
Sık yapılan hatalar
- Ölçmek yerine tahmin etmek. Önce kullanım dökümüne bakın; pahalı kısım çoğu zaman beklediğiniz şey değildir.
- Yavaşlığı düzeltmek için daha büyük bir sunucu almak. Eksik bir veritabanı indeksi ya da çok fazla veri yüklemek genellikle gerçek nedendir.
- Her şeyi yoklamak. Her birkaç saniyelik bir zamanlayıcı, veritabanının uyanık kalması için bir nedendir.
- Uygulamayı “sıcak” tutmak için ona ping atmak. Bu, sıfıra ölçeklemenin size sağladığı tasarrufu yok eder. İlk ziyarette kısa bir uyanma süresini kabul edin ya da bilerek her zaman açık kalmak için ödeme yapın.
- Eski dağıtımları unutmak. Veritabanları ve arka plan işleri olan kullanılmayan uygulamalar sessizce birikir.
- Sıkıştırılmamış görseller. Küçük sitelerde tek başına en büyük bant genişliği maliyeti çoğu zaman budur.
Kontrol listesi
- Hangi projenin ve hangi kategorinin (işlem gücü, veritabanı, bant genişliği, depolama) en çok maliyet çıkardığını biliyorum.
- Kimse bakmazken hiçbir şey veritabanını her birkaç saniyede bir yoklamıyor.
- Panolar mantıklı bir aralıkta ya da yalnızca sekme görünürken yenileniyor.
- Hiçbir çalışma süresi izleyicisi ya da arka plan döngüsü, bir nedeni olmadan uygulamayı uyanık tutmuyor.
- Sunucu, işe yarayan en küçük boyut.
- Görseller küçültülmüş, sıkıştırılmış ve ihtiyaç anında yükleniyor; statik dosyalar önbelleğe alınmış.
- Eski uygulamaların yayını kaldırılmış, eski dosyalar silinmiş, kullanılmayan önizleme bağlantıları kaldırılmış.
- Veri ya da girişi olmayan siteler statik.
- Ücretli API’lerde giriş, kullanıcı başına limit ve sağlayıcı harcama uyarıları var.
Mythex’te maliyetleri düşürmek
Mythex, hem derleme hem de barındırma için tek bir kredi bakiyesi kullanır; bu yüzden barındırmadaki tasarruflar derleme için daha fazla kredi bırakır. Mythex’e özgü birkaç nokta:
- Yayınlanmış uygulamalar ve veritabanları boşta kaldığında uyur ve bir sonraki ziyarette uyanır. Veritabanı 5 dakika boşta kaldıktan sonra uyur, bu yüzden sürekli yoklamayı kaldırmak genellikle en büyük kazançtır.
- Pro, barındırma, veritabanları, bant genişliği, dosya depolama ve önizleme alanı için Ücretsiz planın yarı fiyatını öder; yapay zeka maliyeti iki planda da aynıdır. Bkz. Krediler.
- Düşük bakiye yayınlanmış bir uygulamayı durduracaksa önceden bir e-posta alırsınız; durdurulan uygulamalar veritabanlarını ve dosyalarını korur.
İşletme maliyetleri hakkında daha geniş bir bakış için bir uygulama yapmanın ne kadar tuttuğuna ve web barındırmanın ne olduğuna bakın.
Sorular
Uygulamamın çok az kullanıcısı varken barındırma faturam neden yüksek?
Genellikle bir şey onu uyanık tutuyordur. Veritabanını her birkaç saniyede bir kontrol eden kod, her dakika ping atan bir çalışma süresi izleyicisi ya da unutulmuş bir arka plan döngüsü, ziyaretçi olmasa bile sunucuyu ve veritabanını gece gündüz çalışır halde tutabilir.
Uyuyan bir uygulama para harcar mı?
Sıfıra indiren barındırma hizmetlerinde uyuyan bir uygulama işlem gücü için çok az ya da hiç ücret ödemez; genellikle saklanan veri için yine ödeme yaparsınız. Mythex’te uyuyan yayınlanmış bir uygulama işlem gücü için hiçbir şey harcamaz, veritabanı ise 5 dakika boşta kaldıktan sonra uyur ve yalnızca uyanık kaldığı süre için ücretlendirilir.
Yoklama barındırma maliyetleri için kötü mü?
Her birkaç saniyede bir yoklama yapmak, veritabanının hiç boşta kalmadığı anlamına gelir, bu yüzden uyuyamaz. Daha seyrek yoklayın, yalnızca biri sayfaya bakarken yoklayın ya da sormak yerine güncellemeleri gönderin.
Statik bir site, web uygulamasından barındırmak için daha ucuz mu?
Genellikle evet. Statik bir site, bir CDN üzerinden sunulan yalnızca dosyalardır; çalışır durumda tutulacak bir sunucu ya da veritabanı yoktur. Sitenizde giriş ya da kayıtlı veri yoksa, onu statik bir site olarak oluşturmak mevcut en büyük tasarruflardan biridir.