---
title: 'Maliyet Modeli'
source: 'https://academia.sh/tr/kurslar/bulut-yonetisimi/maliyet-modeli'
course: 'Bulut Yönetişimi, Güvenlik ve Maliyet'
language: tr
updated: '2026-08-17T18:06:54+00:00'
license: 'CC BY-SA 4.0'
---

# Maliyet Modeli

Kiralanan katmanın faturası dört kaleme ayrılır: aylık 1.542 kurgu birimin %37,7'si hesaplama, %31,8'i aktarım, %20,2'si istek ve yalnız %10,3'ü depolamadır; istek ücreti depolamanın 1,95 katıdır. Aynı fatura on bir tasarım kararına eşlendiğinde kararların yarısından fazlası (%50,8) platformun, dördü birden çok kaleme dağılıyor. Ham ölçüm akışında istek ücretinin depolamayı geçtiği nokta 693.370 kalem/ay (11.364 bayt) çıkıyor; ağ kalem başına 152 bayt yazarak bu noktanın 74,8 katı ötesinde duruyor ve 6,48 birimlik depolamaya karşılık 299,43 birim istek ücreti ödüyor.

Önceki konu erişimi daralttı, veriyi şifreledi ve kanıtı üretti. Üçü de bir kaynak tüketti:
anahtar yönetimi servisi çağrıldı, denetim günlüğü yazıldı, özel uç noktalar açıldı, sır
döndürüldü. Bunların hiçbiri bedava değildi ve hiçbirinin bedeli sayılmadı.

Bu konu faturayı okur. İlk soru en yalın olanıdır: aylık tutar hangi kalemlerden oluşuyor, her
kalem hangi tasarım kararından doğuyor ve fatura o kararı adlandırıyor mu.

## Dört Kalem ve Ardındaki Karar

Örnek kurgu **bölgesel ölçüm ağı**dır: beş ekip, üç ortam, kiralanmış makine, ağ, depo, işlev ve
kenar katmanı. Kalemler, miktarlar ve birim fiyatlar kurgudur; **para birimi de kurgudur** ve
`br` diye anılır, gerçek bir fiyat listesine karşılık gelmez.

**BM1:** fatura dört kalem türü taşır — hesaplama, depolama, aktarım, istek — ve on dört satır
verir. **BM2:** her satırın bir birimi, aylık miktarı ve birim fiyatı vardır. **BM3:** her satır
bir **tasarım kararından** doğar ve o kararın bir sahibi vardır; fatura bu iki alanı taşımaz,
modelde tutulur. **BM4:** ham ölçüm akışının gövde hacmi sabittir — akışın kaç **kaleme**
bölündüğü hacmi değiştirmez, yalnız kalem üstverisini ve istek sayısını değiştirir. **BM5:** bir
ayda yazılan veri saklama süresi boyunca ödenir. **BM6:** fatura ay ve kalem satırı bazında
gelir; kaynak, ekip ve ortam ayrımı taşımaz.

Fatura, kalemler ve akış süreç içi bir **modeldir**; gerçek bir fatura yoktur.

