---
title: 'Bölgeler ve Erişilebilirlik Alanları'
source: 'https://academia.sh/tr/kurslar/bulut-temelleri/bolgeler-ve-erisilebilirlik-alanlari'
course: 'Bulut Temelleri'
language: tr
updated: '2026-08-17T18:06:54+00:00'
license: 'CC BY-SA 4.0'
---

# Bölgeler ve Erişilebilirlik Alanları

Kiralanan kalemin fiziksel olarak nerede durduğunun sayılması: tek alana yerleşimde bir alan kaybının ayakta bıraktığı kalem, iki ve üç alana yayılmanın fazladan kapasite bedeli, bölge kaybının alan yayılımından bağımsız kalması ve bölgeler arası gecikmenin gecelik toplu işe eklediği süre.

Önceki ders sorumluluk sınırını çizdi: hangi kalemin bakımı sağlayıcıda, hangisi kiracıda, hangisi
ikisinin de öteki yapıyor sandığı boşlukta. Sınır çizildi, ama bir soru sorulmadan kaldı —
kiralanan şey **fiziksel olarak nerede duruyor**. Bir kira sözleşmesi hangi binada ve hangi
elektrik hattında oturulduğunu söylemez; oysa o hat kesildiğinde hizmetin ne kadarının ayakta
kaldığı bu bilgiye bağlıdır.

**Erişilebilirlik alanı**, kendi gücü, soğutması ve ağ girişi olan, komşusuyla aynı anda düşmeyecek
biçimde ayrılmış bir yerleşim birimidir. **Bölge**, birbirine düşük gecikmeli bağlarla bağlanmış
böyle alanların kümesidir. İkisi arasındaki fark bir coğrafya sorusu değil bir **arıza alanı
ayrımı** sorusudur: iki kalem aynı alandaysa aynı arıza ikisini birlikte alır, ayrı alanlardaysa
almaz. Bu dersin ölçtüğü şey o ayrımın karşılığı ve bedelidir. Dağıtım damgası ve coğrafi kopya
ölçümü Dayanıklılık Kalıpları kursunda yapıldı; burada tekrarlanmaz.

## Yerleşim Modeli

Aşağıdaki düzenek bir **modeldir**. Kurgu bölgesel ölçüm ağının kalemleri — su sayacı okuma
toplayıcı, doğrulayıcı, faturalama, iş emri servisi, depolar ve gecelik toplu iş — kapsamlarına
göre etiketlenir. Gerçek bir bölge, alan ya da sağlayıcı yoktur; kapasite sayıları kurgu bir
`birim/saat` cinsindendir.

- **BC1.** Bir bölge, bağımsız güç, soğutma ve ağ girişi olan en az üç erişilebilirlik alanından
  oluşur.
- **BC2.** Ağın 13 kalemi vardır ve her kalem alan, bölge ya da küresel kapsamlıdır.
- **BC3.** Alan kapsamlı kalemin hangi alana konacağını kiracı seçer. Bölge ve küresel kapsamlı
  kalemi sağlayıcı dağıtır; dağıtımın ayrıntısı kiracıya görünmez ve sınanamaz.
- **BC4.** Bir alan kaybı o alandaki bütün kalemleri aynı anda alır; iki alan aynı anda düşmez.

