{"id":1977,"date":"2025-11-17T19:06:36","date_gmt":"2025-11-17T16:06:36","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/s3-minioda-capraz-bolge-replikasyon-nasil-kurulur-versiyonlama-failover-ve-dr-runbookta-yol-haritasi\/"},"modified":"2025-11-17T19:06:36","modified_gmt":"2025-11-17T16:06:36","slug":"s3-minioda-capraz-bolge-replikasyon-nasil-kurulur-versiyonlama-failover-ve-dr-runbookta-yol-haritasi","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/s3-minioda-capraz-bolge-replikasyon-nasil-kurulur-versiyonlama-failover-ve-dr-runbookta-yol-haritasi\/","title":{"rendered":"S3\/MinIO\u2019da \u00c7apraz B\u00f6lge Replikasyon Nas\u0131l Kurulur? Versiyonlama, Failover ve DR Runbook\u2019ta Yol Haritas\u0131"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#Yagmurlu_Bir_Ogleden_Sonra_Kucuk_Bir_Panik_Buyuk_Bir_Ders\"><span class=\"toc_number toc_depth_1\">1<\/span> Ya\u011fmurlu Bir \u00d6\u011fleden Sonra: K\u00fc\u00e7\u00fck Bir Panik, B\u00fcy\u00fck Bir Ders<\/a><\/li><li><a href=\"#Neden_Capraz_Bolge_Replikasyon_Kucuk_Sarsintilar_Buyuk_Rahatlik\"><span class=\"toc_number toc_depth_1\">2<\/span> Neden \u00c7apraz B\u00f6lge Replikasyon? K\u00fc\u00e7\u00fck Sars\u0131nt\u0131lar, B\u00fcy\u00fck Rahatl\u0131k<\/a><ul><li><a href=\"#Bir_fotografin_yolculugu_ve_fiberin_nazi\"><span class=\"toc_number toc_depth_2\">2.1<\/span> Bir foto\u011fraf\u0131n yolculu\u011fu ve fiberin naz\u0131<\/a><\/li><li><a href=\"#RTO_ve_RPOyu_gunluk_dile_cevirmek\"><span class=\"toc_number toc_depth_2\">2.2<\/span> RTO ve RPO\u2019yu g\u00fcnl\u00fck dile \u00e7evirmek<\/a><\/li><\/ul><\/li><li><a href=\"#Versiyonlama_Replikasyonun_Kalp_Atisi\"><span class=\"toc_number toc_depth_1\">3<\/span> Versiyonlama: Replikasyonun Kalp At\u0131\u015f\u0131<\/a><ul><li><a href=\"#Neden_versiyonlama_olmadan_yola_cikilmaz\"><span class=\"toc_number toc_depth_2\">3.1<\/span> Neden versiyonlama olmadan yola \u00e7\u0131k\u0131lmaz?<\/a><\/li><li><a href=\"#Silme_isaretleri_geri_donus_ve_hayati_kolaylastiran_kucuk_nuanslar\"><span class=\"toc_number toc_depth_2\">3.2<\/span> Silme i\u015faretleri, geri d\u00f6n\u00fc\u015f ve hayat\u0131 kolayla\u015ft\u0131ran k\u00fc\u00e7\u00fck n\u00fcanslar<\/a><\/li><li><a href=\"#Uygulama-tutarli_olmak_neden_onemli\"><span class=\"toc_number toc_depth_2\">3.3<\/span> Uygulama-tutarl\u0131 olmak neden \u00f6nemli?<\/a><\/li><\/ul><\/li><li><a href=\"#MinIO_ve_S3de_CRRyi_Kurmak_Ilk_Tugladan_Son_Tasa\"><span class=\"toc_number toc_depth_1\">4<\/span> MinIO ve S3\u2019de CRR\u2019yi Kurmak: \u0130lk Tu\u011fladan Son Ta\u015fa<\/a><ul><li><a href=\"#Temeller_kimlik_bilgileri_kurallar_sifreleme\"><span class=\"toc_number toc_depth_2\">4.1<\/span> Temeller: kimlik bilgileri, kurallar, \u015fifreleme<\/a><\/li><li><a href=\"#MinIO_ile_pratik_bir_akis\"><span class=\"toc_number toc_depth_2\">4.2<\/span> MinIO ile pratik bir ak\u0131\u015f<\/a><\/li><li><a href=\"#AWS_S3_tarafinda_kural_mantigi\"><span class=\"toc_number toc_depth_2\">4.3<\/span> AWS S3 taraf\u0131nda kural mant\u0131\u011f\u0131<\/a><\/li><li><a href=\"#Eski_objeler_ne_olacak\"><span class=\"toc_number toc_depth_2\">4.4<\/span> Eski objeler ne olacak?<\/a><\/li><\/ul><\/li><li><a href=\"#Failover_Nasil_Planlanir_Paniksiz_Yon_Degistirmek\"><span class=\"toc_number toc_depth_1\">5<\/span> Failover Nas\u0131l Planlan\u0131r? Paniksiz Y\u00f6n De\u011fi\u015ftirmek<\/a><ul><li><a href=\"#DNS_uygulama_ayari_ve_gozunuzde_buyuyen_o_an\"><span class=\"toc_number toc_depth_2\">5.1<\/span> DNS, uygulama ayar\u0131 ve g\u00f6z\u00fcn\u00fczde b\u00fcy\u00fcyen o an<\/a><\/li><li><a href=\"#Yazma_trafigi_dondur_Degrade_et_veya_cift_yaz\"><span class=\"toc_number toc_depth_2\">5.2<\/span> Yazma trafi\u011fi: dondur, Degrade et veya \u00e7ift yaz<\/a><\/li><li><a href=\"#DNSte_guven_ve_coklu_saglayici\"><span class=\"toc_number toc_depth_2\">5.3<\/span> DNS\u2019te g\u00fcven ve \u00e7oklu sa\u011flay\u0131c\u0131<\/a><\/li><\/ul><\/li><li><a href=\"#DR_Runbook_O_Zor_Gunun_Sakin_Defteri\"><span class=\"toc_number toc_depth_1\">6<\/span> DR Runbook: O Zor G\u00fcn\u00fcn Sakin Defteri<\/a><ul><li><a href=\"#Runbookun_omurgasi_kim_ne_zaman_hangi_sirayla\"><span class=\"toc_number toc_depth_2\">6.1<\/span> Runbook\u2019un omurgas\u0131: kim, ne zaman, hangi s\u0131rayla?<\/a><\/li><li><a href=\"#Komutlar_ve_kontrol_listeleri_ama_insanca\"><span class=\"toc_number toc_depth_2\">6.2<\/span> Komutlar ve kontrol listeleri, ama insanca<\/a><\/li><li><a href=\"#On_hazirliklar_roller_erisimler_yedek_kanallar\"><span class=\"toc_number toc_depth_2\">6.3<\/span> \u00d6n haz\u0131rl\u0131klar: roller, eri\u015fimler, yedek kanallar<\/a><\/li><\/ul><\/li><li><a href=\"#Gecikmeyi_Izlemek_Test_Etmek_ve_Geri_Donus\"><span class=\"toc_number toc_depth_1\">7<\/span> Gecikmeyi \u0130zlemek, Test Etmek ve Geri D\u00f6n\u00fc\u015f<\/a><ul><li><a href=\"#Replikasyon_gecikmesi_kalp_atisi_objesi\"><span class=\"toc_number toc_depth_2\">7.1<\/span> Replikasyon gecikmesi: kalp at\u0131\u015f\u0131 objesi<\/a><\/li><li><a href=\"#Oyun_gunu_kucuk_kesinti_buyuk_ogrenme\"><span class=\"toc_number toc_depth_2\">7.2<\/span> Oyun g\u00fcn\u00fc: k\u00fc\u00e7\u00fck kesinti, b\u00fcy\u00fck \u00f6\u011frenme<\/a><\/li><\/ul><\/li><li><a href=\"#Guvenlik_Yasam_Dongusu_ve_Kucuk_Tuzaklar\"><span class=\"toc_number toc_depth_1\">8<\/span> G\u00fcvenlik, Ya\u015fam D\u00f6ng\u00fcs\u00fc ve K\u00fc\u00e7\u00fck Tuzaklar<\/a><ul><li><a href=\"#Sifreleme_KMS_ve_asgari_yetki\"><span class=\"toc_number toc_depth_2\">8.1<\/span> \u015eifreleme, KMS ve asgari yetki<\/a><\/li><li><a href=\"#Lifecycle_kurallari_ve_replikasyon_iliskisi\"><span class=\"toc_number toc_depth_2\">8.2<\/span> Lifecycle kurallar\u0131 ve replikasyon ili\u015fkisi<\/a><\/li><li><a href=\"#Kisir_dongu_ve_looplardan_kacinmak\"><span class=\"toc_number toc_depth_2\">8.3<\/span> K\u0131s\u0131r d\u00f6ng\u00fc ve loop\u2019lardan ka\u00e7\u0131nmak<\/a><\/li><\/ul><\/li><li><a href=\"#Gercek_Dunyadan_Bir_Akis_Kucuk_Bir_Plan_Buyuk_Bir_Huzur\"><span class=\"toc_number toc_depth_1\">9<\/span> Ger\u00e7ek D\u00fcnyadan Bir Ak\u0131\u015f: K\u00fc\u00e7\u00fck Bir Plan, B\u00fcy\u00fck Bir Huzur<\/a><ul><li><a href=\"#Bir_aksamlik_plan_gunlerce_rahat_uyku\"><span class=\"toc_number toc_depth_2\">9.1<\/span> Bir ak\u015faml\u0131k plan, g\u00fcnlerce rahat uyku<\/a><\/li><li><a href=\"#CDN_ve_cache_isisi\"><span class=\"toc_number toc_depth_2\">9.2<\/span> CDN ve cache \u0131s\u0131s\u0131<\/a><\/li><\/ul><\/li><li><a href=\"#Kapanis_Bugun_Atilan_Kucuk_Adimlar_Yarin_Buyuk_Sukunet\"><span class=\"toc_number toc_depth_1\">10<\/span> Kapan\u0131\u015f: Bug\u00fcn At\u0131lan K\u00fc\u00e7\u00fck Ad\u0131mlar, Yar\u0131n B\u00fcy\u00fck S\u00fck\u00fbnet<\/a><ul><li><a href=\"#Derli_toplu_bir_ozet_ve_kucuk_bir_tesvik\"><span class=\"toc_number toc_depth_2\">10.1<\/span> Derli toplu bir \u00f6zet ve k\u00fc\u00e7\u00fck bir te\u015fvik<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h2 id=\"section-1\"><span id=\"Yagmurlu_Bir_Ogleden_Sonra_Kucuk_Bir_Panik_Buyuk_Bir_Ders\">Ya\u011fmurlu Bir \u00d6\u011fleden Sonra: K\u00fc\u00e7\u00fck Bir Panik, B\u00fcy\u00fck Bir Ders<\/span><\/h2>\n<p>Hi\u00e7 ba\u015f\u0131n\u0131za geldi mi? Ofiste herkes i\u015fine dalm\u0131\u015fken aniden \u00fcr\u00fcn g\u00f6rselleri y\u00fcklenmemeye ba\u015flar, loglar ge\u00e7 d\u00fc\u015fer, bir \u015feyler ters gider ama kimse tam yerini bulamaz. Ge\u00e7en ay b\u00f6yle bir \u00f6\u011fleden sonra ya\u015fad\u0131k. A\u011f\u0131r bir kesinti de\u011fil, ufak bir sars\u0131nt\u0131yd\u0131. Ama o k\u0131sa an bana \u015funu tekrar hat\u0131rlatt\u0131: <strong>\u00e7apraz b\u00f6lge replikasyon<\/strong> sadece \u201cbir g\u00fcn laz\u0131m olur\u201d diye kurulmaz, g\u00fcnl\u00fck huzurun sigortas\u0131d\u0131r. Bir duble kahveyle ekran ba\u015f\u0131na \u00e7ak\u0131ld\u0131m ve akl\u0131mdan \u015fu ge\u00e7ti: \u201cYar\u0131n yine b\u00f6yle olsa, tek bir komutla di\u011fer b\u00f6lgeye ak\u0131\u015f\u0131 \u00e7evirebilecek miyiz?\u201d<\/p>\n<p>Bu yaz\u0131da tam da bunu konu\u015faca\u011f\u0131z. S3\/MinIO taraf\u0131nda <strong>\u00e7apraz b\u00f6lge replikasyonunu<\/strong> kurarken neden <strong>versiyonlama<\/strong> i\u015fin kalbidir, <strong>failover<\/strong> s\u0131ras\u0131nda panik yapmadan nas\u0131l y\u00f6n de\u011fi\u015ftirirsiniz ve bir <strong>DR runbook<\/strong> nas\u0131l yaz\u0131l\u0131r ki o zor g\u00fcnde sayfay\u0131 a\u00e7\u0131p sadece uygulayas\u0131n\u0131z\u2026 Hepsini s\u0131cak, g\u00fcnl\u00fck dille ve ger\u00e7ek hayattan \u00f6rneklerle anlataca\u011f\u0131m. Mesela \u015f\u00f6yle d\u00fc\u015f\u00fcn\u00fcn: Bir d\u00fc\u011fmeye bas\u0131p trafi\u011fi ba\u015fka \u015fehre, ba\u015fka veri merkezine kayd\u0131r\u0131yorsunuz; ama bunun t\u0131k\u0131r t\u0131k\u0131r i\u015flemesi i\u00e7in bug\u00fcn ataca\u011f\u0131n\u0131z k\u00fc\u00e7\u00fck ad\u0131mlar yar\u0131n b\u00fcy\u00fck fark yarat\u0131yor.<\/p>\n<h2 id=\"section-2\"><span id=\"Neden_Capraz_Bolge_Replikasyon_Kucuk_Sarsintilar_Buyuk_Rahatlik\">Neden \u00c7apraz B\u00f6lge Replikasyon? K\u00fc\u00e7\u00fck Sars\u0131nt\u0131lar, B\u00fcy\u00fck Rahatl\u0131k<\/span><\/h2>\n<h3><span id=\"Bir_fotografin_yolculugu_ve_fiberin_nazi\">Bir foto\u011fraf\u0131n yolculu\u011fu ve fiberin naz\u0131<\/span><\/h3>\n<p>Bir e-ticaret uygulamas\u0131nda \u00fcr\u00fcn g\u00f6rseli y\u00fcklenir, indirilir, CDN \u00f6nbelle\u011fine d\u00fc\u015fer. Her \u015fey yolunda giderken bir b\u00f6lgede a\u011f s\u0131k\u0131\u015f\u0131rsa ya da depolama katman\u0131nda ufak bir gecikme olsa herkes ayn\u0131 anda hisseder. Tam bu noktada <strong>S3\/MinIO\u2019da \u00e7apraz b\u00f6lge replikasyonu<\/strong> devreye girer; objeleriniz bir ba\u015fka b\u00f6lgede de ya\u015far. B\u00f6ylece tek bir aksakl\u0131k t\u00fcm i\u015fi durdurmaz. Mesela bir b\u00f6lgede yazma trafi\u011fi yava\u015flad\u0131 diyelim; di\u011fer b\u00f6lgedeki kopya okuyucu trafi\u011fi rahat\u00e7a besler, uygulama nefes al\u0131r.<\/p>\n<h3><span id=\"RTO_ve_RPOyu_gunluk_dile_cevirmek\">RTO ve RPO\u2019yu g\u00fcnl\u00fck dile \u00e7evirmek<\/span><\/h3>\n<p>Teknik terimleri sevdirmenin yolu, onlar\u0131 mutfak tezgah\u0131na indirmek. RTO, \u201csistemi ne kadar s\u00fcrede aya\u011fa kald\u0131rmak istiyorsun?\u201d sorusunun cevab\u0131. RPO ise \u201cen fazla ne kadar veri kayb\u0131na katlan\u0131rs\u0131n?\u201d gibi. Mesela RTO\u2019nuz 15 dakikaysa, otomatik failover ve \u00f6nceden test edilmi\u015f komutlar \u015fart. RPO\u2019nuz dakikalar mertebesindeyse, replikasyon gecikmesini s\u00fcrekli izlemek ve ufak kuyru\u011fu eritmek i\u00e7in do\u011fru kurallar kritik. Bu iki hedefi ger\u00e7ek\u00e7i se\u00e7ti\u011finizde, replikasyon ve runbook kendili\u011finden \u015fekilleniyor.<\/p>\n<h2 id=\"section-3\"><span id=\"Versiyonlama_Replikasyonun_Kalp_Atisi\">Versiyonlama: Replikasyonun Kalp At\u0131\u015f\u0131<\/span><\/h2>\n<h3><span id=\"Neden_versiyonlama_olmadan_yola_cikilmaz\">Neden versiyonlama olmadan yola \u00e7\u0131k\u0131lmaz?<\/span><\/h3>\n<p>Replikasyon deyince ilk tu\u011fla <strong>versiyonlama<\/strong>. \u00c7\u00fcnk\u00fc her objenin bir <strong>version ID<\/strong>\u2019si oldu\u011funda sadece i\u00e7eri\u011fi de\u011fil, de\u011fi\u015fimlerin tarihi de kar\u015f\u0131ya aktar\u0131l\u0131r. Yanl\u0131\u015fl\u0131kla silinen bir g\u00f6rsel, \u00fcst\u00fcne yaz\u0131lan bir konfig dosyas\u0131, hepsi geri \u00e7a\u011fr\u0131labilir olur. S3 d\u00fcnyas\u0131nda bu kural nettir: replikasyonun sa\u011fl\u0131kl\u0131 ve izlenebilir olmas\u0131 i\u00e7in versioning a\u00e7\u0131k olmal\u0131. Detaylar\u0131 merak ederseniz, S3 taraf\u0131nda versioning mant\u0131\u011f\u0131n\u0131n g\u00fczel bir \u00f6zeti \u015fu sayfada: <a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/Versioning.html\" rel=\"nofollow noopener\" target=\"_blank\">S3 Versioning kavramlar\u0131<\/a>.<\/p>\n<h3><span id=\"Silme_isaretleri_geri_donus_ve_hayati_kolaylastiran_kucuk_nuanslar\">Silme i\u015faretleri, geri d\u00f6n\u00fc\u015f ve hayat\u0131 kolayla\u015ft\u0131ran k\u00fc\u00e7\u00fck n\u00fcanslar<\/span><\/h3>\n<p>Versiyonlama a\u00e7\u0131kken silme i\u015flemi asl\u0131nda bir <strong>delete marker<\/strong> olarak yaz\u0131l\u0131r. Bu i\u015faret, \u201cbu anahtar\u0131n son hali silinmi\u015f\u201d demek. Replikasyon kurallar\u0131n\u0131z\u0131 do\u011fru yap\u0131land\u0131r\u0131rsan\u0131z bu silme i\u015faretleri de kar\u015f\u0131ya ta\u015f\u0131n\u0131r. B\u00f6ylece iki u\u00e7ta tutarl\u0131l\u0131k korunur. Ama bazen bu i\u015faretleri replikasyondan hari\u00e7 tutmak isteyebilirsiniz; \u00f6rne\u011fin, felaket durumunda kar\u015f\u0131 tarafta dosyan\u0131n kalmas\u0131n\u0131 tercih eden ekipler g\u00f6rd\u00fcm. Burada ama\u00e7 neyse kural onu izlemeli. K\u0131saca: Versioning, silme i\u015faretleri ve ya\u015fam d\u00f6ng\u00fcs\u00fc (lifecycle) kurallar\u0131 birlikte d\u00fc\u015f\u00fcn\u00fcld\u00fc\u011f\u00fcnde, replikasyon hem g\u00fcvenli hem de esnek olur.<\/p>\n<h3><span id=\"Uygulama-tutarli_olmak_neden_onemli\">Uygulama-tutarl\u0131 olmak neden \u00f6nemli?<\/span><\/h3>\n<p>Objeleri kopyalamak g\u00fczel, ama veritaban\u0131 gibi durum bilgisi ta\u015f\u0131yan bile\u015fenlerle birlikte ele almak daha g\u00fczel. \u00d6rne\u011fin bir sipari\u015fin g\u00f6rselleri ve kay\u0131tlar\u0131 farkl\u0131 zamanlarda giderse k\u00fc\u00e7\u00fck bir kafa kar\u0131\u015f\u0131kl\u0131\u011f\u0131 olabilir. Bu y\u00fczden, obje replikasyonuna e\u015flik eden uygulama-tutarl\u0131 yedekler tatl\u0131 bir ikili olur. Bu konuyu sakince anlatan \u015fu yaz\u0131ya g\u00f6z atmak i\u015finize yarayabilir: <a href=\"https:\/\/www.dchost.com\/blog\/uygulama%e2%80%91tutarli-yedekler-nasil-alinir-lvm-snapshot-ve-fsfreeze-ile-mysql-postgresqli-usutmeden-dondurmak\/\">uygulama\u2011tutarl\u0131 yedekler nas\u0131l al\u0131n\u0131r<\/a>.<\/p>\n<h2 id=\"section-4\"><span id=\"MinIO_ve_S3de_CRRyi_Kurmak_Ilk_Tugladan_Son_Tasa\">MinIO ve S3\u2019de CRR\u2019yi Kurmak: \u0130lk Tu\u011fladan Son Ta\u015fa<\/span><\/h2>\n<h3><span id=\"Temeller_kimlik_bilgileri_kurallar_sifreleme\">Temeller: kimlik bilgileri, kurallar, \u015fifreleme<\/span><\/h3>\n<p>\u0130lk ad\u0131m basit: Hem kaynak hem hedef kovada <strong>versioning a\u00e7\u0131k<\/strong> olmal\u0131. Sonra, replikasyonun kullanaca\u011f\u0131 kimlik bilgilerine <strong>en az yetkiyle<\/strong> (yaln\u0131zca ilgili kovalar \u00fczerinde okuma\/yazma ve listeme) eri\u015fim verirsiniz. Ard\u0131ndan bir kural tan\u0131mlars\u0131n\u0131z: Hangi prefix\u2019ler, hangi etiketler, hangi meta bilgileri gidecek? Kimi zaman sadece <code>images\/<\/code> alt\u0131n\u0131, kimi zaman t\u00fcm kovay\u0131 replikasyona dahil edersiniz. \u015eifreleme kullan\u0131yorsan\u0131z, KMS anahtarlar\u0131na kar\u015f\u0131 u\u00e7ta da eri\u015fim sa\u011fland\u0131\u011f\u0131ndan emin olun; aksi halde kopyalar yolda kal\u0131r.<\/p>\n<h3><span id=\"MinIO_ile_pratik_bir_akis\">MinIO ile pratik bir ak\u0131\u015f<\/span><\/h3>\n<p>MinIO taraf\u0131nda replikasyon, <strong>bucket remote<\/strong> tan\u0131mlay\u0131p ard\u0131ndan kural eklemekle ba\u015flar. Bir \u00f6rnek ak\u0131\u015f\u0131 \u015f\u00f6yle d\u00fc\u015f\u00fcn\u00fcn: \u00f6nce <code>mc alias set<\/code> ile kaynak ve hedefe ba\u011flan\u0131rs\u0131n\u0131z, <code>mc admin bucket remote add<\/code> ile hedefi ili\u015ftirirsiniz, sonra <code>mc replicate add<\/code> ile kural\u0131 yazars\u0131n\u0131z. Kurallar\u0131 <code>mc replicate ls<\/code> ile g\u00f6r\u00fcr, durumu <code>mc replicate status<\/code> ile izlersiniz. Ad\u0131mlar\u0131n tamam\u0131 i\u00e7in MinIO\u2019nun net bir dok\u00fcmantasyonu var; pratik i\u00e7in \u015fu sayfay\u0131 favoriye atabilirsiniz: <a href=\"https:\/\/min.io\/docs\/minio\/linux\/operations\/bucket\/replication.html\" rel=\"nofollow noopener\" target=\"_blank\">MinIO Bucket Replication<\/a>.<\/p>\n<p>Kurulum \u00f6ncesi MinIO\u2019yu \u00fcretim-haz\u0131r hale getirmek, TLS ve policy\u2019leri temizce ayarlamak i\u015fleri \u00e7ok kolayla\u015ft\u0131r\u0131r. Benim kafam\u0131 da\u011f\u0131tan detaylar\u0131 bir kere d\u00fczene sokmu\u015ftum; merak ederseniz burada uzun uzun anlatm\u0131\u015ft\u0131m: <a href=\"https:\/\/www.dchost.com\/blog\/vps-uzerinde-minio-ile-s3%e2%80%91uyumlu-depolama-nasil-uretim%e2%80%91hazir-kurulur-erasure-coding-tls-ve-policyleri-tatli-tatli-anlatiyorum\/\">VPS \u00fczerinde MinIO ile S3\u2011uyumlu depolama<\/a>.<\/p>\n<h3><span id=\"AWS_S3_tarafinda_kural_mantigi\">AWS S3 taraf\u0131nda kural mant\u0131\u011f\u0131<\/span><\/h3>\n<p>S3\u2019te de mant\u0131k benzer: versioning\u2019i a\u00e7ar, IAM rol\u00fcyle hedef kovaya yazma yetkisini verirsiniz, sonra replikasyon kural\u0131n\u0131 yazars\u0131n\u0131z. S3\u2019\u00fcn GUI\u2019deki ak\u0131\u015f\u0131 ad\u0131m ad\u0131m ilerler; ekranda prefix ve etiketlere g\u00f6re kapsam\u0131 daralt\u0131r, metadata ve \u015fifreleme ayarlar\u0131na dokunursunuz. Kavramlar\u0131n \u00fcst\u00fcnden tek tek ge\u00e7mek isterseniz, \u015fu \u00f6zet sayfa i\u015f g\u00f6r\u00fcr: <a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/replication.html\" rel=\"nofollow noopener\" target=\"_blank\">Amazon S3 Replication rehberi<\/a>.<\/p>\n<h3><span id=\"Eski_objeler_ne_olacak\">Eski objeler ne olacak?<\/span><\/h3>\n<p>Replikasyon kurulduktan sonra genelde <strong>yeni objeler<\/strong> akar. Peki ya y\u0131llard\u0131r biriken dosyalar? Burada \u201cgeriye d\u00f6n\u00fck kopyalama\u201d dedi\u011fimiz bir kezlik ta\u015f\u0131ma devreye girer. MinIO\u2019da bunu <code>mc mirror<\/code> ile, S3\u2019te ise <code>aws s3 sync<\/code> ya da e\u015fde\u011fer ara\u00e7larla yapars\u0131n\u0131z. Bu sayede ge\u00e7mi\u015fi bir seferde ta\u015f\u0131y\u0131p, ilerleyen zamanda replikasyona b\u0131rak\u0131rs\u0131n\u0131z. B\u00f6ylece d\u00fcn\u00fcn ar\u015fivi ve bug\u00fcn\u00fcn trafi\u011fi ayn\u0131 resimde bulu\u015fur.<\/p>\n<h2 id=\"section-5\"><span id=\"Failover_Nasil_Planlanir_Paniksiz_Yon_Degistirmek\">Failover Nas\u0131l Planlan\u0131r? Paniksiz Y\u00f6n De\u011fi\u015ftirmek<\/span><\/h2>\n<h3><span id=\"DNS_uygulama_ayari_ve_gozunuzde_buyuyen_o_an\">DNS, uygulama ayar\u0131 ve g\u00f6z\u00fcn\u00fczde b\u00fcy\u00fcyen o an<\/span><\/h3>\n<p>Failover, en sade haliyle \u201ctrafi\u011fi ba\u015fka yere d\u00f6nd\u00fcrmek\u201d. Bunu bazen DNS katman\u0131nda, bazen uygulama konfiginde yapars\u0131n\u0131z. \u0130yi bir pratik, hem DNS hem uygulama d\u00fczeyinde <strong>haz\u0131r yollar<\/strong> b\u0131rakmakt\u0131r. \u00d6rne\u011fin CDN origin\u2019ini bir CNAME ile soyutlamak, uygulaman\u0131n S3 endpoint\u2019ini tek bir ortam de\u011fi\u015fkeninden almak gibi. \u00c7ok b\u00f6lgeli ak\u0131\u015flar\u0131 sakin sakin kurmak i\u00e7in \u015fu yaz\u0131 ho\u015f bir \u00e7er\u00e7eve veriyor: <a href=\"https:\/\/www.dchost.com\/blog\/cok-bolgeli-mimariler-nasil-kurulur-dns-geo%e2%80%91routing-ve-veritabani-replikasyonu-ile-korkusuz-felaket-dayanikliligi\/\">\u00e7ok b\u00f6lgeli mimariler ve DNS geo\u2011routing<\/a>.<\/p>\n<h3><span id=\"Yazma_trafigi_dondur_Degrade_et_veya_cift_yaz\">Yazma trafi\u011fi: dondur, Degrade et veya \u00e7ift yaz<\/span><\/h3>\n<p>As\u0131l k\u0131ymetli soru, <strong>yazma trafi\u011fini<\/strong> failover s\u0131ras\u0131nda ne yapaca\u011f\u0131n\u0131z. En sorunsuz y\u00f6ntem, k\u0131sa bir pencere i\u00e7in yazmalar\u0131 dondurup okuyucuyu yeni b\u00f6lgeden beslemektir. Baz\u0131 tak\u0131mlar \u201cdegrade\u201d modda yaln\u0131zca kritik yazmalara izin verir. \u00c7ift yazmak (ayn\u0131 anda iki b\u00f6lgeye) kula\u011fa ho\u015f gelse de pratikte \u00e7atallanmalar\u0131 y\u00f6netmek zorlar; o y\u00fczden bunu ger\u00e7ekten iyi sa\u011fl\u0131k kontrolleri ve idempotent tasar\u0131m olmadan \u00f6nermem. Kendi sisteminizin do\u011fas\u0131n\u0131 biliyorsunuz; burada tek do\u011fru yok, s\u00fcper net bir <strong>runbook<\/strong> var.<\/p>\n<h3><span id=\"DNSte_guven_ve_coklu_saglayici\">DNS\u2019te g\u00fcven ve \u00e7oklu sa\u011flay\u0131c\u0131<\/span><\/h3>\n<p>DNS katman\u0131nda tek bir sa\u011flay\u0131c\u0131ya ba\u011fl\u0131 kalmak istemezseniz, zone\u2019lar\u0131n\u0131z\u0131 kodla y\u00f6netmek huzur verir. Zero-downtime ge\u00e7i\u015fleri ve \u00e7oklu sa\u011flay\u0131c\u0131y\u0131 ad\u0131m ad\u0131m \u00f6rnekleriyle anlatan \u015fu rehber, bu i\u015fin omzunu ferahlat\u0131r: <a href=\"https:\/\/www.dchost.com\/blog\/coklu-saglayici-dns-nasil-kurulur-octodns-ile-zero%e2%80%91downtime-gecis-ve-dayaniklilik-rehberi\/\">octoDNS ile \u00e7oklu sa\u011flay\u0131c\u0131 DNS<\/a>. Failover an\u0131nda bir TXT kayd\u0131yla ekip ileti\u015fimini senkronize etmek, de\u011fi\u015fiklikleri pull-request\u2019le ta\u015f\u0131mak bile ba\u015fl\u0131 ba\u015f\u0131na stres azalt\u0131r.<\/p>\n<h2 id=\"section-6\"><span id=\"DR_Runbook_O_Zor_Gunun_Sakin_Defteri\">DR Runbook: O Zor G\u00fcn\u00fcn Sakin Defteri<\/span><\/h2>\n<h3><span id=\"Runbookun_omurgasi_kim_ne_zaman_hangi_sirayla\">Runbook\u2019un omurgas\u0131: kim, ne zaman, hangi s\u0131rayla?<\/span><\/h3>\n<p>Felaket an\u0131nda tek ihtiyac\u0131n\u0131z olan \u015fey, <strong>\u00f6nceden denenmi\u015f net ad\u0131mlar<\/strong>. Runbook\u2019u bir hikaye gibi kurgulay\u0131n: Teti\u011fi kim \u00e7ekiyor? \u0130lk 5 dakikada neye bak\u0131l\u0131yor? 15. dakikada hangi komutla hangi de\u011fi\u015fim yap\u0131l\u0131yor? 60. dakikada hangi teyitler al\u0131n\u0131yor? Bir \u00f6rnek ak\u0131\u015f d\u00fc\u015f\u00fcn\u00fcyorum: G\u00f6zlem paneli gecikmeyi g\u00f6sterir, sorumlu ki\u015fi \u201cdurumu de\u011ferlendir\u201d \u00e7a\u011fr\u0131s\u0131n\u0131 a\u00e7ar, yazmalar k\u0131sa s\u00fcreli\u011fine dondurulur, DNS\u2019te origin i\u015faretlenir, uygulama endpoint\u2019i ikinci b\u00f6lgeye \u00e7evrilir, ard\u0131ndan okuma-yazma k\u00fc\u00e7\u00fck bir testle do\u011frulan\u0131r, ileti\u015fim kanallar\u0131nda durum g\u00fcncellenir.<\/p>\n<h3><span id=\"Komutlar_ve_kontrol_listeleri_ama_insanca\">Komutlar ve kontrol listeleri, ama insanca<\/span><\/h3>\n<p>Runbook\u2019un i\u00e7ine k\u0131sa ve net komutlar koyun. Mesela replikasyon kuyru\u011funu g\u00f6rmek i\u00e7in MinIO\u2019da <code>mc replicate status<\/code>, S3\u2019te nesnel gecikmeyi anlayacak basit bir \u201ckalp at\u0131\u015f\u0131\u201d objesi y\u00fcklemek, CDN\u2019de <code>purge<\/code> \u00e7a\u011fr\u0131s\u0131n\u0131n k\u00fc\u00e7\u00fck bir \u00f6rne\u011fi. Her ad\u0131m\u0131n sonunda \u201colmas\u0131 gereken durum\u201du bir c\u00fcmleyle yaz\u0131n. \u201cDNS g\u00fcncellendi, yeni origin 200 d\u00f6nd\u00fcr\u00fcyor, kontrol listesi A, B, C tamam.\u201d G\u00f6z\u00fcn\u00fcz kapal\u0131 uygulayaca\u011f\u0131n\u0131z bir d\u00fczen kurdu\u011funuzda, felaket g\u00fcn\u00fc s\u0131radan bir bak\u0131m g\u00fcn\u00fcne benziyor.<\/p>\n<h3><span id=\"On_hazirliklar_roller_erisimler_yedek_kanallar\">\u00d6n haz\u0131rl\u0131klar: roller, eri\u015fimler, yedek kanallar<\/span><\/h3>\n<p>Runbook, yaln\u0131zca teknik ad\u0131mlar de\u011fil; <strong>roller<\/strong> ve <strong>eri\u015fimler<\/strong> de i\u015fin i\u00e7inde. Kim DNS\u2019e yazabilir? Kim KMS\u2019te anahtarlar\u0131 y\u00f6netir? Kim uygulama konfigini de\u011fi\u015ftirir? Bir ki\u015finin ula\u015famad\u0131\u011f\u0131 durumda devreye girecek yedek sorumlu kim? Bu k\u00fc\u00e7\u00fck notlar o an\u0131n b\u00fcy\u00fck ilac\u0131. Ayr\u0131ca ekip i\u00e7i ileti\u015fim i\u00e7in birincil ve ikincil kanal belirleyin; birinde sorun olursa di\u011feriyle devam edin. Bir de ufac\u0131k t\u00fcyo: Runbook\u2019u yazd\u0131ktan sonra \u201ctatbikat runbook\u2019u\u201d ekleyin; nas\u0131l prova yap\u0131laca\u011f\u0131, ne kadar s\u00fcrede tamamlanaca\u011f\u0131 orada dursun.<\/p>\n<h2 id=\"section-7\"><span id=\"Gecikmeyi_Izlemek_Test_Etmek_ve_Geri_Donus\">Gecikmeyi \u0130zlemek, Test Etmek ve Geri D\u00f6n\u00fc\u015f<\/span><\/h2>\n<h3><span id=\"Replikasyon_gecikmesi_kalp_atisi_objesi\">Replikasyon gecikmesi: kalp at\u0131\u015f\u0131 objesi<\/span><\/h3>\n<p>G\u00fcnl\u00fck hayatta gecikmeyi g\u00f6rmek i\u00e7in minik bir numara seviyorum: Her 30 saniyede bir \u201ckalp at\u0131\u015f\u0131\u201d objesi yaz\u0131n; i\u00e7inde yaz\u0131ld\u0131\u011f\u0131 zaman\u0131 tutan k\u00fc\u00e7\u00fck bir metin olsun. Hedef b\u00f6lgede bu objeyi okuyup zaman fark\u0131n\u0131 \u00f6l\u00e7t\u00fc\u011f\u00fcn\u00fczde <strong>RPO ger\u00e7ekli\u011fi<\/strong> g\u00f6z\u00fcn\u00fcz\u00fcn \u00f6n\u00fcnde belirir. Grafikte 1-2 dakikal\u0131k dalgalanmalar normaldir; aniden y\u00fckselirse bilirsiniz ki bir \u015fey a\u011f\u0131rla\u015f\u0131yor. \u0130\u015fte o zaman devreye giren <strong>otopilot<\/strong> de\u011fil, \u00f6nceden konu\u015fulmu\u015f karar a\u011fac\u0131 ve runbook olmal\u0131.<\/p>\n<h3><span id=\"Oyun_gunu_kucuk_kesinti_buyuk_ogrenme\">Oyun g\u00fcn\u00fc: k\u00fc\u00e7\u00fck kesinti, b\u00fcy\u00fck \u00f6\u011frenme<\/span><\/h3>\n<p>Ayda bir \u201coyun g\u00fcn\u00fc\u201d yap\u0131n. DNS\u2019te k\u00fc\u00e7\u00fck bir de\u011fi\u015fim, uygulama konfiginde endpoint switching, k\u00fc\u00e7\u00fck bir yazma dondurma deneyi. Her provada yeni bir ayr\u0131nt\u0131 \u00f6\u011frenirsiniz: Bir izin eksikmi\u015f, bir TTL \u00e7ok uzunmu\u015f, bir dashboard\u2019daki metrik ad\u0131n\u0131 kimse hat\u0131rlam\u0131yormu\u015f. Bu k\u00fc\u00e7\u00fck t\u00f6kezlemeler, ger\u00e7ek g\u00fcn geldi\u011finde en b\u00fcy\u00fck hazineniz. Hatta isterseniz oyun g\u00fcn\u00fcn\u00fc d\u00fczenli bir ritme ba\u011flay\u0131n; herkes \u00f6nceden bilsin, kimseye s\u00fcrpriz olmas\u0131n.<\/p>\n<h2 id=\"section-8\"><span id=\"Guvenlik_Yasam_Dongusu_ve_Kucuk_Tuzaklar\">G\u00fcvenlik, Ya\u015fam D\u00f6ng\u00fcs\u00fc ve K\u00fc\u00e7\u00fck Tuzaklar<\/span><\/h2>\n<h3><span id=\"Sifreleme_KMS_ve_asgari_yetki\">\u015eifreleme, KMS ve asgari yetki<\/span><\/h3>\n<p>Replikasyonun g\u00fcvenli olmas\u0131 i\u00e7in iki temel \u015feye dikkat: <strong>u\u00e7tan uca \u015fifreleme<\/strong> ve <strong>asgari yetki<\/strong>. S3 SSE-KMS veya MinIO KMS kullan\u0131yorsan\u0131z, hedefte ayn\u0131 anahtarla de\u015fifre edip depolayabildi\u011finizden emin olun. Anahtarlar\u0131n kim taraf\u0131ndan y\u00f6netildi\u011fi runbook\u2019ta net olsun. IAM ya da policy taraf\u0131nda geni\u015f y\u0131ld\u0131zl\u0131 yetkiler yerine, yaln\u0131zca ihtiya\u00e7 duyulan kovalar ve eylemler i\u00e7in politika yazmak \u00e7ok \u015fey de\u011fi\u015ftirir.<\/p>\n<h3><span id=\"Lifecycle_kurallari_ve_replikasyon_iliskisi\">Lifecycle kurallar\u0131 ve replikasyon ili\u015fkisi<\/span><\/h3>\n<p>Ya\u015fam d\u00f6ng\u00fcs\u00fc politikalar\u0131yla bir objeyi so\u011fuk katmana ta\u015f\u0131yorsunuz diyelim. Replikasyon kural\u0131n\u0131z buna nas\u0131l tepki veriyor? Kimi zaman \u00f6nce replikasyon, sonra ar\u015fiv; bazen tam tersi mant\u0131kl\u0131d\u0131r. Burada i\u015finize yarayan k\u00fc\u00e7\u00fck bir not: Kurallar\u0131n s\u0131ras\u0131n\u0131 ve kapsamlar\u0131n\u0131 yaz\u0131l\u0131 hale getirip \u00f6rnek bir anahtar \u00fczerinde denemek, ileride s\u00fcrprizleri keser. S3 taraf\u0131nda kavram ak\u0131\u015flar\u0131n\u0131 g\u00f6zden ge\u00e7irmek i\u00e7in \u015fu \u00f6zet g\u00fczeldir: <a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/replication.html\" rel=\"nofollow noopener\" target=\"_blank\">S3 replikasyon kavramlar\u0131<\/a>.<\/p>\n<h3><span id=\"Kisir_dongu_ve_looplardan_kacinmak\">K\u0131s\u0131r d\u00f6ng\u00fc ve loop\u2019lardan ka\u00e7\u0131nmak<\/span><\/h3>\n<p>\u0130ki y\u00f6nl\u00fc replikasyon kurarken \u201cA\u2019dan B\u2019ye, B\u2019den A\u2019ya\u201d \u015feklinde bir <strong>loop<\/strong> yaratmad\u0131\u011f\u0131n\u0131zdan emin olun. Genelde her kovaya bir \u201cowner\u201d rol atar ve yaln\u0131zca bir tarafa do\u011fru akar\u0131z. E\u011fer ger\u00e7ekten iki y\u00f6n gerekiyorsa, <strong>tag bazl\u0131 ayr\u0131m<\/strong> veya <strong>prefix bazl\u0131 b\u00f6lme<\/strong> iyi sonu\u00e7 verir. MinIO\/S3\u2019te kural dizayn\u0131n\u0131 biraz esneterek bu tuzaktan kolayca s\u0131yr\u0131labilirsiniz.<\/p>\n<h2 id=\"section-9\"><span id=\"Gercek_Dunyadan_Bir_Akis_Kucuk_Bir_Plan_Buyuk_Bir_Huzur\">Ger\u00e7ek D\u00fcnyadan Bir Ak\u0131\u015f: K\u00fc\u00e7\u00fck Bir Plan, B\u00fcy\u00fck Bir Huzur<\/span><\/h2>\n<h3><span id=\"Bir_aksamlik_plan_gunlerce_rahat_uyku\">Bir ak\u015faml\u0131k plan, g\u00fcnlerce rahat uyku<\/span><\/h3>\n<p>Bir m\u00fc\u015fteride \u015f\u00f6yle ilerlemi\u015ftik: \u00d6nce MinIO\u2019da iki b\u00f6lgeyi haz\u0131rlad\u0131k, TLS ve policy\u2019leri oturttuk, sonra kaynak kovada versioning\u2019i a\u00e7\u0131p hedefe remote tan\u0131mlad\u0131k. Sadece <code>images\/<\/code> ve <code>attachments\/<\/code> alt\u0131n\u0131 replikasyona dahil ettik, arada bir <code>mc mirror<\/code> ile eski ar\u015fivi toplad\u0131k. Uygulama taraf\u0131nda S3 endpoint\u2019i tek bir de\u011fi\u015fkende tutuldu; CDN origin\u2019i CNAME ile soyutland\u0131. DNS katman\u0131nda \u00e7oklu sa\u011flay\u0131c\u0131 stratejisini kodla y\u00f6netmeye ba\u015flad\u0131k. Bir ak\u015fam tatbikat yapt\u0131k: Yazmalar\u0131 3 dakika dondurduk, DNS\u2019i yeni origin\u2019e \u00e7evirdik, smoke test\u2019leri ko\u015fturduk, sonra geri ald\u0131k. O gece kimse ge\u00e7 saatlere kadar beklemedi; runbook soru i\u015faretlerini toplay\u0131p ger\u00e7ek hayata indirince, tela\u015f sessizce da\u011f\u0131ld\u0131.<\/p>\n<h3><span id=\"CDN_ve_cache_isisi\">CDN ve cache \u0131s\u0131s\u0131<\/span><\/h3>\n<p>Failover\u2019da kullan\u0131c\u0131lar\u0131n hissetti\u011fi \u015fey \u00e7o\u011fu zaman \u201cg\u00f6rsellerin ilk a\u00e7\u0131l\u0131\u015f\u0131\u201d. CDN katman\u0131nda origin de\u011fi\u015fince k\u00fc\u00e7\u00fck bir so\u011fuma olabilir. Bunu azaltmak i\u00e7in s\u0131k kullan\u0131lan yollar\u0131 \u00f6nceden \u0131s\u0131tmak, kritik sayfalar\u0131 tatbikattan \u00f6nce h\u0131zl\u0131ca dola\u015ft\u0131rmak i\u015fe yarar. K\u00fc\u00e7\u00fck dokunu\u015f, b\u00fcy\u00fck etki. Bu arada \u00e7ok b\u00f6lgeli ak\u0131\u015flar\u0131 mimari d\u00fczeyde d\u00fc\u015f\u00fcnmek isterseniz \u015fu makale ho\u015f bir \u00e7er\u00e7eve sunuyor: <a href=\"https:\/\/www.dchost.com\/blog\/cok-bolgeli-mimariler-nasil-kurulur-dns-geo%e2%80%91routing-ve-veritabani-replikasyonu-ile-korkusuz-felaket-dayanikliligi\/\">\u00e7ok b\u00f6lgeli mimariler rehberi<\/a>.<\/p>\n<h2 id=\"section-10\"><span id=\"Kapanis_Bugun_Atilan_Kucuk_Adimlar_Yarin_Buyuk_Sukunet\">Kapan\u0131\u015f: Bug\u00fcn At\u0131lan K\u00fc\u00e7\u00fck Ad\u0131mlar, Yar\u0131n B\u00fcy\u00fck S\u00fck\u00fbnet<\/span><\/h2>\n<h3><span id=\"Derli_toplu_bir_ozet_ve_kucuk_bir_tesvik\">Derli toplu bir \u00f6zet ve k\u00fc\u00e7\u00fck bir te\u015fvik<\/span><\/h3>\n<p>Toparlayal\u0131m. <strong>S3\/MinIO\u2019da \u00e7apraz b\u00f6lge replikasyon<\/strong> kurarken \u00f6nce versioning\u2019i a\u00e7\u0131n, replikasyon kurallar\u0131n\u0131 i\u015f hedefinize g\u00f6re yaz\u0131n, \u015fifreleme ve yetkileri sadele\u015ftirin. Failover plan\u0131n\u0131z\u0131 DNS ve uygulama seviyesinde haz\u0131rlay\u0131n; m\u00fcmk\u00fcnse her iki yolda da birer \u201ctek tu\u015f\u201d b\u0131rak\u0131n. Runbook\u2019u bir ak\u0131\u015f olarak kurgulay\u0131n: ilk 5 dakika, 15 dakika, 60 dakika\u2026 Tatbikat\u0131 d\u00fczene ba\u011flay\u0131n; kalp at\u0131\u015f\u0131 objesiyle gecikmeyi \u00f6l\u00e7\u00fcn; k\u00fc\u00e7\u00fck dersleri ekip\u00e7e not al\u0131n. Bir de konu derinle\u015ftik\u00e7e DNS taraf\u0131ndaki dayan\u0131kl\u0131l\u0131\u011f\u0131 art\u0131rmak i\u00e7in yukar\u0131da payla\u015ft\u0131\u011f\u0131m <a href=\"https:\/\/www.dchost.com\/blog\/coklu-saglayici-dns-nasil-kurulur-octodns-ile-zero%e2%80%91downtime-gecis-ve-dayaniklilik-rehberi\/\">\u00e7oklu sa\u011flay\u0131c\u0131 DNS rehberi<\/a> kenarda dursun.<\/p>\n<p>E\u011fer hen\u00fcz MinIO kurulumunuza ba\u015flamad\u0131ysan\u0131z veya \u00fcretim ayarlar\u0131n\u0131 g\u00f6zden ge\u00e7irmek istiyorsan\u0131z, \u015fu rehber de elinizin alt\u0131nda bulunsun: <a href=\"https:\/\/www.dchost.com\/blog\/vps-uzerinde-minio-ile-s3%e2%80%91uyumlu-depolama-nasil-uretim%e2%80%91hazir-kurulur-erasure-coding-tls-ve-policyleri-tatli-tatli-anlatiyorum\/\">MinIO\u2019yu \u00fcretim\u2011haz\u0131r kurmak<\/a>. Yolunuz S3 taraf\u0131na d\u00fc\u015ferse, resmi dok\u00fcmanlar\u0131n kavram sayfalar\u0131n\u0131 da seversiniz: <a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/Versioning.html\" rel=\"nofollow noopener\" target=\"_blank\">S3 Versioning<\/a> ve <a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/replication.html\" rel=\"nofollow noopener\" target=\"_blank\">S3 Replication<\/a>. Umar\u0131m bu yol haritas\u0131, ya\u011fmurlu bir \u00f6\u011fleden sonra sizi tela\u015ftan uzak tutar. K\u00fc\u00e7\u00fck ad\u0131mlarla ba\u015flay\u0131n, bir ak\u015fam tatbikat\u0131 yap\u0131n, runbook\u2019u duvara as\u0131n. Bir dahaki yaz\u0131da g\u00f6r\u00fc\u015fmek \u00fczere.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u0130&ccedil;indekiler1 Ya\u011fmurlu Bir \u00d6\u011fleden Sonra: K\u00fc\u00e7\u00fck Bir Panik, B\u00fcy\u00fck Bir Ders2 Neden \u00c7apraz B\u00f6lge Replikasyon? K\u00fc\u00e7\u00fck Sars\u0131nt\u0131lar, B\u00fcy\u00fck Rahatl\u0131k2.1 Bir foto\u011fraf\u0131n yolculu\u011fu ve fiberin naz\u01312.2 RTO ve RPO\u2019yu g\u00fcnl\u00fck dile \u00e7evirmek3 Versiyonlama: Replikasyonun Kalp At\u0131\u015f\u01313.1 Neden versiyonlama olmadan yola \u00e7\u0131k\u0131lmaz?3.2 Silme i\u015faretleri, geri d\u00f6n\u00fc\u015f ve hayat\u0131 kolayla\u015ft\u0131ran k\u00fc\u00e7\u00fck n\u00fcanslar3.3 Uygulama-tutarl\u0131 olmak neden \u00f6nemli?4 MinIO ve [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1978,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-1977","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=1977"}],"version-history":[{"count":0,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1977\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/1978"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=1977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=1977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=1977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}