```js
// maliyet/fatura.mjs — aylik fatura modeli: gercek bir fatura yok. Kalemler, miktarlar ve birim
// fiyatlar bir veri yapisidir; para birimi kurgudur ve `br` diye anilir, gercek bir fiyat
// listesine karsilik gelmez. Her satir bir *fatura kalemine* bagli, ayrica onu doguran *tasarim
// kararina* ve karari veren tarafa bagli tutulur; fatura bu ikinci baglantiyi hic tasimaz.

// [kalem turu, satir adi, birim, aylik miktar, birim fiyat (br), karar, karari veren]
export const FATURA = [
  ["hesaplama", "kiralanmis makine",      "makine-saat",     8640,  0.062,
    "uc ortamin ucu de surekli acik", "platform"],
  ["hesaplama", "islev cagri suresi",     "bin GB-saniye",     41.6, 0.850,
    "olay basina islev", "uygulama"],
  ["hesaplama", "kenar katmani islem",    "bin cagri",        930,   0.011,
    "on isleme kenarda", "uygulama"],
  ["depolama",  "ham olcum govdesi",      "GB-ay",            189.1, 0.021,
    "ham olcum 24 ay saklanir", "yonetisim"],
  ["depolama",  "kalem ustverisi",        "GB-ay",            119.4, 0.021,
    "her okuma ayri kalem yazilir", "uygulama"],
  ["depolama",  "islenmis seri",          "GB-ay",           1420,   0.019,
    "her toplam onceden hesaplanir", "raporlama"],
  ["depolama",  "anlik goruntu ve yedek", "GB-ay",           2140,   0.048,
    "gunluk anlik goruntu, 35 gun", "yonetisim"],
  ["depolama",  "kayit deposu",           "GB-ay",           1360,   0.017,
    "her istek kaydedilir", "yonetisim"],
  ["aktarim",   "bolge disina cikis",     "GB",              2960,   0.082,
    "rapor bolge disindan cekilir", "raporlama"],
  ["aktarim",   "bolgeler arasi kopya",   "GB",              4400,   0.019,
    "ikinci bolgeye surekli kopya", "platform"],
  ["aktarim",   "bolge ici bolgeler arasi", "GB",           18200,   0.009,
    "her yazma uc bolgeye dagilir", "platform"],
  ["istek",     "nesne yazma",            "milyon istek",      51.84,  4.300,
    "her okuma ayri kalem yazilir", "uygulama"],
  ["istek",     "nesne okuma",            "milyon istek",     212.544, 0.360,
    "rapor bolge disindan cekilir", "raporlama"],
  ["istek",     "islev cagrisi",          "milyon istek",      62.1,   0.190,
    "olay basina islev", "uygulama"],
];

export const TUR = ["hesaplama", "depolama", "aktarim", "istek"];
export const br = (r) => r[3] * r[4];
export const topla = (v) => v.reduce((a, b) => a + b, 0);

// ham olcum akisi: hacim sabit, degisen tek sey kac *kaleme* bolundugu (BM5)
export const AKIS = {
  sayac: 18000, okumaGun: 96, gun: 30,     // aylik okuma sayisi bundan turer
  govdeBayt: 152, ustveriBayt: 96,         // her kalem bir ustveri de tasir
  saklamaAy: 24, depoBr: 0.021,            // bu ayin verisi 24 ay boyunca odenir
  yazmaBr: 4.30, okumaBr: 0.36, okumaKati: 4.1,
};

export const govdeGB = () =>
  AKIS.sayac * AKIS.okumaGun * AKIS.gun * AKIS.govdeBayt / 1e9;

// M: aylik kalem sayisi. Govde hacmi M'den bagimsiz; ustveri M ile buyur.
export const depolamaBr = (M) =>
  (govdeGB() + M * AKIS.ustveriBayt / 1e9) * AKIS.saklamaAy * AKIS.depoBr;
export const istekBr = (M) =>
  M / 1e6 * (AKIS.yazmaBr + AKIS.okumaKati * AKIS.okumaBr);

// iki dogru da M'de dogrusal: kesisim kapali bicimde cikar
export const kesisim = () => {
  const a = (AKIS.yazmaBr + AKIS.okumaKati * AKIS.okumaBr) / 1e6;
  const b = AKIS.ustveriBayt / 1e9 * AKIS.saklamaAy * AKIS.depoBr;
  return govdeGB() * AKIS.saklamaAy * AKIS.depoBr / (a - b);
};
```