```js
// cografya/model.mjs — bolge/alan yerlesimi MODELIDIR: kurgu olcum aginin kalemleri, kapsamlari
// ve taban kapasiteleri. Gercek bolge, alan ya da saglayici yoktur; butun sayilar kurgudur.
export const ALAN = ["a1", "a2", "a3"];        // bir bolgedeki ayri ariza alanlari (kurgu)

// ad, kapsam, taban kapasite (kurgu birim/saat), yazma ucu tekil mi
export const KALEM = [
  ["okuma-toplayici", "alan", 12, false], ["abone-ucu", "alan", 6, false],
  ["faturalama", "alan", 4, false], ["is-emri-servisi", "alan", 3, false],
  ["okuma-deposu", "alan", 8, true], ["tarife-deposu", "alan", 2, true],
  ["gecelik-toplu-is", "alan", 5, true], ["dogrulayici", "bolge", 6, false],
  ["ham-okuma-deposu", "bolge", 3, false], ["okuma-kuyrugu", "bolge", 2, false],
  ["yuk-dagitici", "bolge", 2, false], ["anahtar-yonetimi", "bolge", 1, false],
  ["ad-cozumleme", "kuresel", 1, false],
];

export const kapsamli = (k) => KALEM.filter(([, k2]) => k2 === k);
export const TABAN = kapsamli("alan").reduce((a, [, , c]) => a + c, 0);       // 40 birim
export const BOLGE_KIRA = kapsamli("bolge").reduce((a, [, , c]) => a + c, 0); // dagitimi saglayicida
export const KURESEL_KIRA = kapsamli("kuresel").reduce((a, [, , c]) => a + c, 0);

// n alana yayilan bir yerlesimde bir alan kaybindan sonra ayakta kalan taban kapasite orani
export const ayaktaOran = (n) => (n - 1) / n;
// kayiptan sonra tam kapasite icin her alana taban/(n-1) konur; toplam kiralanan = TABAN*n/(n-1)
export const carpan = (n) => (n < 2 ? Infinity : n / (n - 1));

export function planOlc(n) {
  const alanKalem = kapsamli("alan").length;
  const ayaktaKalem = n < 2 ? 0 : alanKalem;          // tek alanda kopya yok, hepsi ayni alanda
  const tam = n < 2 ? Infinity : TABAN * carpan(n);
  return {
    n, ayaktaKalem, alanKalem, ayaktaOran: ayaktaOran(n),
    yalin: TABAN + BOLGE_KIRA + KURESEL_KIRA,          // fazladan almadan kiralanan
    tam: n < 2 ? Infinity : tam + BOLGE_KIRA + KURESEL_KIRA,
    fazladan: n < 2 ? Infinity : tam - TABAN,
    yazmaKesen: kapsamli("alan").filter(([, , , t]) => t).length, // yazma ucu tek alandadir
  };
}
```

## Bir Alan Düştüğünde

Ölçü iki sayıyı birlikte okur: kayıptan sonra **ayakta kalan** ve tam kapasiteyi geri getirmek
için **fazladan kiralanan**. İkincisi olmadan birincisi bir karar taşımaz.

```js
// cografya/olc.mjs — bir alan dustugunde ayakta kalan kalem, ayakta kalan kapasite ve
// tam kapasiteyi geri getirmenin fazladan bedeli; alan sayisi arttikca ikisi birlikte
import { KALEM, TABAN, BOLGE_KIRA, KURESEL_KIRA, kapsamli, planOlc, carpan } from "./model.mjs";

const s = (x, n) => String(x).padStart(n);
const y = (x) => (Number.isFinite(x) ? x.toFixed(2) : "-");
const AD = { 1: "tek-alan", 2: "iki-alan", 3: "uc-alan", 4: "dort-alan" };

console.log(`${KALEM.length} kalem: ${kapsamli("alan").length} alan kapsamli, ` +
  `${kapsamli("bolge").length} bolge kapsamli, ${kapsamli("kuresel").length} kuresel.`);
console.log(`alan kapsamli taban kapasite ${TABAN} birim; bolge kapsamli kira ${BOLGE_KIRA}, ` +
  `kuresel kira ${KURESEL_KIRA} birim (kurgu).`);
console.log(`alan secimini kiraci yapmayan kalem: ${KALEM.length - kapsamli("alan").length}`);
console.log();

console.log("plan      | alan | ayakta kalem | ayakta kapasite | yalin kira | tam kapasite kirasi | fazladan");
console.log("----------|------|--------------|-----------------|------------|---------------------|---------");
for (const n of [1, 2, 3, 4]) {
  const p = planOlc(n);
  console.log(`${AD[n].padEnd(9)} | ${s(n, 4)} | ${s(`${p.ayaktaKalem}/${p.alanKalem}`, 12)} | ` +
    `${s(`%${(100 * p.ayaktaOran).toFixed(1)}`, 15)} | ${s(y(p.yalin), 10)} | ` +
    `${s(y(p.tam), 19)} | ${s(y(p.fazladan), 8)}`);
}

console.log();
console.log("alan | carpan | fazladan birim | bir onceki plana gore kazanc");
console.log("-----|--------|----------------|-----------------------------");
let oncekiFazladan = null;
for (const n of [2, 3, 4, 5, 6]) {
  const f = TABAN * carpan(n) - TABAN;
  const kazanc = oncekiFazladan === null ? "-" : y(oncekiFazladan - f);
  console.log(`${s(n, 4)} | ${s(y(carpan(n)), 6)} | ${s(y(f), 14)} | ${s(kazanc, 28)}`);
  oncekiFazladan = f;
}

console.log();
const p2 = planOlc(2);
console.log(`bir alan kaybinda yazma ucu kesilen kalem: ${p2.yazmaKesen}/${kapsamli("alan").length}` +
  ` — yayilma okumayi kurtarir, tekil yazma ucunu kurtarmaz.`);
```