```js
// maliyet/olc.mjs — dort kaleme ayirma, kalemin doguran karara eslenmesi ve istek ucretinin
// depolama ucretini gectigi nokta. Tum sayilar yukaridaki modelden turer; olculen sey fatura
// degil, faturanin *cozunurlugudur*.
import { FATURA, TUR, AKIS, br, topla, govdeGB, depolamaBr, istekBr,
  kesisim } from "./fatura.mjs";

const yaz = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join(""));
const t0 = process.hrtime.bigint();

const T = topla(FATURA.map(br)), pay = (x) => `%${(100 * x / T).toFixed(1)}`;
console.log(`${FATURA.length} fatura satiri, aylik ${T.toFixed(0)} br (kurgu para birimi)`);

console.log("\n1. dort kalem: fatura neyi soyluyor");
const A = [-26, -15, 11, 9, 11, 8];
yaz(A, "satir", "birim", "miktar", "birim br", "aylik br", "pay");
for (const t of TUR) {
  const s = FATURA.filter((r) => r[0] === t);
  for (const r of s) yaz(A, r[1], r[2], r[3], r[4].toFixed(3), br(r).toFixed(1), pay(br(r)));
  const alt = topla(s.map(br));
  yaz(A, `  ${t} toplam`, "-", "-", "-", alt.toFixed(1), pay(alt));
}
const T4 = TUR.map((t) => topla(FATURA.filter((r) => r[0] === t).map(br)));
console.log(`  istek ${T4[3].toFixed(1)} br, depolama ${T4[1].toFixed(1)} br: ` +
  `oran ${(T4[3] / T4[1]).toFixed(2)}`);

console.log("\n2. ayni fatura karara eslenince: kalem satiri bir karari adlandirmiyor");
const K = new Map();
for (const r of FATURA) {
  const k = K.get(r[5]) ?? { br: 0, tur: new Set(), sahip: r[6] };
  k.br += br(r); k.tur.add(r[0]); K.set(r[5], k);
}
const B = [-32, -11, 22, 11, 7];
yaz(B, "karar", "veren", "hangi kalemlerde", "aylik br", "pay");
const sirali = [...K.entries()].sort((a, b) => b[1].br - a[1].br);
for (const [ad, k] of sirali)
  yaz(B, ad, k.sahip, [...k.tur].join("+"), k.br.toFixed(1), pay(k.br));
const cok = sirali.filter(([, k]) => k.tur.size > 1);
console.log(`  ${K.size} karar, ${FATURA.length} fatura satiri; ${cok.length} karar birden ` +
  `cok kaleme dagiliyor`);
const S = new Map();
for (const [, k] of K) S.set(k.sahip, (S.get(k.sahip) ?? 0) + k.br);
const sSirali = [...S.entries()].sort((a, b) => b[1] - a[1]);
const sMetin = sSirali.map(([s, v]) => `${s} ${v.toFixed(1)} br (${pay(v)})`);
console.log(`  karari verene gore: ${sMetin.slice(0, 2).join(", ")},`);
console.log(`  ${sMetin.slice(2).join(", ")}`);

console.log("\n3. istek ucreti nerede depolama ucretini geciyor (ham olcum akisi)");
const gercek = AKIS.sayac * AKIS.okumaGun * AKIS.gun;
console.log(`  hacim sabit: ${govdeGB().toFixed(2)} GB/ay govde, ` +
  `${(gercek / 1e6).toFixed(2)} milyon okuma/ay`);
const C = [15, 12, 12, 12, 10, 11];
yaz(C, "kalem/ay", "kalem bayt", "okuma/kalem", "depolama br", "istek br", "baskin");
for (const M of [1e4, 1e5, 3e5, 693372, 1e6, 5e6, 51.84e6, 2e8]) {
  const d = depolamaBr(M), i = istekBr(M);
  yaz(C, M.toLocaleString("en-US"), (govdeGB() * 1e9 / M).toFixed(0),
    (gercek / M).toFixed(2), d.toFixed(2), i.toFixed(2), i > d ? "istek" : "depolama");
}
const M0 = kesisim();
console.log(`  kesisim ${Math.round(M0).toLocaleString("en-US")} kalem/ay: ` +
  `kalem basina ${(govdeGB() * 1e9 / M0).toFixed(0)} bayt, ` +
  `${(gercek / M0).toFixed(1)} okuma/kalem`);
const Mv = gercek;
console.log(`  agin secimi her okuma ayri kalem: ${(Mv / M0).toFixed(1)} kat kesisimin otesi;`);
console.log(`  depolama ${depolamaBr(Mv).toFixed(2)} br, istek ${istekBr(Mv).toFixed(2)} br, ` +
  `oran ${(istekBr(Mv) / depolamaBr(Mv)).toFixed(1)}`);

console.log("\n4. faturanin cozunurlugu: kac ayrim veriyor, kac ayrim gerekiyor");
const D = [-28, 8, 16];
const EKIP = 5, ORTAM = 3, KAYNAK = 6;
yaz(D, "ayrim", "adet", "kaynak");
yaz(D, "fatura satiri (aylik)", FATURA.length, "fatura");
yaz(D, "kalem turu", TUR.length, "fatura");
yaz(D, "tasarim karari", K.size, "faturada yok");
yaz(D, "karari veren taraf", S.size, "faturada yok");
yaz(D, "ekip x ortam x kaynak turu", EKIP * ORTAM * KAYNAK, "faturada yok");
const kalan = EKIP * ORTAM * KAYNAK - FATURA.length;
console.log(`  fatura ${FATURA.length} ayrim veriyor, ag ${EKIP * ORTAM * KAYNAK} birim ` +
  `ayirmayi gerektiriyor: ${kalan} birim faturadan okunamiyor`);

const ms = Number(process.hrtime.bigint() - t0) / 1e6;   // ham olcum basilmaz, bant denetlenir
console.log(`\ndort tablo 2000 ms bandinda: ${ms < 2000 ? "evet" : "hayir"}`);
```

```
14 fatura satiri, aylik 1542 br (kurgu para birimi)

1. dort kalem: fatura neyi soyluyor
satir                     birim               miktar birim br   aylik br     pay
kiralanmis makine         makine-saat           8640    0.062      535.7   %34.7
islev cagri suresi        bin GB-saniye         41.6    0.850       35.4    %2.3
kenar katmani islem       bin cagri              930    0.011       10.2    %0.7
  hesaplama toplam        -                        -        -      581.3   %37.7
ham olcum govdesi         GB-ay                189.1    0.021        4.0    %0.3
kalem ustverisi           GB-ay                119.4    0.021        2.5    %0.2
islenmis seri             GB-ay                 1420    0.019       27.0    %1.7
anlik goruntu ve yedek    GB-ay                 2140    0.048      102.7    %6.7
kayit deposu              GB-ay                 1360    0.017       23.1    %1.5
  depolama toplam         -                        -        -      159.3   %10.3
bolge disina cikis        GB                    2960    0.082      242.7   %15.7
bolgeler arasi kopya      GB                    4400    0.019       83.6    %5.4
bolge ici bolgeler arasi  GB                   18200    0.009      163.8   %10.6
  aktarim toplam          -                        -        -      490.1   %31.8
nesne yazma               milyon istek         51.84    4.300      222.9   %14.5
nesne okuma               milyon istek       212.544    0.360       76.5    %5.0
islev cagrisi             milyon istek          62.1    0.190       11.8    %0.8
  istek toplam            -                        -        -      311.2   %20.2
  istek 311.2 br, depolama 159.3 br: oran 1.95

2. ayni fatura karara eslenince: kalem satiri bir karari adlandirmiyor
karar                           veren            hangi kalemlerde   aylik br    pay
uc ortamin ucu de surekli acik  platform                hesaplama      535.7  %34.7
rapor bolge disindan cekilir    raporlama           aktarim+istek      319.2  %20.7
her okuma ayri kalem yazilir    uygulama           depolama+istek      225.4  %14.6
her yazma uc bolgeye dagilir    platform                  aktarim      163.8  %10.6
gunluk anlik goruntu, 35 gun    yonetisim                depolama      102.7   %6.7
ikinci bolgeye surekli kopya    platform                  aktarim       83.6   %5.4
olay basina islev               uygulama          hesaplama+istek       47.2   %3.1
her toplam onceden hesaplanir   raporlama                depolama       27.0   %1.7
her istek kaydedilir            yonetisim                depolama       23.1   %1.5
on isleme kenarda               uygulama                hesaplama       10.2   %0.7
ham olcum 24 ay saklanir        yonetisim                depolama        4.0   %0.3
  11 karar, 14 fatura satiri; 3 karar birden cok kaleme dagiliyor
  karari verene gore: platform 783.1 br (%50.8), raporlama 346.2 br (%22.5),
  uygulama 282.8 br (%18.3), yonetisim 129.8 br (%8.4)

3. istek ucreti nerede depolama ucretini geciyor (ham olcum akisi)
  hacim sabit: 7.88 GB/ay govde, 51.84 milyon okuma/ay
       kalem/ay  kalem bayt okuma/kalem depolama br  istek br     baskin
         10,000      787968     5184.00        3.97      0.06   depolama
        100,000       78797      518.40        3.98      0.58   depolama
        300,000       26266      172.80        3.99      1.73   depolama
        693,372       11364       74.77        4.00      4.00      istek
      1,000,000        7880       51.84        4.02      5.78      istek
      5,000,000        1576       10.37        4.21     28.88      istek
     51,840,000         152        1.00        6.48    299.43      istek
    200,000,000          39        0.26       13.65   1155.20      istek
  kesisim 693,370 kalem/ay: kalem basina 11364 bayt, 74.8 okuma/kalem
  agin secimi her okuma ayri kalem: 74.8 kat kesisimin otesi;
  depolama 6.48 br, istek 299.43 br, oran 46.2

4. faturanin cozunurlugu: kac ayrim veriyor, kac ayrim gerekiyor
ayrim                           adet          kaynak
fatura satiri (aylik)             14          fatura
kalem turu                         4          fatura
tasarim karari                    11    faturada yok
karari veren taraf                 4    faturada yok
ekip x ortam x kaynak turu        90    faturada yok
  fatura 14 ayrim veriyor, ag 90 birim ayirmayi gerektiriyor: 76 birim faturadan okunamiyor

dort tablo 2000 ms bandinda: evet
```