```
13 kalem: 7 alan kapsamli, 5 bolge kapsamli, 1 kuresel.
alan kapsamli taban kapasite 40 birim; bolge kapsamli kira 14, kuresel kira 1 birim (kurgu).
alan secimini kiraci yapmayan kalem: 6

plan      | alan | ayakta kalem | ayakta kapasite | yalin kira | tam kapasite kirasi | fazladan
----------|------|--------------|-----------------|------------|---------------------|---------
tek-alan  |    1 |          0/7 |            %0.0 |      55.00 |                   - |        -
iki-alan  |    2 |          7/7 |           %50.0 |      55.00 |               95.00 |    40.00
uc-alan   |    3 |          7/7 |           %66.7 |      55.00 |               75.00 |    20.00
dort-alan |    4 |          7/7 |           %75.0 |      55.00 |               68.33 |    13.33

alan | carpan | fazladan birim | bir onceki plana gore kazanc
-----|--------|----------------|-----------------------------
   2 |   2.00 |          40.00 |                            -
   3 |   1.50 |          20.00 |                        20.00
   4 |   1.33 |          13.33 |                         6.67
   5 |   1.25 |          10.00 |                         3.33
   6 |   1.20 |           8.00 |                         2.00

bir alan kaybinda yazma ucu kesilen kalem: 3/7 — yayilma okumayi kurtarir, tekil yazma ucunu kurtarmaz.
```

Birinci satır bu dersin en sert sayısıdır: tek alana yerleşimde bir alan düştüğünde ayakta kalan
kalem **0/7** ve ayakta kalan kapasite **yüzde 0**. Yedeklilik ya da yeniden başlatma politikası bu
satırı değiştirmez: kaybedilen şey kopya değil, kopyaların oturduğu **tek** arıza alanıdır.

İki alana yayılınca ayakta kalan kalem 7/7 oluyor, ama ayakta kalan kapasite yüzde 50'de kalıyor:
kalemin var olması ile yükü kaldırması ayrı sayılardır. Kayıptan sonra tam kapasite isteniyorsa her
alanın tek başına bütün yükü taşıması gerekir ve kiralanan 55 birimden **95 birime** çıkar. Üçüncü
sütun asıl kararı veriyor: üç alana yayılan aynı güvence **75 birime** düşüyor. Alan sayısı arttıkça
her alana düşen pay $1/(n-1)$ ile küçüldüğü için **üç alan iki alandan 20 birim ucuza aynı işi
yapıyor** — arıza alanı eklemek kapasite bedelini artırmaz, düşürür.

İkinci tablo bu düşüşün nerede durduğunu gösteriyor. Fazladan bedel ikiden üçe geçişte 20 birim
azalıyor, üçten dörde geçişte 6,67, dörtten beşe 3,33. Dördüncü alan üçüncünün kazandırdığının
üçte birini kazandırıyor; **azalan getiri noktası üç alandır** ve dördüncü alanın gerekçesi
kapasite bedeli değil, artık başka bir şey olmak zorundadır.

Son satır yayılmanın karşılamadığı yeri adlandırıyor. Yedi kalemin üçünde yazma ucu tekildir; o uç
hangi alandaysa, o alanın kaybı okuma trafiğini değil ama **yazmayı** kesintiye uğratır. Alanlara
yayılmak 7/7 kalemi ayakta tutarken 3/7 kalemin yazma yolunu ayakta tutmaz.

## Bölge Düştüğünde ve Eşzamanlı Yazmanın Bedeli

Alan ayrımı bir bölgenin **içindeki** arızayı böler. Bölgenin kendisi — ortak ağ girişi, ortak
denetim düzlemi, ortak coğrafya — bölünmez.

- **BC5.** Bir bölgedeki alanlar arası gidiş-dönüş 1,2 ms, iki bölge arası 68 ms (kurgu).
- **BC6.** Gecelik toplu iş 480.000 okuma kaydı yazar, paralellik 8, pencere 240 dk; tepe gün
  hacmi üç katıdır. Taban yazma süresi 4,0 ms.

```js
// cografya/bolge.mjs — bolge kaybi alan yayilimindan bagimsizdir; bolgeler arasi gecikme
// eszamanli yazmaya bir sayiyla baglanir. Sureler MODELDEN turetilir, saat okunmaz.
import { KALEM, TABAN, BOLGE_KIRA, KURESEL_KIRA, kapsamli, planOlc } from "./model.mjs";

const s = (x, n) => String(x).padStart(n);
const y = (x, n = 2) => x.toFixed(n);
const KAYIT = 480_000, PARALEL = 8, PENCERE = 240, TEPE = 3;  // kurgu: gecelik toplu is
const YAZMA = 4.0, ALAN_RTT = 1.2, BOLGE_RTT = 68.0;          // kurgu ms

console.log("plan      | alan kaybinda ayakta | bolge kaybinda ayakta | tek bolge kira | iki bolge kira");
console.log("----------|----------------------|-----------------------|----------------|---------------");
for (const n of [1, 2, 3]) {
  const p = planOlc(n);
  const kira = Number.isFinite(p.tam) ? p.tam : p.yalin;
  console.log(`${["tek-alan", "iki-alan", "uc-alan"][n - 1].padEnd(9)} | ` +
    `${s(`${p.ayaktaKalem}/${KALEM.length}`, 20)} | ${s(`${kapsamli("kuresel").length}/${KALEM.length}`, 21)} | ` +
    `${s(y(kira), 14)} | ${s(y(2 * kira - KURESEL_KIRA), 14)}`);
}
console.log(`bolge kaybi uc planda da ayni: yalniz kuresel kalem ayakta.`);
console.log();

console.log("yazma duzeni          | gidis-donus | yazma suresi | verim (yazma/s) | toplu is | tepe gun");
console.log("----------------------|-------------|--------------|-----------------|----------|---------");
for (const [ad, rtt] of [["alan ici", 0], ["alanlar arasi", ALAN_RTT], ["bolgeler arasi", BOLGE_RTT]]) {
  const sure = YAZMA + rtt;
  const dk = (KAYIT * sure) / PARALEL / 60_000;
  console.log(`${ad.padEnd(21)} | ${s(y(rtt) + " ms", 11)} | ${s(y(sure) + " ms", 12)} | ` +
    `${s(y((1000 / sure) * PARALEL), 15)} | ${s(y(dk) + " dk", 8)} | ${s(y(TEPE * dk) + " dk", 8)}`);
}
console.log(`pencere ${PENCERE} dk; tepe gunde bolgeler arasi eszamanli yazma penceresinin ` +
  `%${y((100 * TEPE * KAYIT * (YAZMA + BOLGE_RTT)) / PARALEL / 60_000 / PENCERE, 1)}'ini kullanir.`);
console.log();