Sayılar **ölçüm** sınıfındadır; girdileri yukarıdaki varsayımlardır.

## Faturanın Şekli

Birinci tablo aylık 1.542 birimi dört kaleme ayırır. Hesaplama **%37,7** ile en büyüğüdür ve
neredeyse tamamı tek satırdan gelir: üç ortamın kiralanmış makineleri 535,7 birim, faturanın
**%34,7'si**. Aktarım **%31,8** ile ikincidir. İstek **%20,2**, depolama ise yalnız **%10,3**.

Sıralamanın ters çevirdiği beklenti şudur: veri saklayan bir ağda en küçük kalem depolamadır ve
**istek ücreti onun 1,95 katıdır**. Tek başına nesne yazma satırı 222,9 birim tutar; depolamanın
beş satırının toplamı 159,3 birimdir.

Birim fiyatın küçüklüğü de kalemin küçüklüğü anlamına gelmez. Bölge içi bölgeler arası aktarım
GB başına 0,009 birimle faturadaki en ucuz birim fiyattır; 18.200 GB ile faturanın **%10,6'sını**
tutar — depolamanın tamamından fazlasını. Ucuz olan çok kullanılır, çok kullanılan büyür.

## Fatura Kalemi Bir Kararı Adlandırmıyor

İkinci tablo aynı tutarı, satırları doğuran karara göre yeniden toplar. On dört fatura satırı
**on bir karara** iner ve üçü tek bir kalem türüne sığmaz: "rapor bölge dışından çekilir" hem
aktarımda hem istekte görünür (319,2 birim), "her okuma ayrı kalem yazılır" hem depolamada hem
istekte (225,4 birim), "olay başına işlev" hem hesaplamada hem istekte (47,2 birim).

Bu, faturayı okumanın neden karar üretmediğini gösterir. İstek kalemi **%20,2** diye okunduğunda
tek bir şey değildir: içinde üç ayrı kararın artığı vardır ve o kararların her biri başka bir
kalemde de iz bırakır. İstek kalemini küçültmek için istek kaleminde yapılabilecek bir şey
yoktur; kararın kendisi değişmelidir.

Kararı verene göre toplam daha da keskindir. Faturanın **%50,8'i** platformun verdiği üç karardan
doğar: makinelerin sürekli açık kalması, her yazmanın üç bölgeye dağılması, ikinci bölgeye
sürekli kopya. Raporlama **%22,5**, uygulama **%18,3**, yönetişim **%8,4**. Faturayı ekiplere
gösterip kısıntı beklemek, tutarın yarısının hiçbir ekibin kararı olmadığı bir yerde başlar.

## Küçük Ücretin Baskın Hâle Geldiği Nokta