console.log("kapsam   | kalem |  kira | yerlesim karari | kayip sinanabilir | cikista tasinan");
console.log("---------|-------|-------|-----------------|-------------------|----------------");
for (const [k, kira] of [["alan", TABAN], ["bolge", BOLGE_KIRA], ["kuresel", KURESEL_KIRA]]) {
  const kiraci = k === "alan";
  console.log(`${k.padEnd(8)} | ${s(kapsamli(k).length, 5)} | ${s(y(kira), 5)} | ` +
    `${(kiraci ? "kiraci" : "saglayici").padEnd(15)} | ${(kiraci ? "evet" : "hayir").padEnd(17)} | ` +
    `${kiraci ? "evet" : "hayir"}`);
}
const devir = KALEM.length - kapsamli("alan").length;
console.log(`devredilen yerlesim karari ${devir}/${KALEM.length}; ` +
  `bunlarin kirasi ${y(BOLGE_KIRA + KURESEL_KIRA)} birim ve fazladan kapasite bedeli 0.`);
```

```
plan      | alan kaybinda ayakta | bolge kaybinda ayakta | tek bolge kira | iki bolge kira
----------|----------------------|-----------------------|----------------|---------------
tek-alan  |                 0/13 |                  1/13 |          55.00 |         109.00
iki-alan  |                 7/13 |                  1/13 |          95.00 |         189.00
uc-alan   |                 7/13 |                  1/13 |          75.00 |         149.00
bolge kaybi uc planda da ayni: yalniz kuresel kalem ayakta.

yazma duzeni          | gidis-donus | yazma suresi | verim (yazma/s) | toplu is | tepe gun
----------------------|-------------|--------------|-----------------|----------|---------
alan ici              |     0.00 ms |      4.00 ms |         2000.00 |  4.00 dk | 12.00 dk
alanlar arasi         |     1.20 ms |      5.20 ms |         1538.46 |  5.20 dk | 15.60 dk
bolgeler arasi        |    68.00 ms |     72.00 ms |          111.11 | 72.00 dk | 216.00 dk
pencere 240 dk; tepe gunde bolgeler arasi eszamanli yazma penceresinin %90.0'ini kullanir.

kapsam   | kalem |  kira | yerlesim karari | kayip sinanabilir | cikista tasinan
---------|-------|-------|-----------------|-------------------|----------------
alan     |     7 | 40.00 | kiraci          | evet              | evet
bolge    |     5 | 14.00 | saglayici       | hayir             | hayir
kuresel  |     1 |  1.00 | saglayici       | hayir             | hayir
devredilen yerlesim karari 6/13; bunlarin kirasi 15.00 birim ve fazladan kapasite bedeli 0.
```

Birinci tablonun ikinci sütunu üç satırda da aynı: bölge kaybında ayakta kalan kalem **1/13** ve
ayakta kalan tek kalem ad çözümlemesidir. Alan ayrımına ödenen 20 ya da 40 birim bu sütunu bir
kalem bile oynatmıyor. İkinci bölgede tam kopya tutmak üç alanlı planda kirayı 75'ten **149
birime** çıkarıyor, yani alan ayrımının bedelinin yaklaşık dört katı. Arıza alanı ayrımı
katmanlıdır ve her katmanın bedeli ayrı ödenir.

İkinci tablo o bedelin gizli kısmını gösteriyor. Alanlar arası 1,2 ms'lik gidiş-dönüş bir eşzamanlı
yazmayı 4,0 ms'den 5,2 ms'ye çıkarıyor; toplu iş 4,00 dakikadan 5,20 dakikaya uzuyor — yüzde 30'luk
bir artış, 240 dakikalık pencerede fark etmez. Bölgeler arası 68 ms aynı yazmayı **72,0 ms** yapıyor
ve yazma verimi 2000'den **111,11 yazma/s**'ye düşüyor. Toplu iş 72 dakikaya çıkıyor; tepe günde
216 dakika ile pencerenin **yüzde 90'ını** yiyor ve elde 24 dakika kalıyor. Bölgeler arası eşzamanlı
yazma bir dayanıklılık kararı gibi görünür, ama faturayı kesen yer gecelik toplu işin penceresidir.

## Devredilen Karar ve Çıkışta Taşınan

Üçüncü tablo bu dersin kiralama defteridir. On üç kalemin **7'sinde** yerleşim kararı kiracıdadır:
hangi alana kaç kopya konacağı yazılabilir, sınanabilir ve bir alan düşürülerek ölçülebilir. Kalan
**6 kalemde** karar devredilmiştir; bunların kapsamı bölge ya da küreseldir ve hangi alanlara nasıl
dağıtıldıkları kiracıya görünmez.

Devrin karşılığı iki kalemdir. Birincisi, 15 birimlik kira içinde alanlar arası dağıtımın da
bulunması: kiracı bu 6 kalem için **0 fazladan kapasite** ödüyor, oysa aynı yedekliliği kendi
kursaydı üç alanlı planda yüzde 50 fazladan öderdi. İkincisi, bu 6 kalemin işletim yükünün hiç
görünmemesi. Devrin bedeli üçüncü sütundur: kayıp **sınanamaz**. Bir alanı düşürüp ölçmek yalnız
7 kalemde mümkündür; 6 kalem için elde yalnız sağlayıcının sözü vardır.

Çıkışta taşınan da aynı ayrımı izliyor. Alan kapsamlı 7 kalemin yerleşim planı bir tanımdır — kaç
kopya, hangi ayrı arıza alanı, kayıptan sonra hangi kapasite — ve bu tanım başka bir kiralamada
aynen kurulabilir. Bölge ve küresel kapsamlı 6 kalemin dağıtımı hiç görünmediği için taşınacak bir
tanım da yoktur; karşı tarafta yeniden ölçülmesi, çoğu durumda yeniden **satın alınması** gerekir.
Kiralanan coğrafyanın yarısına yakını, çıkarken elde kalmıyor.

## Özet

- Erişilebilirlik alanı bağımsız güç, soğutma ve ağ girişi olan bir yerleşim birimidir; bölge böyle
  alanların düşük gecikmeli kümesidir. Ayrım bir coğrafya değil bir arıza alanı ayrımıdır.
- Tek alana yerleşimde bir alan kaybı 7 alan kapsamlı kalemin **0'ını** ayakta bırakır ve ayakta
  kalan kapasite yüzde 0'dır; iki ve üç alanda 7/7 kalem ayakta kalır, ama yazma ucu tekil olan
  3 kalemin yazma yolu ayakta kalmaz.
- Kayıptan sonra tam kapasite için kiralanan iki alanda 95, üç alanda 75, dört alanda 68,33 birim:
  **üç alan iki alandan 20 birim ucuzdur** ve azalan getiri noktası üçüncü alandır.
- Bölge kaybında ayakta kalan kalem üç planda da 1/13'tür; ikinci bölgede tam kopya üç alanlı
  kirayı 75'ten 149 birime çıkarır.
- Bölgeler arası eşzamanlı yazma bir yazmayı 4,0 ms'den 72,0 ms'ye, gecelik toplu işi 4 dakikadan
  72 dakikaya çıkarır; tepe günde 216 dakika ile 240 dakikalık pencerenin yüzde 90'ını kullanır.
- Yerleşim kararı 13 kalemin 6'sında sağlayıcıya devredilmiştir: fazladan kapasite bedeli 0, ama
  kayıp sınanamaz ve çıkışta taşınacak bir tanım kalmaz.

## Sonraki Adım

Bu ders coğrafyayı **arıza** tarafından okudu: kalemler nereye konursa bir kayıp neyi alır, ayakta
kalan kaç olur, ayrımın bedeli kaç birimdir. Aynı coğrafyanın ikinci bir yüzü var ve bu derste hiç
ölçülmedi: kalemler nereye konursa **kullanıcıya** ne kadar uzak kalır. Bölgeler arası 68 ms'lik
gidiş-dönüş burada yalnız yazmanın maliyeti olarak göründü; aynı sayı uzaktaki bir aboneye
gönderilen her yanıtın da içindedir ve o abone için hiçbir arıza olmadan da vardır. Sonraki ders
kullanıcı dağılımını ve konum kümesini modelleyip ortalama mesafenin konum ekledikçe nasıl
düştüğünü, konum başına bedeli ve düşüşün nerede durduğunu sayar; ayrıca kullanıcıya yakın konumun
**yapamadığı** işi ve oradan dönen yanıtın bayatlığını ölçer.