Üçüncü tablo tek bir akışı izole eder. Ham ölçüm akışı ayda 51,84 milyon okuma ve **7,88 GB**
gövde üretir; bu hacim sabittir. Değişen tek şey akışın kaç kaleme bölündüğüdür.

Tarama iki eğriyi yan yana koyar. Depolama neredeyse yataydır: on bin kalemde 3,97 birim, iki
yüz milyon kalemde 13,65 birim — büyümenin tamamı kalem üstverisinden gelir. İstek ise
**doğrusaldır ve sıfırdan başlar**: on bin kalemde 0,06 birim, iki yüz milyonda 1.155,20 birim.

İki eğri **693.370 kalem/ay**'da kesişir. Kalem başına **11.364 bayt**, yani yaklaşık **74,8
okuma**. Bu noktanın altında depolama baskındır ve istek ücreti gürültüdür; üstünde tersi olur.

Ağın seçimi her okumayı ayrı kalem yazmaktır: kalem başına 152 bayt, kesişimin **74,8 katı**
ötesi. Orada depolama 6,48 birim, istek **299,43 birimdir** — kırk altı kat. İstek başına ücret
faturada 4,30 birim/milyon diye yazılıdır ve tek bir işlem için ölçülemeyecek kadar küçüktür;
baskın hâle gelmesi fiyattan değil, **sayıdan** gelir. Bu ücretin ardındaki tasarım kararı bir
depolama kararı gibi görünmez, bir **parçalama** kararıdır ve fatura o adı hiç kullanmaz.

## Faturanın Çözünürlüğü

Dördüncü tablo sınırı sayar. Fatura ayda on dört satır ve dört kalem türü verir. Ağ ise beş ekip,
üç ortam ve altı kaynak türüyle **90 birim** ayırmayı gerektirir. On dört satırdan doksan birime
giden bir eşleme yoktur: **76 birim faturadan okunamaz**. Kararı veren taraf da, kararın kendisi
de faturada yoktur; ikisi de yalnız modelde bilinir.

Fatura bu hâliyle bir muhasebe belgesi değil, bir **toplam**dır. Sahip bilgisi faturada değilse
başka bir yerden gelmek zorundadır.

## Özet

- Kurgu ağın aylık 1.542 birimlik faturası dört kaleme ayrılır: hesaplama %37,7, aktarım %31,8,
  istek %20,2, depolama %10,3. Veri saklayan bir ağda **istek ücreti depolamanın 1,95 katıdır**.
- Birim fiyatın küçüklüğü kalemin küçüklüğü demek değildir: GB başına 0,009 birimlik en ucuz
  aktarım satırı, 18.200 GB ile faturanın %10,6'sını tutar.
- On dört fatura satırı on bir tasarım kararından doğar ve üç karar birden çok kaleme dağılır;
  bir kalemi küçültmek o kalemde değil, kararda yapılan bir işle olur.
- Faturanın **%50,8'i** platformun verdiği üç karardan gelir; uygulama ekiplerinin kararı %18,3.
  Kısıntıyı ekipten beklemek tutarın yarısının dışında kalır.
- Sabit hacimli ham ölçüm akışında istek ücreti depolamayı **693.370 kalem/ay**'da geçer — kalem
  başına 11.364 bayt. Ağ 152 baytlık kalem yazar, kesişimin 74,8 katı ötesinde durur ve 6,48
  birimlik depolamaya karşılık **299,43 birim** istek ücreti öder.
- Fatura on dört ayrım verir, ağ 90 birim ayırmayı gerektirir: **76 birim faturadan okunamaz**.

## Sonraki Adım

Fatura toplamı okundu ve kalemler ayrıldı, ama her kalemin karşısında hâlâ bir sahip yok. Sıradaki
ders sahiplik bilgisini faturanın dışından getirir: kaynaklara etiket takılır ve maliyet ekiplere
o etiketten dağıtılır. Ölçülecek olan dağıtımın kendisi değil, dağıtımın **tutmadığı** yerdir —
etiketsiz kaynağın tuttuğu pay, paylaşılan kaynağın hangi kuralla bölüşüleceği ve etiket
zorunluluğu getirildiğinde geçmiş faturaya ne olduğu.
