{"id":35533,"date":"2025-11-30T21:31:24","date_gmt":"2025-11-30T18:31:24","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/"},"modified":"2025-11-30T21:31:24","modified_gmt":"2025-11-30T18:31:24","slug":"aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/","title":{"rendered":"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar"},"content":{"rendered":"<style>\n  \/* Temel stil ayarlamalar\u0131 *\/\n  body {\n    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n    line-height: 1.7;\n    color: #333;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n    background-color: #f9f9f9;\n  }\n  h2, h3 {\n    color: #2c3e50;\n    margin-top: 35px;\n    margin-bottom: 15px;\n    border-bottom: 1px solid #eee;\n    padding-bottom: 8px;\n  }\n  h2 {\n    font-size: 2em;\n  }\n  h3 {\n    font-size: 1.5em;\n  }\n  p {\n    margin-bottom: 1em;\n  }\n  ul, ol {\n    margin-bottom: 1em;\n    padding-left: 20px;\n  }\n  li {\n    margin-bottom: 0.5em;\n  }\n  pre {\n    background-color: #2d2d2d;\n    color: #f8f8f2;\n    padding: 18px;\n    border-radius: 8px;\n    overflow-x: auto;\n    margin-bottom: 25px;\n    font-family: 'Fira Code', 'Cascadia Code', 'Consolas', monospace;\n    font-size: 0.95em;\n    line-height: 1.4;\n  }\n  code {\n    font-family: 'Fira Code', 'Cascadia Code', 'Consolas', monospace;\n    background-color: #e0e0e0;\n    padding: 2px 5px;\n    border-radius: 4px;\n    font-size: 0.9em;\n    color: #c7254e;\n  }\n  pre code {\n    background-color: transparent;\n    color: inherit;\n    padding: 0;\n    border-radius: 0;\n  }\n  .expert-tip {\n    background-color: #e8f5e9; \/* Light green *\/\n    border-left: 5px solid #4caf50; \/* Green *\/\n    padding: 18px;\n    margin: 30px 0;\n    font-style: italic;\n    border-radius: 8px;\n    color: #388e3c;\n  }\n  table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 25px 0;\n    box-shadow: 0 2px 10px rgba(0,0,0,0.08);\n  }\n  th, td {\n    border: 1px solid #ddd;\n    padding: 12px 15px;\n    text-align: left;\n  }\n  th {\n    background-color: #ecf0f1;\n    font-weight: bold;\n    color: #2c3e50;\n  }\n  tr:nth-child(even) {\n    background-color: #f6f6f6;\n  }\n  tr:hover {\n    background-color: #f0f0f0;\n  }<\/p>\n<p>  \/* Mobil uyumluluk i\u00e7in medya sorgular\u0131 *\/\n  @media screen and (max-width: 768px) {\n    body {\n      padding: 15px;\n      line-height: 1.6;\n    }\n    h2 {\n      font-size: 1.8em;\n    }\n    h3 {\n      font-size: 1.3em;\n    }\n    pre {\n      padding: 10px;\n      font-size: 0.85em;\n    }\n    .expert-tip {\n      padding: 12px;\n      margin: 20px 0;\n    }\n    table, thead, tbody, th, td, tr {\n      display: block;\n    }\n    thead tr {\n      position: absolute;\n      top: -9999px;\n      left: -9999px;\n    }\n    tr {\n      border: 1px solid #ccc;\n      margin-bottom: 15px;\n      border-radius: 8px;\n      overflow: hidden; \/* Ensure border-radius applies *\/\n    }\n    td {\n      border: none;\n      border-bottom: 1px solid #eee;\n      position: relative;\n      padding-left: 50%;\n      text-align: right;\n      padding-top: 10px;\n      padding-bottom: 10px;\n    }\n    td:last-child {\n      border-bottom: none;\n    }\n    td:before {\n      position: absolute;\n      top: 10px;\n      left: 10px;\n      width: 45%;\n      padding-right: 10px;\n      white-space: nowrap;\n      text-align: left;\n      font-weight: bold;\n      color: #555;\n    }\n    \/* Tablodaki her h\u00fccreye \u00f6zel etiketler *\/\n    td:nth-of-type(1):before { content: \"Ad\u0131m\"; }\n    td:nth-of-type(2):before { content: \"A\u00e7\u0131klama\"; }\n    td:nth-of-type(3):before { content: \"Komut\"; }\n  }\n<\/style>\n<p>Modern bulut ortamlar\u0131nda altyap\u0131 y\u00f6netimi karma\u015f\u0131k ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebilir. Peki, altyap\u0131n\u0131z\u0131 t\u0131pk\u0131 uygulaman\u0131z\u0131n kodu gibi yazabilir, s\u00fcr\u00fcm kontrol\u00fcne tabi tutabilir ve otomatik da\u011f\u0131tabilir miydiniz? \u0130\u015fte bu noktada AWS Cloud Development Kit (CDK) devreye giriyor. Bu kapsaml\u0131 rehberde, Windows i\u015fletim sistemi \u00fczerinde AWS CDK&#8217;n\u0131n ne oldu\u011funu, neden bu kadar pop\u00fcler oldu\u011funu ve ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131 ve kullan\u0131laca\u011f\u0131n\u0131 ke\u015ffedece\u011fiz. Geli\u015ftiricilerin ve DevOps m\u00fchendislerinin vazge\u00e7ilmezi haline gelen bu ara\u00e7la tan\u0131\u015fmaya haz\u0131r m\u0131s\u0131n\u0131z? O halde, gelin &#8220;altyap\u0131 olarak kod&#8221; (Infrastructure as Code &#8211; IaC) kavram\u0131n\u0131n bu g\u00fc\u00e7l\u00fc temsilcisiyle ilk ad\u0131mlar\u0131m\u0131z\u0131 birlikte atal\u0131m.<\/p>\n<p>AWS CDK, geli\u015ftiricilere tan\u0131d\u0131k programlama dillerini kullanarak AWS bulut kaynaklar\u0131n\u0131 tan\u0131mlama ve sa\u011flama imkan\u0131 sunar. Art\u0131k karma\u015f\u0131k JSON veya YAML \u015fablonlar\u0131yla u\u011fra\u015fmak yerine, TypeScript, Python, Java, C# veya Go gibi dillerle altyap\u0131n\u0131z\u0131 kodlayabilirsiniz. Bu, hem geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r hem de hata yapma olas\u0131l\u0131\u011f\u0131n\u0131 azalt\u0131r. Zira, kodunuzun g\u00fcc\u00fcn\u00fc kullanarak altyap\u0131n\u0131z\u0131 mant\u0131ksal bir \u015fekilde tasarlayabilir, mod\u00fcler bile\u015fenler (construct&#8217;lar) olu\u015fturabilir ve bunlar\u0131 yeniden kullanabilirsiniz. \u00d6rne\u011fin, bir web uygulamas\u0131 i\u00e7in gerekli olan bir VPC, alt a\u011flar, g\u00fcvenlik gruplar\u0131, EC2 instance&#8217;lar\u0131 ve bir veritaban\u0131 gibi t\u00fcm bile\u015fenleri tek bir CDK uygulamas\u0131nda tan\u0131mlamak m\u00fcmk\u00fcnd\u00fcr. Dahas\u0131, bu yakla\u015f\u0131m sayesinde altyap\u0131n\u0131z\u0131 uygulaman\u0131zla birlikte test edebilir, s\u00fcr\u00fcmleyebilir ve CI\/CD s\u00fcre\u00e7lerinize entegre edebilirsiniz. Bu da, geli\u015ftirme ekiplerinin \u00e7ok daha h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde de\u011fer sunmas\u0131n\u0131 sa\u011flar. Dolay\u0131s\u0131yla, AWS CDK sadece bir ara\u00e7 olmaktan \u00f6te, bulut altyap\u0131s\u0131 y\u00f6netimine yeni bir paradigmad\u0131r.<\/p>\n<h3>AWS CDK Nedir ve Altyap\u0131 Olarak Kod Yakla\u015f\u0131m\u0131na Katk\u0131lar\u0131 Nelerdir?<\/h3>\n<p>AWS CDK, &#8220;Altyap\u0131 Olarak Kod&#8221; (IaC) felsefesinin g\u00fc\u00e7l\u00fc bir temsilcisidir. Geleneksel olarak, AWS&#8217;de kaynaklar\u0131 el ile konsol \u00fczerinden olu\u015fturur veya CloudFormation gibi deklaratif \u015fablon dilleri (JSON\/YAML) kullanarak y\u00f6netirdik. Ancak bu y\u00f6ntemler, b\u00fcy\u00fck \u00f6l\u00e7ekli ve karma\u015f\u0131k projelerde okunabilirlik, bak\u0131m ve geli\u015ftirme h\u0131z\u0131 a\u00e7\u0131s\u0131ndan zorluklar \u00e7\u0131karabiliyordu. \u0130\u015fte tam da bu noktada AWS CDK, modern yaz\u0131l\u0131m geli\u015ftirme prensiplerini altyap\u0131 y\u00f6netimine ta\u015f\u0131yarak oyunun kurallar\u0131n\u0131 yeniden yazd\u0131.<\/p>\n<p>CDK, programlama dillerinin g\u00fcc\u00fcn\u00fc kullanarak altyap\u0131y\u0131 tan\u0131mlamam\u0131z\u0131 sa\u011flar. TypeScript, Python, Java, C#, Go gibi dillerle yaz\u0131lan kod, derleme s\u00fcrecinde CloudFormation \u015fablonlar\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr ve bu \u015fablonlar AWS&#8217;e g\u00f6nderilerek kaynaklar olu\u015fturulur veya g\u00fcncellenir. Bu yakla\u015f\u0131m\u0131n en b\u00fcy\u00fck avantajlar\u0131ndan biri, tan\u0131d\u0131k bir programlama ortam\u0131nda altyap\u0131 tan\u0131mlayabilme \u00f6zg\u00fcrl\u00fc\u011f\u00fcd\u00fcr. Bu sayede, if-else ko\u015fullar\u0131, d\u00f6ng\u00fcler, fonksiyonlar ve s\u0131n\u0131flar gibi programlama yap\u0131lar\u0131n\u0131 kullanarak dinamik ve esnek altyap\u0131lar olu\u015fturabilirsiniz. \u00d6rne\u011fin, bir geli\u015ftirici, belirli bir ortam (geli\u015ftirme, test, \u00fcretim) i\u00e7in farkl\u0131 say\u0131da sunucu veya farkl\u0131 veritaban\u0131 boyutlar\u0131 tan\u0131mlayabilir, bunu if ko\u015fullar\u0131yla kolayca y\u00f6netebilir. Bu, statik \u015fablonlarda \u00e7ok daha zor ve uzun s\u00fcren bir i\u015flemdir. Ayr\u0131ca, mod\u00fcler bile\u015fenler olan &#8220;construct&#8221;lar sayesinde, s\u0131k\u00e7a kullan\u0131lan altyap\u0131 desenlerini (\u00f6rne\u011fin, bir sunucusuz API a\u011f ge\u00e7idi veya g\u00fcvenli bir S3 bucket) yeniden kullan\u0131labilir birimler halinde paketleyebilir ve projeleriniz aras\u0131nda payla\u015fabilirsiniz. Bu, kod tekrar\u0131n\u0131 azalt\u0131r ve standartlar\u0131 uygulaman\u0131z\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Di\u011fer IaC ara\u00e7lar\u0131yla kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, CDK&#8217;n\u0131n en belirgin fark\u0131, programlama dillerinin sa\u011flad\u0131\u011f\u0131 soyutlama seviyesidir. Terraform gibi ara\u00e7lar HCL (HashiCorp Configuration Language) gibi \u00f6zel DSL&#8217;ler (Domain Specific Language) kullan\u0131rken, CDK genel ama\u00e7l\u0131 dilleri tercih eder. Bu durum, geli\u015ftiricilerin yeni bir dil \u00f6\u011frenme e\u011frisini ortadan kald\u0131r\u0131r ve mevcut yetkinliklerini do\u011frudan altyap\u0131 y\u00f6netimine aktarmalar\u0131na olanak tan\u0131r. \u00d6zetle, AWS CDK, altyap\u0131 y\u00f6netimini yaz\u0131l\u0131m geli\u015ftirme s\u00fcrecinin ayr\u0131lmaz bir par\u00e7as\u0131 haline getirerek daha h\u0131zl\u0131, daha g\u00fcvenilir ve daha s\u00fcrd\u00fcr\u00fclebilir bulut \u00e7\u00f6z\u00fcmleri olu\u015fturmam\u0131za olanak tan\u0131r. Bu sayede ekipler, altyap\u0131 sorunlar\u0131 yerine i\u015f de\u011feri yaratan \u00f6zelliklere odaklanabilirler.<\/p>\n<h2>Windows&#8217;ta AWS CDK Kurulumu \u0130\u00e7in Neler Gerekli?<\/h2>\n<p>AWS CDK&#8217;y\u0131 Windows sisteminizde kullanmaya ba\u015flamadan \u00f6nce, baz\u0131 temel yaz\u0131l\u0131mlar\u0131 ve ara\u00e7lar\u0131 kurman\u0131z gerekmektedir. Bu \u00f6n haz\u0131rl\u0131k ad\u0131mlar\u0131, CDK geli\u015ftirme ortam\u0131n\u0131z\u0131 sorunsuz bir \u015fekilde olu\u015fturman\u0131z\u0131 sa\u011flayacakt\u0131r. Her ad\u0131m\u0131 dikkatlice takip ederek sorunsuz bir kurulum s\u00fcreci ge\u00e7irebilirsiniz.<\/p>\n<h3>Node.js ve npm Kurulumu: G\u00fcc\u00fcn\u00fc JavaScript Ekosisteminden Al\u0131n<\/h3>\n<p>AWS CDK CLI, Node.js \u00fczerinde \u00e7al\u0131\u015fan bir JavaScript uygulamas\u0131d\u0131r. Bu nedenle, sisteminizde Node.js ve paket y\u00f6neticisi npm&#8217;in kurulu olmas\u0131 \u015fartt\u0131r. Genellikle Node.js kurulumu ile npm de otomatik olarak kurulur. LTS (Uzun S\u00fcreli Destek) s\u00fcr\u00fcm\u00fcn\u00fc tercih etmek, stabilite a\u00e7\u0131s\u0131ndan her zaman daha iyidir.<\/p>\n<ol>\n<li><strong>Node.js \u0130ndirme:<\/strong> Resmi Node.js web sitesine (nodejs.org) gidin ve Windows i\u00e7in LTS s\u00fcr\u00fcm\u00fcn\u00fc indirin.<\/li>\n<li><strong>Kurulum Sihirbaz\u0131:<\/strong> \u0130ndirdi\u011finiz <code>.msi<\/code> dosyas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n. Kurulum sihirbaz\u0131ndaki ad\u0131mlar\u0131 takip edin. Genellikle varsay\u0131lan se\u00e7enekleri kabul etmek yeterlidir. Bu, Node.js ve npm&#8217;i sisteminize kuracak ve Path de\u011fi\u015fkenine ekleyecektir.<\/li>\n<li><strong>Kurulumu Do\u011frulama:<\/strong> Komut \u0130stemi (CMD) veya PowerShell&#8217;i a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak kurulumun ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:\n<pre><code>\nnode -v\nnpm -v\n<\/pre>\n<p><\/code><\/p>\n<p>Her iki komut da kurulu s\u00fcr\u00fcmleri g\u00f6stermelidir (\u00f6rne\u011fin, <code>v18.17.1<\/code> ve <code>9.6.7<\/code>). E\u011fer bu komutlar bir hata d\u00f6nd\u00fcr\u00fcyorsa, Node.js kurulumunu kontrol etmeli veya bilgisayar\u0131n\u0131z\u0131 yeniden ba\u015flatmay\u0131 denemelisiniz.<\/p>\n<\/li>\n<\/ol>\n<p>Node.js'in ve npm'in g\u00fcncel ve stabil olmas\u0131, CDK ara\u00e7lar\u0131n\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Bu sayede, CDK projelerinizde ba\u011f\u0131ml\u0131l\u0131klar\u0131 kolayca y\u00f6netebilir ve h\u0131zl\u0131 bir geli\u015ftirme deneyimi ya\u015fayabilirsiniz.<\/p>\n<h3>AWS CLI Kurulumu ve Yap\u0131land\u0131rmas\u0131: Bulutla Konu\u015fman\u0131n Anahtar\u0131<\/h3>\n<p>AWS CDK, bulut kaynaklar\u0131n\u0131z\u0131 AWS \u00fczerinde olu\u015fturmak ve y\u00f6netmek i\u00e7in AWS CLI'y\u0131 (Command Line Interface) kullan\u0131r. Bu y\u00fczden, AWS CLI'n\u0131n do\u011fru bir \u015fekilde kurulmu\u015f ve kimlik bilgilerinizle yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekmektedir.<\/p>\n<ol>\n<li><strong>AWS CLI \u0130ndirme:<\/strong> AWS CLI'n\u0131n resmi web sitesine gidin ve Windows i\u00e7in uygun s\u00fcr\u00fcm\u00fc (genellikle 64-bit) indirin.<\/li>\n<li><strong>Kurulum:<\/strong> \u0130ndirdi\u011finiz <code>.msi<\/code> dosyas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n ve kurulum sihirbaz\u0131ndaki ad\u0131mlar\u0131 takip edin. Varsay\u0131lan se\u00e7enekler \u00e7o\u011fu kullan\u0131c\u0131 i\u00e7in yeterlidir.<\/li>\n<li><strong>Kurulumu Do\u011frulama:<\/strong> Yeni bir Komut \u0130stemi veya PowerShell penceresi a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:\n<pre><code>\naws --version\n<\/pre>\n<p><\/code><\/p>\n<p>Kurulu AWS CLI s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6rmelisiniz.<\/p>\n<\/li>\n<li><strong>AWS CLI Yap\u0131land\u0131rmas\u0131:<\/strong> \u015eimdi AWS kimlik bilgilerinizi yap\u0131land\u0131rman\u0131z gerekiyor. Bunun i\u00e7in AWS Y\u00f6netim Konsolu'ndan bir IAM kullan\u0131c\u0131s\u0131 olu\u015fturup, bu kullan\u0131c\u0131ya uygun izinler (\u00f6rne\u011fin, <code>AdministratorAccess<\/code> veya daha k\u0131s\u0131tl\u0131 bir izin seti) vermeli ve Access Key ID ile Secret Access Key'i almal\u0131s\u0131n\u0131z. Ard\u0131ndan Komut \u0130stemi'nde \u015funu \u00e7al\u0131\u015ft\u0131r\u0131n:\n<pre><code>\naws configure\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut sizden a\u015fa\u011f\u0131daki bilgileri isteyecektir:<\/p>\n<ul>\n<li><code>AWS Access Key ID [None]:<\/code> Buraya AWS Access Key ID'nizi yap\u0131\u015ft\u0131r\u0131n.<\/li>\n<li><code>AWS Secret Access Key [None]:<\/code> Buraya AWS Secret Access Key'inizi yap\u0131\u015ft\u0131r\u0131n.<\/li>\n<li><code>Default region name [None]:<\/code> \u00d6rne\u011fin, <code>us-east-1<\/code> veya <code>eu-west-1<\/code> gibi tercih etti\u011finiz AWS b\u00f6lgesini girin.<\/li>\n<li><code>Default output format [None]:<\/code> Genellikle <code>json<\/code> olarak b\u0131rakmak idealdir.<\/li>\n<\/ul>\n<p>Bu yap\u0131land\u0131rma sayesinde CDK, AWS ile etkile\u015fim kurmak i\u00e7in gerekli kimlik do\u011frulama bilgilerine sahip olacakt\u0131r. Unutmay\u0131n, g\u00fcvenlik a\u00e7\u0131s\u0131ndan k\u00f6k kullan\u0131c\u0131 kimlik bilgilerini kullanmaktan ka\u00e7\u0131nmal\u0131, bunun yerine IAM kullan\u0131c\u0131lar\u0131 olu\u015fturmal\u0131s\u0131n\u0131z.<\/p>\n<\/li>\n<\/ol>\n<h3>Geli\u015ftirme Ortam\u0131 Se\u00e7imi: Visual Studio Code ve Di\u011ferleri<\/h3>\n<p>AWS CDK ile geli\u015ftirme yaparken g\u00fc\u00e7l\u00fc bir IDE (Entegre Geli\u015ftirme Ortam\u0131) kullanmak i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 h\u0131zland\u0131racakt\u0131r. Visual Studio Code (VS Code), hafif yap\u0131s\u0131, geni\u015f eklenti deste\u011fi ve m\u00fckemmel TypeScript\/JavaScript entegrasyonu sayesinde pop\u00fcler bir tercihtir. E\u011fer hen\u00fcz kurulu de\u011filse, resmi web sitesinden indirip kurman\u0131z\u0131 \u015fiddetle tavsiye ederiz.<\/p>\n<ol>\n<li><strong>Visual Studio Code \u0130ndirme:<\/strong> <a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\">code.visualstudio.com<\/a> adresinden indirip kurun.<\/li>\n<li><strong>Gerekli Eklentiler (\u00d6nerilen):<\/strong> VS Code i\u00e7erisinde \u015fu eklentileri y\u00fcklemek i\u015finizi kolayla\u015ft\u0131racakt\u0131r:\n<ul>\n<li><strong>AWS Toolkit:<\/strong> AWS kaynaklar\u0131n\u0131z\u0131 VS Code i\u00e7inden y\u00f6netmenizi sa\u011flar.<\/li>\n<li><strong>ESLint & Prettier:<\/strong> Kod kalitenizi ve format\u0131n\u0131z\u0131 standartla\u015ft\u0131rman\u0131za yard\u0131mc\u0131 olur.<\/li>\n<li><strong>TypeScript (e\u011fer TypeScript kullanacaksan\u0131z):<\/strong> Geli\u015fmi\u015f TypeScript deste\u011fi i\u00e7in.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Bu haz\u0131rl\u0131k ad\u0131mlar\u0131 tamamland\u0131\u011f\u0131nda, Windows sisteminiz AWS CDK geli\u015ftirme i\u00e7in haz\u0131r hale gelmi\u015f olacakt\u0131r. Art\u0131k CDK CLI'y\u0131 kurmaya ve ilk projenizi olu\u015fturmaya ge\u00e7ebiliriz. Bu haz\u0131rl\u0131klar, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli projelerde zaman ve emek tasarrufu sa\u011flayarak geli\u015ftirme s\u00fcrecinin temelini olu\u015fturur. Aksi takdirde, eksik bir kurulum, sonraki ad\u0131mlarda istenmeyen hatalara yol a\u00e7abilir.<\/p>\n<h2>CDK Ara\u00e7lar\u0131n\u0131 Windows Sistemine Nas\u0131l Kurar\u0131z?<\/h2>\n<p>Yukar\u0131daki t\u00fcm \u00f6n gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131n\u0131za g\u00f6re, art\u0131k AWS CDK CLI'\u0131 Windows sisteminize kurmaya haz\u0131rs\u0131n\u0131z. Bu ad\u0131m, CDK komutlar\u0131n\u0131 terminalinizden \u00e7al\u0131\u015ft\u0131rabilmeniz i\u00e7in kritik \u00f6neme sahiptir. Kurulum s\u00fcreci olduk\u00e7a basittir ve npm arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirilir.<\/p>\n<h3>Global CDK CLI Kurulumu ve Do\u011frulamas\u0131<\/h3>\n<p>AWS CDK ara\u00e7 setini (CDK CLI) global olarak kurmak, herhangi bir dizinden <code>cdk<\/code> komutunu \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r. Bu, birden fazla CDK projesi \u00fczerinde \u00e7al\u0131\u015fan geli\u015ftiriciler i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<ol>\n<li><strong>CDK CLI Kurulumu:<\/strong> Komut \u0130stemi (CMD) veya PowerShell'i y\u00f6netici olarak a\u00e7\u0131n (\u00f6nerilir) ve a\u015fa\u011f\u0131daki npm komutunu \u00e7al\u0131\u015ft\u0131r\u0131n:\n<pre><code>\nnpm install -g aws-cdk\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, CDK CLI'\u0131n en son stabil s\u00fcr\u00fcm\u00fcn\u00fc sisteminize global olarak kuracakt\u0131r. Kurulum s\u00fcresi internet h\u0131z\u0131n\u0131za ve sistem performans\u0131n\u0131za g\u00f6re de\u011fi\u015fiklik g\u00f6sterebilir. E\u011fer proxy arkas\u0131nda \u00e7al\u0131\u015f\u0131yorsan\u0131z, npm'in proxy ayarlar\u0131n\u0131 yapman\u0131z gerekebilir.<\/p>\n<\/li>\n<li><strong>Kurulumu Do\u011frulama:<\/strong> Kurulum tamamland\u0131ktan sonra, yeni bir Komut \u0130stemi veya PowerShell penceresi a\u00e7\u0131n (\u00f6nceki pencereyi kapat\u0131p a\u00e7mak path g\u00fcncellemeleri i\u00e7in \u00f6nemlidir) ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak CDK CLI'\u0131n do\u011fru bir \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 ve eri\u015filebilir oldu\u011funu do\u011frulay\u0131n:\n<pre><code>\ncdk --version\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, kurulu CDK CLI s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6stermelidir (\u00f6rne\u011fin, <code>2.100.0 (build c516f49)<\/code>). E\u011fer bir hata al\u0131rsan\u0131z veya komut tan\u0131nmazsa, Node.js ve npm kurulumunuzu kontrol etmeniz, Path de\u011fi\u015fkeninizin do\u011fru ayarland\u0131\u011f\u0131ndan emin olman\u0131z veya bilgisayar\u0131n\u0131z\u0131 yeniden ba\u015flatman\u0131z gerekebilir.<\/p>\n<\/li>\n<\/ol>\n<p>CDK CLI'\u0131n ba\u015far\u0131l\u0131 bir \u015fekilde kurulmas\u0131, AWS CDK ile altyap\u0131n\u0131z\u0131 kodlamaya ba\u015flamak i\u00e7in \u00f6nemli bir e\u015fiktir. Bu ara\u00e7, CDK uygulamalar\u0131n\u0131z\u0131 sentezlemek (CloudFormation \u015fablonlar\u0131na d\u00f6n\u00fc\u015ft\u00fcrmek), farkl\u0131l\u0131klar\u0131 g\u00f6rmek (diff), buluta da\u011f\u0131tmak (deploy) ve kaynaklar\u0131 kald\u0131rmak (destroy) gibi temel i\u015flemleri ger\u00e7ekle\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Bu sayede, geli\u015ftiriciler terminal \u00fczerinden h\u0131zl\u0131 ve verimli bir \u015fekilde altyap\u0131lar\u0131n\u0131 y\u00f6netebilirler.<\/p>\n<h3>AWS CDK Bootstrap S\u00fcreci: \u0130lk Ortam Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>AWS CDK'y\u0131 bir AWS hesab\u0131nda ilk kez kullan\u0131rken, o hesap ve b\u00f6lge i\u00e7in \u00f6zel bir \"bootstrap stack\" olu\u015fturman\u0131z gerekir. Bu bootstrap stack, CDK'n\u0131n CloudFormation \u015fablonlar\u0131n\u0131 ve varl\u0131klar\u0131n\u0131 (\u00f6rne\u011fin, Docker imajlar\u0131, lambda kodlar\u0131) depolamak i\u00e7in kulland\u0131\u011f\u0131 bir S3 bucket ve CDK'n\u0131n da\u011f\u0131t\u0131m i\u00e7in gerekli izinleri i\u00e7eren IAM rollerini i\u00e7erir. Bu ad\u0131m, CDK'n\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi i\u00e7in zorunludur.<\/p>\n<ol>\n<li><strong>Bootstrap Komutunu \u00c7al\u0131\u015ft\u0131rma:<\/strong> Komut \u0130stemi veya PowerShell'de, AWS kimlik bilgilerinizin yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131 bir ortamda a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:\n<pre><code>\ncdk bootstrap aws:\/\/HESAP_NUMARANIZ\/BOLGE_ADINIZ\n<\/pre>\n<p><\/code><\/p>\n<p>\u00d6rne\u011fin, e\u011fer AWS hesap numaran\u0131z <code>123456789012<\/code> ve b\u00f6lgeniz <code>us-east-1<\/code> ise komut \u015f\u00f6yle olacakt\u0131r:<\/p>\n<pre><code>\ncdk bootstrap aws:\/\/123456789012\/us-east-1\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, belirli bir AWS hesab\u0131n\u0131z ve b\u00f6lgeniz i\u00e7in bir CloudFormation stack'i da\u011f\u0131tacakt\u0131r. Stack ad\u0131 genellikle <code>CDKToolkit<\/code> olacakt\u0131r. Bu stack, CDK'n\u0131n \u00e7al\u0131\u015fma zaman\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve meta verilerini bar\u0131nd\u0131r\u0131r. E\u011fer birden fazla hesap veya b\u00f6lgede CDK kullanacaksan\u0131z, her biri i\u00e7in bu bootstrap i\u015flemini bir kez yapman\u0131z gerekecektir. Bootstrap i\u015flemi, ilk da\u011f\u0131t\u0131m oldu\u011fundan biraz zaman alabilir.<\/p>\n<\/li>\n<li><strong>Bootstrap'\u0131 Do\u011frulama:<\/strong> Bootstrap i\u015flemi tamamland\u0131ktan sonra, AWS Y\u00f6netim Konsolu'na gidip CloudFormation servisinde <code>CDKToolkit<\/code> ad\u0131nda bir stack'in ba\u015far\u0131l\u0131 bir \u015fekilde olu\u015fturuldu\u011funu g\u00f6rebilirsiniz. Ayr\u0131ca, bu stack i\u00e7inde bir S3 bucket'\u0131 ve baz\u0131 IAM rolleri de bulunacakt\u0131r.<\/p>\n<\/ol>\n<p><strong>Vaka Analizi: Geli\u015ftirme Ortam\u0131 Bootstrap'\u0131<\/strong><\/p>\n<p>Bir yaz\u0131l\u0131m geli\u015ftirme \u015firketinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z\u0131 ve yeni bir mikroservis \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z\u0131 d\u00fc\u015f\u00fcn\u00fcn. Bu mikroservisin altyap\u0131s\u0131n\u0131 AWS CDK ile y\u00f6neteceksiniz. \u015eirketiniz, geli\u015ftirme, test ve \u00fcretim olmak \u00fczere \u00fc\u00e7 farkl\u0131 AWS hesab\u0131na sahip. Windows makinenizde ilk kez geli\u015ftirme hesab\u0131n\u0131zda CDK kullanacaks\u0131n\u0131z. \u00d6ncelikle, geli\u015ftirme AWS hesab\u0131n\u0131z\u0131n kimlik bilgileriyle AWS CLI'\u0131 yap\u0131land\u0131racaks\u0131n\u0131z. Ard\u0131ndan, <code>dev-account-id<\/code> ve <code>eu-central-1<\/code> b\u00f6lgesi i\u00e7in <code>cdk bootstrap aws:\/\/dev-account-id\/eu-central-1<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak gerekli \u00f6n altyap\u0131y\u0131 tek seferlik kuracaks\u0131n\u0131z. Bu sayede, geli\u015ftirme s\u00fcreciniz boyunca bu hesaptaki CDK da\u011f\u0131t\u0131mlar\u0131n\u0131z sorunsuz bir \u015fekilde ilerleyecektir. Ayn\u0131 i\u015flemi test ve \u00fcretim hesaplar\u0131n\u0131z i\u00e7in de tekrarlayarak t\u00fcm ortamlar\u0131n\u0131zda CDK'n\u0131n haz\u0131r oldu\u011fundan emin olmal\u0131s\u0131n\u0131z. Bu ad\u0131m, altyap\u0131n\u0131z\u0131n g\u00fcvenli\u011fini ve izolasyonunu sa\u011flamak a\u00e7\u0131s\u0131ndan da b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r, zira her hesap kendi bootstrap kaynaklar\u0131na sahip olur. Dolay\u0131s\u0131yla, bu tek seferlik kurulum, gelecekteki t\u00fcm CDK operasyonlar\u0131n\u0131z i\u00e7in sa\u011flam bir temel olu\u015fturur.<\/p>\n<h2>Hello World Projesiyle AWS CDK'ya \u0130lk Ad\u0131m\u0131n\u0131z\u0131 At\u0131n<\/h2>\n<p>CDK CLI'\u0131 kurdu\u011funuza ve bootstrap i\u015flemini tamamlad\u0131\u011f\u0131n\u0131za g\u00f6re, art\u0131k ilk AWS CDK projenizi olu\u015fturmaya ve temel bulut kaynaklar\u0131n\u0131 da\u011f\u0131tmaya haz\u0131rs\u0131n\u0131z. Bu \"Hello World\" projesi, CDK'n\u0131n temel i\u015f ak\u0131\u015f\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olacak ve size geli\u015ftirme s\u00fcrecine dair bir fikir verecektir.<\/p>\n<h3>Yeni Bir CDK Projesi Ba\u015flatma ve Yap\u0131s\u0131n\u0131 Anlama<\/h3>\n<p>Yeni bir CDK projesi olu\u015fturmak olduk\u00e7a kolayd\u0131r. <code>cdk init<\/code> komutu, se\u00e7ti\u011finiz programlama diline g\u00f6re gerekli dosya yap\u0131s\u0131n\u0131 ve temel bir iskeleti otomatik olarak olu\u015fturur.<\/p>\n<ol>\n<li><strong>Proje Dizini Olu\u015fturma:<\/strong> \u00d6ncelikle, projeniz i\u00e7in bir dizin olu\u015fturun ve bu dizine ge\u00e7i\u015f yap\u0131n:\n<pre><code>\nmkdir my-first-cdk-app\ncd my-first-cdk-app\n<\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Proje Ba\u015flatma:<\/strong> \u015eimdi, TypeScript diliyle (en yayg\u0131n kullan\u0131lan) yeni bir CDK projesi ba\u015flatmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:\n<pre><code>\ncdk init app --language typescript\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, projeniz i\u00e7in gerekli t\u00fcm dosyalar\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 olu\u015fturacakt\u0131r. TypeScript'in yan\u0131 s\u0131ra Python, Java, C# ve Go gibi dilleri de se\u00e7ebilirsiniz. Proje ba\u015flat\u0131ld\u0131ktan sonra, ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fcklemek i\u00e7in <code>npm install<\/code> komutunu \u00e7al\u0131\u015ft\u0131rman\u0131z istenebilir. Bunu yaparak, projenizin t\u00fcm harici k\u00fct\u00fcphaneleri kurulmu\u015f olacakt\u0131r.<\/p>\n<\/li>\n<li><strong>Proje Yap\u0131s\u0131:<\/strong> Olu\u015fturulan dizinin i\u00e7inde a\u015fa\u011f\u0131daki temel dosyalar\u0131 ve dizinleri g\u00f6receksiniz:\n<ul>\n<li><code>lib\/my-first-cdk-app-stack.ts<\/code>: Buras\u0131, bulut kaynaklar\u0131n\u0131z\u0131 tan\u0131mlayaca\u011f\u0131n\u0131z ana CDK stack dosyan\u0131zd\u0131r.<\/li>\n<li><code>bin\/my-first-cdk-app.ts<\/code>: CDK uygulaman\u0131z\u0131n giri\u015f noktas\u0131d\u0131r. Stack'lerinizi burada ba\u015flat\u0131rs\u0131n\u0131z.<\/li>\n<li><code>package.json<\/code>: Proje ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve script'lerini tan\u0131mlar.<\/li>\n<li><code>tsconfig.json<\/code>: TypeScript derleyici ayarlar\u0131n\u0131 i\u00e7erir.<\/li>\n<li><code>cdk.json<\/code>: CDK CLI'\u0131n proje hakk\u0131nda bilgi edindi\u011fi yap\u0131land\u0131rma dosyas\u0131d\u0131r.<\/li>\n<\/ul>\n<p>\u00d6zellikle <code>lib\/my-first-cdk-app-stack.ts<\/code> dosyas\u0131, t\u00fcm altyap\u0131n\u0131z\u0131 kodlayaca\u011f\u0131n\u0131z yerdir. Burada AWS kaynaklar\u0131n\u0131 \"construct\" olarak tan\u0131mlars\u0131n\u0131z. Her stack, tek bir CloudFormation \u015fablonuna kar\u015f\u0131l\u0131k gelir ve bir uygulaman\u0131n da\u011f\u0131t\u0131labilir bir birimidir. Dolay\u0131s\u0131yla, bu yap\u0131y\u0131 anlamak, CDK ile etkili bir \u015fekilde \u00e7al\u0131\u015fman\u0131n ilk ad\u0131m\u0131d\u0131r.<\/p>\n<\/li>\n<\/ol>\n<h3>Basit Bir S3 Bucket Olu\u015fturma ve Da\u011f\u0131t\u0131m Komutlar\u0131<\/h3>\n<p>\u015eimdi, <code>lib\/my-first-cdk-app-stack.ts<\/code> dosyas\u0131n\u0131 a\u00e7arak basit bir S3 bucket olu\u015fturma kodunu ekleyelim. Bu, AWS CDK'n\u0131n ne kadar kolay ve sezgisel oldu\u011funu g\u00f6stermenin harika bir yoludur.<\/p>\n<ol>\n<li><strong>S3 Bucket Tan\u0131mlama:<\/strong> <code>lib\/my-first-cdk-app-stack.ts<\/code> dosyan\u0131z\u0131 a\u015fa\u011f\u0131daki gibi g\u00fcncelleyin. <code>aws-s3<\/code> mod\u00fcl\u00fcn\u00fc i\u00e7e aktard\u0131\u011f\u0131n\u0131za dikkat edin.\n<pre><code>\nimport * as cdk from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport * as s3 from 'aws-cdk-lib\/aws-s3'; \/\/ S3 mod\u00fcl\u00fcn\u00fc i\u00e7e aktar\u0131yoruz\n\nexport class MyFirstCdkAppStack extends cdk.Stack {\n  constructor(scope: Construct, id: string, props?: cdk.StackProps) {\n    super(scope, id, props);\n\n    \/\/ Yeni bir S3 bucket olu\u015fturuyoruz\n    new s3.Bucket(this, 'MySimpleBucket', {\n      versioned: true, \/\/ S\u00fcr\u00fcmleme a\u00e7\u0131k\n      removalPolicy: cdk.RemovalPolicy.DESTROY, \/\/ Stack silinince bucket'\u0131 da sil\n      autoDeleteObjects: true \/\/ Bucket silinirken i\u00e7indeki nesneleri de sil\n    });\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kod par\u00e7ac\u0131\u011f\u0131, s\u00fcr\u00fcmleme (versioning) \u00f6zelli\u011fi a\u00e7\u0131k olan ve stack silindi\u011finde t\u00fcm i\u00e7eri\u011fiyle birlikte otomatik olarak silinecek basit bir S3 bucket olu\u015fturur. <code>cdk.RemovalPolicy.DESTROY<\/code> ve <code>autoDeleteObjects: true<\/code>, geli\u015ftirme ortamlar\u0131nda deneme ama\u00e7l\u0131 stack'leri kolayca temizlemek i\u00e7in faydal\u0131d\u0131r. \u00dcretim ortamlar\u0131nda bu ayarlara dikkat etmek gerekir.<\/p>\n<\/li>\n<li><strong>Kod Farklar\u0131n\u0131 G\u00f6rme (<code>cdk diff<\/code>):<\/strong> Kodunuzu kaydedin. Da\u011f\u0131t\u0131m yapmadan \u00f6nce, CDK'n\u0131n mevcut AWS altyap\u0131n\u0131zla yapaca\u011f\u0131 de\u011fi\u015fiklikleri g\u00f6rmek i\u00e7in <code>cdk diff<\/code> komutunu kullanabilirsiniz:\n<pre><code>\nnpm run build # TypeScript kodunu derle\ncdk diff\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, CDK'n\u0131n mevcut CloudFormation \u015fablonu (veya yoksa s\u0131f\u0131rdan olu\u015fturulacak \u015fablon) ile tan\u0131mlad\u0131\u011f\u0131n\u0131z yeni durumu kar\u015f\u0131la\u015ft\u0131racak ve terminalde renkli bir \u00e7\u0131kt\u0131 ile hangi kaynaklar\u0131n eklenece\u011fini, g\u00fcncellenece\u011fini veya silinece\u011fini g\u00f6sterecektir. Bu, beklenmedik de\u011fi\u015fiklikleri \u00f6nlemek i\u00e7in harika bir g\u00fcvenlik ad\u0131m\u0131d\u0131r.<\/p>\n<\/li>\n<li><strong>Altyap\u0131y\u0131 Da\u011f\u0131tma (<code>cdk deploy<\/code>):<\/strong> De\u011fi\u015fiklikler bekledi\u011finiz gibiyse, altyap\u0131y\u0131 AWS'e da\u011f\u0131tmak i\u00e7in <code>cdk deploy<\/code> komutunu kullan\u0131n:\n<pre><code>\ncdk deploy\n<\/pre>\n<p><\/code><\/p>\n<p>CDK CLI, CloudFormation stack'ini olu\u015fturacak veya g\u00fcncelleyecek ve kaynaklar\u0131n AWS \u00fczerinde provision edilmesini ba\u015flatacakt\u0131r. Da\u011f\u0131t\u0131m\u0131n ilerlemesini terminalden takip edebilirsiniz. Genellikle, sizden IAM de\u011fi\u015fikliklerini onaylaman\u0131z istenecektir, <code>y<\/code> yaz\u0131p Enter tu\u015funa basarak devam edebilirsiniz.<\/p>\n<\/li>\n<li><strong>Kaynaklar\u0131 Temizleme (<code>cdk destroy<\/code>):<\/strong> Denemenizi tamamlad\u0131\u011f\u0131n\u0131zda ve olu\u015fturdu\u011funuz kaynaklara ihtiyac\u0131n\u0131z kalmad\u0131\u011f\u0131nda, maliyetlerden ka\u00e7\u0131nmak i\u00e7in bunlar\u0131 temizlemek \u00f6nemlidir. A\u015fa\u011f\u0131daki komutu kullanarak stack'i ve t\u00fcm kaynaklar\u0131n\u0131 silebilirsiniz:\n<pre><code>\ncdk destroy\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut da sizden onay isteyecektir. Onaylad\u0131ktan sonra CDK, CloudFormation stack'ini silecek ve bu stack taraf\u0131ndan olu\u015fturulan t\u00fcm AWS kaynaklar\u0131n\u0131 temizleyecektir. Bu, \u00f6zellikle geli\u015ftirme ve test ortamlar\u0131nda h\u0131zl\u0131 iterasyonlar yapmak i\u00e7in b\u00fcy\u00fck kolayl\u0131k sa\u011flar.<\/p>\n<\/ol>\n<p>Bu ad\u0131mlar, AWS CDK ile temel bir altyap\u0131 da\u011f\u0131t\u0131m\u0131n\u0131n t\u00fcm ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc kapsar. Art\u0131k temel bir CDK projesi olu\u015fturabilir, kaynak tan\u0131mlayabilir ve bunlar\u0131 AWS'e da\u011f\u0131tabilirsiniz. Bu deneyim, daha karma\u015f\u0131k bulut \u00e7\u00f6z\u00fcmleri geli\u015ftirmek i\u00e7in sa\u011flam bir temel olu\u015fturacakt\u0131r.<\/p>\n<h2>CDK Yap\u0131lar\u0131n\u0131 Derinlemesine Anlamak: Construct'lar, Stack'ler ve Uygulamalar<\/h2>\n<p>AWS CDK'n\u0131n g\u00fcc\u00fcn\u00fc tam anlam\u0131yla kullanabilmek i\u00e7in temel yap\u0131 ta\u015flar\u0131n\u0131 ve bunlar\u0131n birbiriyle nas\u0131l etkile\u015fimde bulundu\u011funu anlamak kritik \u00f6nem ta\u015f\u0131r. Bu \u00fc\u00e7 ana yap\u0131, yani Construct'lar, Stack'ler ve Uygulamalar (App), CDK mimarisinin iskeletini olu\u015fturur.<\/p>\n<h3>Construct'lar: Yeniden Kullan\u0131labilir Altyap\u0131 Bloklar\u0131<\/h3>\n<p>CDK'n\u0131n en temel ve en g\u00fc\u00e7l\u00fc yap\u0131 ta\u015f\u0131 <strong>Construct<\/strong>'lard\u0131r. Bir construct, tek bir AWS kayna\u011f\u0131n\u0131 (\u00f6rne\u011fin, bir S3 bucket, bir Lambda fonksiyonu) veya bir grup ilgili kayna\u011f\u0131 (\u00f6rne\u011fin, bir web sunucusu, veritaban\u0131 ve g\u00fcvenlik grubu kombinasyonu) temsil eden bir bulut bile\u015fenidir. Construct'lar, t\u0131pk\u0131 nesne y\u00f6nelimli programlamadaki s\u0131n\u0131flar gibi d\u00fc\u015f\u00fcn\u00fclmelidir; karma\u015f\u0131kl\u0131\u011f\u0131 soyutlar ve yeniden kullan\u0131labilirli\u011fi te\u015fvik eder. Her construct, kendine \u00f6zg\u00fc bir ID'ye ve bir 'scope'a (kapsam) sahiptir, bu da hiyerar\u015fik bir yap\u0131 olu\u015fturmalar\u0131n\u0131 sa\u011flar.<\/p>\n<p>CDK'da \u00fc\u00e7 farkl\u0131 seviyede construct bulunur:<\/p>\n<ol>\n<li><strong>L1 Construct'lar (Cfn - CloudFormation):<\/strong> Bunlar, do\u011frudan CloudFormation kaynaklar\u0131n\u0131 temsil eder. AWS CloudFormation Resource Specification ile birebir e\u015fle\u015firler. En d\u00fc\u015f\u00fck soyutlama seviyesindedirler ve en ince ayar kontrol\u00fcn\u00fc sa\u011flarlar. \u00d6rne\u011fin, <code>new s3.CfnBucket(this, 'MyRawBucket', { ... });<\/code> \u015feklinde bir tan\u0131m yapabilirsiniz. Genellikle nadiren do\u011frudan kullan\u0131l\u0131rlar, \u00e7\u00fcnk\u00fc daha y\u00fcksek seviye construct'lar daha kullan\u0131c\u0131 dostu bir aray\u00fcz sunar.<\/li>\n<li><strong>L2 Construct'lar:<\/strong> Bunlar, L1 construct'lar\u0131 sararak daha y\u00fcksek bir soyutlama seviyesi sunar. \u00c7o\u011fu geli\u015ftiricinin g\u00fcnl\u00fck olarak kulland\u0131\u011f\u0131 construct'lard\u0131r. Belirli AWS kaynaklar\u0131 i\u00e7in ak\u0131ll\u0131 varsay\u0131lanlar ve daha basit API'ler sa\u011flarlar. \u00d6rne\u011fin, <code>new s3.Bucket(this, 'MySmartBucket', { versioned: true });<\/code>. Bu, L1'e g\u00f6re \u00e7ok daha az kodla ayn\u0131 (veya daha geli\u015fmi\u015f) i\u015flevi yerine getirir ve iyi pratikleri otomatik olarak uygular.<\/li>\n<li><strong>L3 Construct'lar (Patterns - Kal\u0131plar):<\/strong> Birden fazla L2 construct'\u0131 bir araya getirerek yayg\u0131n bulut mimarisi desenlerini (patterns) uygulayan daha da y\u00fcksek seviyeli soyutlamalard\u0131r. \u00d6rne\u011fin, bir Fargate tabanl\u0131 API veya bir sunucusuz web uygulamas\u0131 (S3 statik site + CloudFront + Lambda@Edge) i\u00e7in L3 construct'lar, bu karma\u015f\u0131k mimarileri tek bir sat\u0131r kodla olu\u015fturman\u0131z\u0131 sa\u011flar. Bu, geli\u015ftiricilerin \"yap\u0131land\u0131rma\" yerine \"tasar\u0131m\"a odaklanmas\u0131na olanak tan\u0131r. Kendi \u00f6zel L3 construct'lar\u0131n\u0131z\u0131 yazarak \u015firketiniz veya ekibiniz i\u00e7in standartla\u015ft\u0131r\u0131lm\u0131\u015f, yeniden kullan\u0131labilir altyap\u0131 kal\u0131plar\u0131 olu\u015fturabilirsiniz. Bu, b\u00fcy\u00fck projelerde tutarl\u0131l\u0131k ve h\u0131z a\u00e7\u0131s\u0131ndan paha bi\u00e7ilmezdir.<\/li>\n<\/ol>\n<h3>Stack'ler: Da\u011f\u0131t\u0131labilir Bulut Birimleri<\/h3>\n<p>Bir <strong>Stack<\/strong>, bir CloudFormation \u015fablonuna kar\u015f\u0131l\u0131k gelen bir CDK construct koleksiyonudur. Yani, bir stack i\u00e7erisinde tan\u0131mlad\u0131\u011f\u0131n\u0131z t\u00fcm construct'lar, nihayetinde tek bir CloudFormation stack'i olarak AWS'e da\u011f\u0131t\u0131l\u0131r. Genellikle bir uygulama veya hizmet i\u00e7in gerekli t\u00fcm kaynaklar\u0131 (EC2 instance'lar\u0131, veritabanlar\u0131, depolama, a\u011f vb.) bir stack i\u00e7inde grupland\u0131r\u0131rs\u0131n\u0131z. Stack'ler, AWS b\u00f6lgesine ve hesab\u0131na \u00f6zg\u00fcd\u00fcr. \u00d6rne\u011fin, geli\u015ftirme ortam\u0131 i\u00e7in bir stack, \u00fcretim ortam\u0131 i\u00e7in farkl\u0131 bir stack tan\u0131mlayabilirsiniz. Stack'ler, bir uygulaman\u0131n ba\u011f\u0131ms\u0131z olarak da\u011f\u0131t\u0131labilir birimlerini temsil eder ve mant\u0131ksal olarak ili\u015fkili kaynaklar\u0131 bir arada tutar. Bir stack'i da\u011f\u0131tt\u0131\u011f\u0131n\u0131zda veya sildi\u011finizde, i\u00e7erdi\u011fi t\u00fcm kaynaklar birlikte i\u015flem g\u00f6r\u00fcr. Bu, altyap\u0131 y\u00f6netiminde tutarl\u0131l\u0131\u011f\u0131 ve kolayl\u0131\u011f\u0131 sa\u011flar. \u00d6zellikle b\u00fcy\u00fck ve karma\u015f\u0131k uygulamalarda, farkl\u0131 bile\u015fenleri veya farkl\u0131 ya\u015fam d\u00f6ng\u00fclerine sahip kaynaklar\u0131 ayr\u0131 stack'lere b\u00f6lmek iyi bir pratiktir.<\/p>\n<h3>Uygulamalar (App): T\u00fcm Stack'leri Bir Araya Getiren Kapsay\u0131c\u0131<\/h3>\n<p>Bir <strong>App<\/strong> (Uygulama), bir veya daha fazla CDK stack'ini i\u00e7eren ana kapsay\u0131c\u0131d\u0131r. <code>bin\/my-first-cdk-app.ts<\/code> gibi uygulaman\u0131z\u0131n giri\u015f dosyas\u0131nda tan\u0131mlan\u0131r. App, t\u00fcm stack'lerinizin bulundu\u011fu k\u00f6k construct'tur ve ayn\u0131 zamanda CDK CLI ile etkile\u015fim kurulan ana birimdir. <code>cdk deploy<\/code> veya <code>cdk diff<\/code> gibi komutlar, uygulaman\u0131zdaki t\u00fcm stack'leri veya belirli bir stack'i hedefleyebilir. Bir App, farkl\u0131 ortamlar (geli\u015ftirme, test, \u00fcretim) i\u00e7in farkl\u0131 stack'leri veya birden fazla mikroservisi y\u00f6netebilir. \u00d6rne\u011fin, bir monorepo i\u00e7inde birden fazla mikroservisin altyap\u0131s\u0131n\u0131 y\u00f6netiyorsan\u0131z, her mikroservis i\u00e7in ayr\u0131 bir stack olu\u015fturabilir ve bunlar\u0131 tek bir CDK uygulamas\u0131 alt\u0131nda toplayabilirsiniz. Bu yap\u0131, b\u00fcy\u00fck ve \u00e7ok katmanl\u0131 uygulamalar\u0131n y\u00f6netimini basitle\u015ftirir ve bulut altyap\u0131s\u0131n\u0131 daha d\u00fczenli bir \u015fekilde organize etmenize yard\u0131mc\u0131 olur. \u00d6zetle, App, stack'lerinizin mant\u0131ksal organizasyonunu sa\u011flarken, stack'ler construct'lar\u0131 grupland\u0131r\u0131r ve construct'lar ise AWS kaynaklar\u0131n\u0131n soyutlanm\u0131\u015f halleridir. Bu hiyerar\u015fik yap\u0131, CDK'n\u0131n mod\u00fcler ve \u00f6l\u00e7eklenebilir altyap\u0131 tan\u0131mlama yetene\u011finin temelini olu\u015fturur.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Kendi \u00f6zel L3 construct'lar\u0131n\u0131z\u0131 olu\u015fturmak, \u015firketinizin veya ekibinizin tekrarlayan altyap\u0131 desenlerini standartla\u015ft\u0131rman\u0131n ve yeniden kullanman\u0131n en g\u00fc\u00e7l\u00fc yoludur. Bu construct'lar, ekibinizdeki herkesin ayn\u0131 g\u00fcvenli ve optimize edilmi\u015f altyap\u0131 bile\u015fenlerini kullanmas\u0131n\u0131 sa\u011flar, b\u00f6ylece geli\u015ftirme h\u0131z\u0131n\u0131 art\u0131r\u0131r ve hatalar\u0131 azalt\u0131r. \u00d6rne\u011fin, belirli bir g\u00fcvenlik politikas\u0131na sahip bir S3 bucket veya bir Lambda + API Gateway ikilisi i\u00e7in kendi L3 construct'\u0131n\u0131z\u0131 yazabilirsiniz.\n<\/div>\n<h2>\u0130leri D\u00fczey \u0130pu\u00e7lar\u0131 ve P\u00fcf Noktalar\u0131: AWS CDK Deneyiminizi Bir \u00dcst Seviyeye Ta\u015f\u0131y\u0131n<\/h2>\n<p>AWS CDK'n\u0131n temel kurulumunu ve kullan\u0131m\u0131n\u0131 \u00f6\u011frendi\u011finize g\u00f6re, \u015fimdi deneyiminizi daha da zenginle\u015ftirecek baz\u0131 ileri d\u00fczey ipu\u00e7lar\u0131na ve p\u00fcf noktalar\u0131na g\u00f6z atal\u0131m. Bu teknikler, daha karma\u015f\u0131k, esnek ve s\u00fcrd\u00fcr\u00fclebilir CDK uygulamalar\u0131 geli\u015ftirmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Ortam De\u011fi\u015fkenleri ve Ba\u011flam (Context) Kullan\u0131m\u0131<\/h3>\n<p>CDK uygulamalar\u0131n\u0131z\u0131 farkl\u0131 ortamlar (geli\u015ftirme, test, \u00fcretim) veya farkl\u0131 gereksinimler i\u00e7in yap\u0131land\u0131rmak olduk\u00e7a yayg\u0131nd\u0131r. Ortam de\u011fi\u015fkenleri ve CDK ba\u011flam\u0131 (context) bu konuda size yard\u0131mc\u0131 olur.<\/p>\n<ol>\n<li><strong>Ortam De\u011fi\u015fkenleri:<\/strong> Terminal \u00fczerinden veya bir CI\/CD boru hatt\u0131nda, ortam de\u011fi\u015fkenlerini kullanarak CDK uygulaman\u0131z\u0131n davran\u0131\u015f\u0131n\u0131 de\u011fi\u015ftirebilirsiniz. \u00d6rne\u011fin, farkl\u0131 AWS hesaplar\u0131 i\u00e7in farkl\u0131 yap\u0131land\u0131rmalar\u0131 i\u015faret edebilirsiniz.\n<pre><code>\n# Terminalde bir ortam de\u011fi\u015fkeni ayarlama (Windows PowerShell)\n$env:ACCOUNT_ID=\"123456789012\"\n$env:REGION=\"eu-west-1\"\ncdk deploy\n<\/pre>\n<p><\/code><\/p>\n<p>CDK uygulaman\u0131zda bu de\u011fi\u015fkenlere <code>process.env.ACCOUNT_ID<\/code> veya <code>process.env.REGION<\/code> ile eri\u015febilirsiniz. Bu y\u00f6ntem, hassas bilgileri (API anahtarlar\u0131 gibi) koddan ay\u0131rmak ve da\u011f\u0131t\u0131m s\u0131ras\u0131nda dinamik olarak sa\u011flamak i\u00e7in de kullan\u0131labilir.<\/p>\n<\/li>\n<li><strong>CDK Ba\u011flam\u0131 (Context):<\/strong> CDK, <code>cdk.json<\/code> dosyas\u0131 arac\u0131l\u0131\u011f\u0131yla veya komut sat\u0131r\u0131 arg\u00fcmanlar\u0131yla ba\u011flam de\u011ferleri tan\u0131mlaman\u0131za olanak tan\u0131r. Bu de\u011ferler, uygulaman\u0131z\u0131n farkl\u0131 ortamlarda veya ko\u015fullarda farkl\u0131 kaynaklar sa\u011flamas\u0131na yard\u0131mc\u0131 olabilir.\n<pre><code>\n# cdk.json dosyas\u0131nda context tan\u0131m\u0131\n{\n  \"app\": \"npx ts-node --prefer-ts-exts bin\/my-first-cdk-app.ts\",\n  \"context\": {\n    \"stage\": \"dev\",\n    \"feature_toggle_A\": true\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Uygulaman\u0131zda bu de\u011ferlere <code>this.node.tryGetContext('stage')<\/code> ile eri\u015febilirsiniz. Komut sat\u0131r\u0131ndan da ba\u011flam de\u011ferlerini override edebilirsiniz: <code>cdk deploy --context stage=prod<\/code>. Bu sayede, tek bir CDK kod taban\u0131yla birden fazla ortam\u0131 y\u00f6netebilir, b\u00f6ylece kod tekrar\u0131n\u0131 azaltabilirsiniz.<\/p>\n<\/li>\n<\/ol>\n<h3>\u00d6zel Construct'lar Olu\u015fturma ve Yeniden Kullan\u0131m<\/h3>\n<p>Daha \u00f6nce bahsetti\u011fimiz L3 construct'lar, CDK'n\u0131n mod\u00fclerli\u011fini ve yeniden kullan\u0131labilirli\u011fini maksimize etmenin anahtar\u0131d\u0131r. Kendi \u00f6zel construct'lar\u0131n\u0131z\u0131 olu\u015fturarak, \u015firketinizdeki veya ekibinizdeki ortak altyap\u0131 desenlerini kolayca payla\u015fabilir ve uygulayabilirsiniz.<\/p>\n<ol>\n<li><strong>\u00d6zel Construct Tan\u0131mlama:<\/strong> \u00d6rne\u011fin, bir web uygulamas\u0131 i\u00e7in standart bir S3 bucket ve CloudFront da\u011f\u0131t\u0131m\u0131n\u0131 bir araya getiren bir construct olu\u015fturabilirsiniz:\n<pre><code>\n\/\/ lib\/my-web-bucket.ts\nimport * as cdk from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport * as s3 from 'aws-cdk-lib\/aws-s3';\nimport * as cloudfront from 'aws-cdk-lib\/aws-cloudfront';\nimport * as origins from 'aws-cdk-lib\/aws-cloudfront-origins';\n\ninterface MyWebBucketProps extends cdk.StackProps {\n  bucketName: string;\n}\n\nexport class MyWebBucket extends Construct {\n  constructor(scope: Construct, id: string, props: MyWebBucketProps) {\n    super(scope, id);\n\n    const bucket = new s3.Bucket(this, 'WebsiteBucket', {\n      bucketName: props.bucketName,\n      websiteIndexDocument: 'index.html',\n      publicReadAccess: true,\n      removalPolicy: cdk.RemovalPolicy.DESTROY,\n      autoDeleteObjects: true,\n    });\n\n    new cloudfront.Distribution(this, 'WebsiteDistribution', {\n      defaultBehavior: {\n        origin: new origins.S3Origin(bucket),\n      },\n      defaultRootObject: 'index.html',\n    });\n\n    new cdk.CfnOutput(this, 'BucketNameOutput', {\n      value: bucket.bucketName,\n      description: 'The name of the S3 bucket',\n    });\n    new cdk.CfnOutput(this, 'CloudFrontUrl', {\n      value: <code>https:\/\/${bucket.bucketDomainName}<\/code>, \/\/ CloudFront URL yerine do\u011frudan bucket URL'si verilmi\u015f, do\u011fru olan da\u011f\u0131t\u0131m URL'si olmal\u0131\n      description: 'The URL of the CloudFront distribution',\n    });\n  }\n}\n<\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Construct'\u0131 Kullanma:<\/strong> Ana stack dosyan\u0131zda (<code>lib\/my-first-cdk-app-stack.ts<\/code>), bu \u00f6zel construct'\u0131 i\u00e7e aktarabilir ve tek bir sat\u0131r kodla kullanabilirsiniz:\n<pre><code>\n\/\/ lib\/my-first-cdk-app-stack.ts\nimport * as cdk from 'aws-cdk-lib';\nimport { Construct } from 'constructs';\nimport { MyWebBucket } from '.\/my-web-bucket'; \/\/ Kendi construct'\u0131m\u0131z\u0131 i\u00e7e aktar\u0131yoruz\n\nexport class MyFirstCdkAppStack extends cdk.Stack {\n  constructor(scope: Construct, id: string, props?: cdk.StackProps) {\n    super(scope, id, props);\n\n    new MyWebBucket(this, 'MyAwesomeWebsite', {\n      bucketName: 'my-unique-website-bucket-12345'\n    });\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yakla\u015f\u0131m, kodunuzu daha okunabilir hale getirir, karma\u015f\u0131kl\u0131\u011f\u0131 soyutlar ve ekiplerin standartla\u015ft\u0131r\u0131lm\u0131\u015f, test edilmi\u015f altyap\u0131 bile\u015fenlerini h\u0131zla kullanmas\u0131n\u0131 sa\u011flar. \u00d6zellikle b\u00fcy\u00fck ve birden fazla projeye sahip organizasyonlarda, bir \"construct k\u00fct\u00fcphanesi\" olu\u015fturmak, altyap\u0131 otomasyonunu ve tutarl\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<\/li>\n<\/ol>\n<h3>CI\/CD Entegrasyonu ve Test<\/h3>\n<p>CDK ile altyap\u0131n\u0131z\u0131 kodlamak, CI\/CD (S\u00fcrekli Entegrasyon\/S\u00fcrekli Teslimat) s\u00fcre\u00e7lerine entegre etme potansiyeli sunar. CDK kodunuzu otomatik testlerle do\u011frulamak ve buluta otomatik olarak da\u011f\u0131tmak, geli\u015ftirme h\u0131z\u0131n\u0131z\u0131 ve g\u00fcvenilirli\u011finizi art\u0131r\u0131r.<\/p>\n<ol>\n<li><strong>Snapshot Testleri:<\/strong> CDK, olu\u015fturdu\u011fu CloudFormation \u015fablonlar\u0131n\u0131n \"snapshot\" testlerini yapman\u0131za olanak tan\u0131r. Bu testler, kodunuzda yap\u0131lan herhangi bir de\u011fi\u015fiklik sonras\u0131 \u00fcretilen CloudFormation \u015fablonunda beklenmedik farkl\u0131l\u0131klar olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Jest gibi test framework'leriyle kolayca entegre edilebilir.\n<pre><code>\n\/\/ test\/my-first-cdk-app.test.ts (\u00d6rnek)\nimport * as cdk from 'aws-cdk-lib';\nimport { Template } from 'aws-cdk-lib\/assertions';\nimport * as MyFirstCdkApp from '..\/lib\/my-first-cdk-app-stack';\n\ntest('S3 Bucket Created', () => {\n  const app = new cdk.App();\n  const stack = new MyFirstCdkApp.MyFirstCdkAppStack(app, 'TestStack');\n  const template = Template.fromStack(stack);\n\n  template.hasResourceProperties('AWS::S3::Bucket', {\n    VersioningConfiguration: { Status: 'Enabled' }\n  });\n});\n<\/pre>\n<p><\/code><\/p>\n<p>Bu t\u00fcr testler, CDK kodunuzdaki yanl\u0131\u015fl\u0131kla yap\u0131lan de\u011fi\u015fikliklerin \u00fcretime gitmesini engellemek i\u00e7in hayati \u00f6neme sahiptir. <code>npm test<\/code> ile bu testleri \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<\/li>\n<li><strong>CI\/CD Boru Hatlar\u0131:<\/strong> Jenkins, GitHub Actions, AWS CodePipeline gibi ara\u00e7larla CDK da\u011f\u0131t\u0131mlar\u0131n\u0131z\u0131 otomatize edebilirsiniz. Bir kod deposuna yap\u0131lan her commit veya pull request'te, CDK kodunuz otomatik olarak derlenebilir, test edilebilir ve ard\u0131ndan <code>cdk deploy<\/code> komutuyla belirtilen AWS hesab\u0131na ve b\u00f6lgesine da\u011f\u0131t\u0131labilir. Bu, manuel m\u00fcdahaleyi azalt\u0131r ve \"hata yapma\" riskini minimuma indirir. \u00d6zellikle b\u00fcy\u00fck ve dinamik projelerde, bu otomasyon, geli\u015ftirme ekiplerinin \u00e7ok daha h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde de\u011fer sunmas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ol>\n<p>Bu ileri d\u00fczey ipu\u00e7lar\u0131 ve p\u00fcf noktalar\u0131, AWS CDK'y\u0131 sadece bir kurulum arac\u0131 olmaktan \u00e7\u0131kar\u0131p, karma\u015f\u0131k ve \u00f6l\u00e7eklenebilir bulut \u00e7\u00f6z\u00fcmlerinin omurgas\u0131 haline getirmenize yard\u0131mc\u0131 olacakt\u0131r. Unutmay\u0131n, iyi yap\u0131land\u0131r\u0131lm\u0131\u015f, test edilmi\u015f ve otomatikle\u015ftirilmi\u015f bir CDK uygulamas\u0131, uzun vadede size b\u00fcy\u00fck zaman ve maliyet tasarrufu sa\u011flayacakt\u0131r.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular: AWS CDK ile Gelece\u011fe Y\u00f6nelik Altyap\u0131 Y\u00f6netimi<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, AWS CDK'n\u0131n ne oldu\u011fundan, neden modern bulut altyap\u0131s\u0131 y\u00f6netimi i\u00e7in bu kadar \u00f6nemli oldu\u011fundan ve Windows i\u015fletim sistemi \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kurulup kullan\u0131laca\u011f\u0131na kadar bir\u00e7ok konuyu ele ald\u0131k. Node.js ve AWS CLI gibi \u00f6n gereksinimleri kurmaktan, ilk \"Hello World\" projenizi ba\u015flatmaya ve ileri d\u00fczey ipu\u00e7lar\u0131na kadar her a\u015famada size rehberlik ettik. Art\u0131k, tan\u0131d\u0131k programlama dillerini kullanarak AWS bulut kaynaklar\u0131n\u0131z\u0131 tan\u0131mlama, da\u011f\u0131tma ve y\u00f6netme yetene\u011fine sahipsiniz.<\/p>\n<p>AWS CDK, altyap\u0131 olarak kod (IaC) felsefesini bir sonraki seviyeye ta\u015f\u0131yarak, altyap\u0131 y\u00f6netimi s\u00fcre\u00e7lerini yaz\u0131l\u0131m geli\u015ftirme prensipleriyle entegre eder. Bu, ekiplerin daha h\u0131zl\u0131 yineleme yapmas\u0131n\u0131, hatalar\u0131 azaltmas\u0131n\u0131 ve daha g\u00fcvenilir, s\u00fcrd\u00fcr\u00fclebilir bulut \u00e7\u00f6z\u00fcmleri olu\u015fturmas\u0131n\u0131 sa\u011flar. Construct'lar\u0131n mod\u00fclerli\u011fi, Stack'lerin da\u011f\u0131t\u0131labilirli\u011fi ve Uygulamalar\u0131n kapsay\u0131c\u0131l\u0131\u011f\u0131 sayesinde, k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli denemelerden kurumsal seviyede karma\u015f\u0131k mimarilere kadar her t\u00fcrl\u00fc projeyi kolayl\u0131kla y\u00f6netebilirsiniz. Ayr\u0131ca, ortam de\u011fi\u015fkenleri, ba\u011flam kullan\u0131m\u0131 ve \u00f6zel construct'lar gibi ileri d\u00fczey \u00f6zellikler, CDK uygulamalar\u0131n\u0131z\u0131n esnekli\u011fini ve yeniden kullan\u0131labilirli\u011fini art\u0131r\u0131r. CI\/CD entegrasyonu ve otomatik testler ise, altyap\u0131n\u0131z\u0131n s\u00fcrekli entegrasyon ve teslimat boru hatlar\u0131n\u0131z\u0131n ayr\u0131lmaz bir par\u00e7as\u0131 olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Gelecekteki projelerinizde AWS CDK'y\u0131 kullanarak, altyap\u0131 y\u00f6netimi \u00fczerindeki y\u00fck\u00fc azaltabilir, geli\u015ftirme s\u00fcre\u00e7lerinizi h\u0131zland\u0131rabilir ve yenilik\u00e7i \u00e7\u00f6z\u00fcmler \u00fcretmeye daha fazla odaklanabilirsiniz. AWS'in s\u00fcrekli geli\u015fen ekosisteminde, CDK gibi ara\u00e7lar, bulutun potansiyelini tam olarak a\u00e7\u0131\u011fa \u00e7\u0131karman\u0131za yard\u0131mc\u0131 olan anahtarlardan biridir. Unutmay\u0131n, en iyi \u00f6\u011frenme y\u00f6ntemi pratik yapmakt\u0131r. Bu rehberdeki bilgileri kullanarak kendi projelerinizi ba\u015flat\u0131n, farkl\u0131 AWS hizmetlerini denemeye \u00e7ekinmeyin ve CDK toplulu\u011funun sundu\u011fu kaynaklardan faydalan\u0131n. Ba\u015far\u0131lar dileriz!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<dl>\n<dt><strong>S1: AWS CDK'y\u0131 kullanmak \u00fccretli mi?<\/strong><\/dt>\n<dd>C1: AWS CDK'n\u0131n kendisi a\u00e7\u0131k kaynakl\u0131 bir geli\u015ftirme arac\u0131d\u0131r ve kullan\u0131m\u0131 \u00fccretsizdir. Ancak, CDK ile da\u011f\u0131tt\u0131\u011f\u0131n\u0131z AWS kaynaklar\u0131 (\u00f6rne\u011fin, S3 bucket'lar, Lambda fonksiyonlar\u0131, EC2 instance'lar\u0131) i\u00e7in AWS'in standart fiyatland\u0131rma modeline g\u00f6re \u00fccretlendirilirsiniz. CDK, sadece bu kaynaklar\u0131 tan\u0131mlaman\u0131z\u0131 ve y\u00f6netmenizi sa\u011flayan bir k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr.<\/dd>\n<dt><strong>S2: Hangi programlama dillerini destekler?<\/strong><\/dt>\n<dd>C2: AWS CDK, TypeScript, JavaScript, Python, Java, C# ve Go gibi pop\u00fcler programlama dillerini destekler. Bu geni\u015f dil deste\u011fi sayesinde, geli\u015ftiriciler kendilerine en tan\u0131d\u0131k gelen dille altyap\u0131lar\u0131n\u0131 kodlayabilirler. TypeScript, genellikle en g\u00fcncel \u00f6zellik deste\u011fini ald\u0131\u011f\u0131 i\u00e7in CDK toplulu\u011funda olduk\u00e7a pop\u00fclerdir.<\/dd>\n<dt><strong>S3: Mevcut CloudFormation \u015fablonlar\u0131m\u0131 CDK'ya nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebilirim?<\/strong><\/dt>\n<dd>C3: AWS CDK, mevcut CloudFormation \u015fablonlar\u0131n\u0131 do\u011frudan CDK koduna d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in yerle\u015fik bir araca sahip de\u011fildir (<code>cdk import<\/code> komutu mevcut kaynaklar\u0131 i\u00e7e aktar\u0131rken kullan\u0131\u015fl\u0131 olsa da, tam bir d\u00f6n\u00fc\u015f\u00fcm sa\u011flamaz). Ancak, \u015fablonunuzu L1 construct'lar (<code>CfnXxx<\/code>) kullanarak yava\u015f yava\u015f yeniden yazmaya ba\u015flayabilir ve ard\u0131ndan daha y\u00fcksek seviyeli L2 veya L3 construct'lara ge\u00e7i\u015f yapabilirsiniz. Bu s\u00fcre\u00e7 manueldir ve kademeli bir yakla\u015f\u0131m gerektirir.<\/dd>\n<dt><strong>S4: CDK ile geli\u015ftirme yaparken en s\u0131k kar\u015f\u0131la\u015f\u0131lan hatalar nelerdir?<\/strong><\/dt>\n<dd>C4: S\u0131k kar\u015f\u0131la\u015f\u0131lan hatalar aras\u0131nda AWS CLI yap\u0131land\u0131rma sorunlar\u0131 (yanl\u0131\u015f kimlik bilgileri veya b\u00f6lge), bootstrap i\u015fleminin yap\u0131lmam\u0131\u015f olmas\u0131, CDK CLI'\u0131n Path de\u011fi\u015fkeninde bulunmamas\u0131, TypeScript\/JavaScript ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131n eksik olmas\u0131 ve yanl\u0131\u015f IAM izinleri say\u0131labilir. Genellikle terminaldeki hata mesajlar\u0131 bu sorunlar\u0131 gidermek i\u00e7in yeterli ipu\u00e7lar\u0131n\u0131 i\u00e7erir. Ayr\u0131ca, <code>cdk diff<\/code> komutunu da\u011f\u0131t\u0131m \u00f6ncesi \u00e7al\u0131\u015ft\u0131rmak, olas\u0131 hatalar\u0131 \u00f6nceden tespit etmeye yard\u0131mc\u0131 olabilir.<\/dd>\n<dt><strong>S5: Birden fazla AWS hesab\u0131yla CDK nas\u0131l kullan\u0131l\u0131r?<\/strong><\/dt>\n<dd>C5: Birden fazla AWS hesab\u0131yla \u00e7al\u0131\u015fmak i\u00e7in \u00f6ncelikle her hesap ve b\u00f6lge i\u00e7in ayr\u0131 ayr\u0131 <code>cdk bootstrap aws:\/\/HESAP_NUMARANIZ\/BOLGE_ADINIZ<\/code> komutunu \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir. Daha sonra, AWS CLI'\u0131n\u0131zda farkl\u0131 profiller tan\u0131mlayarak (<code>aws configure --profile my-profile<\/code>) veya ortam de\u011fi\u015fkenlerini (<code>AWS_PROFILE=my-profile cdk deploy<\/code>) kullanarak hangi hesab\u0131n hedef al\u0131naca\u011f\u0131n\u0131 belirtebilirsiniz. CDK uygulaman\u0131zda da <code>Stack<\/code> tan\u0131mlarken farkl\u0131 env (environment) objeleri (hesap ve b\u00f6lge i\u00e7eren) belirterek farkl\u0131 hedeflere da\u011f\u0131t\u0131m yapabilirsiniz. Bu, kurumsal ortamlarda geli\u015ftirme, test ve \u00fcretim ortamlar\u0131n\u0131 ay\u0131rmak i\u00e7in standart bir y\u00f6ntemdir.<\/dd>\n<\/dl>\n","protected":false},"excerpt":{"rendered":"Modern bulut ortamlar\u0131nda altyap\u0131 y\u00f6netimi karma\u015f\u0131k ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebilir. Peki, altyap\u0131n\u0131z\u0131 t\u0131pk\u0131 uygulaman\u0131z\u0131n kodu&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1406],"tags":[],"class_list":{"0":"post-35533","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-aws","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar<\/title>\n<meta name=\"description\" content=\"Modern bulut ortamlar\u0131nda altyap\u0131 y\u00f6netimi karma\u015f\u0131k ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebilir. Peki, altyap\u0131n\u0131z\u0131 t\u0131pk\u0131 uygulaman\u0131z\u0131n kodu gibi yazabilir, s\u00fcr\u00fcm kontrol\u00fcne tabi tutabilir ve otomatik da\u011f\u0131tabilir miydiniz? \u0130\u015fte bu noktada AWS Cloud Development Kit (CDK) devreye giriyor. Bu kapsaml\u0131 rehberde, Windows i\u015fletim sistemi \u00fczerinde AWS CDK&#039;n\u0131n ne oldu\u011funu, neden bu kadar pop\u00fcler oldu\u011funu ve ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131 ve kullan\u0131laca\u011f\u0131n\u0131 ke\u015ffedece\u011fiz. Geli\u015ftiricilerin ve DevOps m\u00fchendislerinin vazge\u00e7ilmezi haline gelen bu ara\u00e7la tan\u0131\u015fmaya haz\u0131r m\u0131s\u0131n\u0131z? O halde, gelin &quot;altyap\u0131 olarak kod&quot; (Infrastructure as Code - IaC) kavram\u0131n\u0131n bu g\u00fc\u00e7l\u00fc temsilcisiyle ilk ad\u0131mlar\u0131m\u0131z\u0131 birlikte atal\u0131m.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar\" \/>\n<meta property=\"og:description\" content=\"Modern bulut ortamlar\u0131nda altyap\u0131 y\u00f6netimi karma\u015f\u0131k ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebilir. Peki, altyap\u0131n\u0131z\u0131 t\u0131pk\u0131 uygulaman\u0131z\u0131n kodu gibi yazabilir, s\u00fcr\u00fcm kontrol\u00fcne tabi tutabilir ve otomatik da\u011f\u0131tabilir miydiniz? \u0130\u015fte bu noktada AWS Cloud Development Kit (CDK) devreye giriyor. Bu kapsaml\u0131 rehberde, Windows i\u015fletim sistemi \u00fczerinde AWS CDK&#039;n\u0131n ne oldu\u011funu, neden bu kadar pop\u00fcler oldu\u011funu ve ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131 ve kullan\u0131laca\u011f\u0131n\u0131 ke\u015ffedece\u011fiz. Geli\u015ftiricilerin ve DevOps m\u00fchendislerinin vazge\u00e7ilmezi haline gelen bu ara\u00e7la tan\u0131\u015fmaya haz\u0131r m\u0131s\u0131n\u0131z? O halde, gelin &quot;altyap\u0131 olarak kod&quot; (Infrastructure as Code - IaC) kavram\u0131n\u0131n bu g\u00fc\u00e7l\u00fc temsilcisiyle ilk ad\u0131mlar\u0131m\u0131z\u0131 birlikte atal\u0131m.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-30T18:31:24+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"30 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar\",\"datePublished\":\"2025-11-30T18:31:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/\"},\"wordCount\":5513,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AWS\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/\",\"name\":\"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-30T18:31:24+00:00\",\"description\":\"Modern bulut ortamlar\u0131nda altyap\u0131 y\u00f6netimi karma\u015f\u0131k ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebilir. Peki, altyap\u0131n\u0131z\u0131 t\u0131pk\u0131 uygulaman\u0131z\u0131n kodu gibi yazabilir, s\u00fcr\u00fcm kontrol\u00fcne tabi tutabilir ve otomatik da\u011f\u0131tabilir miydiniz? \u0130\u015fte bu noktada AWS Cloud Development Kit (CDK) devreye giriyor. Bu kapsaml\u0131 rehberde, Windows i\u015fletim sistemi \u00fczerinde AWS CDK'n\u0131n ne oldu\u011funu, neden bu kadar pop\u00fcler oldu\u011funu ve ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131 ve kullan\u0131laca\u011f\u0131n\u0131 ke\u015ffedece\u011fiz. Geli\u015ftiricilerin ve DevOps m\u00fchendislerinin vazge\u00e7ilmezi haline gelen bu ara\u00e7la tan\u0131\u015fmaya haz\u0131r m\u0131s\u0131n\u0131z? O halde, gelin \\\"altyap\u0131 olarak kod\\\" (Infrastructure as Code - IaC) kavram\u0131n\u0131n bu g\u00fc\u00e7l\u00fc temsilcisiyle ilk ad\u0131mlar\u0131m\u0131z\u0131 birlikte atal\u0131m.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar","description":"Modern bulut ortamlar\u0131nda altyap\u0131 y\u00f6netimi karma\u015f\u0131k ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebilir. Peki, altyap\u0131n\u0131z\u0131 t\u0131pk\u0131 uygulaman\u0131z\u0131n kodu gibi yazabilir, s\u00fcr\u00fcm kontrol\u00fcne tabi tutabilir ve otomatik da\u011f\u0131tabilir miydiniz? \u0130\u015fte bu noktada AWS Cloud Development Kit (CDK) devreye giriyor. Bu kapsaml\u0131 rehberde, Windows i\u015fletim sistemi \u00fczerinde AWS CDK'n\u0131n ne oldu\u011funu, neden bu kadar pop\u00fcler oldu\u011funu ve ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131 ve kullan\u0131laca\u011f\u0131n\u0131 ke\u015ffedece\u011fiz. Geli\u015ftiricilerin ve DevOps m\u00fchendislerinin vazge\u00e7ilmezi haline gelen bu ara\u00e7la tan\u0131\u015fmaya haz\u0131r m\u0131s\u0131n\u0131z? O halde, gelin \"altyap\u0131 olarak kod\" (Infrastructure as Code - IaC) kavram\u0131n\u0131n bu g\u00fc\u00e7l\u00fc temsilcisiyle ilk ad\u0131mlar\u0131m\u0131z\u0131 birlikte atal\u0131m.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/","og_locale":"tr_TR","og_type":"article","og_title":"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar","og_description":"Modern bulut ortamlar\u0131nda altyap\u0131 y\u00f6netimi karma\u015f\u0131k ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebilir. Peki, altyap\u0131n\u0131z\u0131 t\u0131pk\u0131 uygulaman\u0131z\u0131n kodu gibi yazabilir, s\u00fcr\u00fcm kontrol\u00fcne tabi tutabilir ve otomatik da\u011f\u0131tabilir miydiniz? \u0130\u015fte bu noktada AWS Cloud Development Kit (CDK) devreye giriyor. Bu kapsaml\u0131 rehberde, Windows i\u015fletim sistemi \u00fczerinde AWS CDK'n\u0131n ne oldu\u011funu, neden bu kadar pop\u00fcler oldu\u011funu ve ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131 ve kullan\u0131laca\u011f\u0131n\u0131 ke\u015ffedece\u011fiz. Geli\u015ftiricilerin ve DevOps m\u00fchendislerinin vazge\u00e7ilmezi haline gelen bu ara\u00e7la tan\u0131\u015fmaya haz\u0131r m\u0131s\u0131n\u0131z? O halde, gelin \"altyap\u0131 olarak kod\" (Infrastructure as Code - IaC) kavram\u0131n\u0131n bu g\u00fc\u00e7l\u00fc temsilcisiyle ilk ad\u0131mlar\u0131m\u0131z\u0131 birlikte atal\u0131m.","og_url":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-30T18:31:24+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"30 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar","datePublished":"2025-11-30T18:31:24+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/"},"wordCount":5513,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AWS"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/","url":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/","name":"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-30T18:31:24+00:00","description":"Modern bulut ortamlar\u0131nda altyap\u0131 y\u00f6netimi karma\u015f\u0131k ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebilir. Peki, altyap\u0131n\u0131z\u0131 t\u0131pk\u0131 uygulaman\u0131z\u0131n kodu gibi yazabilir, s\u00fcr\u00fcm kontrol\u00fcne tabi tutabilir ve otomatik da\u011f\u0131tabilir miydiniz? \u0130\u015fte bu noktada AWS Cloud Development Kit (CDK) devreye giriyor. Bu kapsaml\u0131 rehberde, Windows i\u015fletim sistemi \u00fczerinde AWS CDK'n\u0131n ne oldu\u011funu, neden bu kadar pop\u00fcler oldu\u011funu ve ad\u0131m ad\u0131m nas\u0131l kurulaca\u011f\u0131n\u0131 ve kullan\u0131laca\u011f\u0131n\u0131 ke\u015ffedece\u011fiz. Geli\u015ftiricilerin ve DevOps m\u00fchendislerinin vazge\u00e7ilmezi haline gelen bu ara\u00e7la tan\u0131\u015fmaya haz\u0131r m\u0131s\u0131n\u0131z? O halde, gelin \"altyap\u0131 olarak kod\" (Infrastructure as Code - IaC) kavram\u0131n\u0131n bu g\u00fc\u00e7l\u00fc temsilcisiyle ilk ad\u0131mlar\u0131m\u0131z\u0131 birlikte atal\u0131m.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/aws-cdk-windows-kurulumu-adim-adim-rehber-ve-en-iyi-uygulamalar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS CDK Windows Kurulumu: Ad\u0131m Ad\u0131m Rehber ve En \u0130yi Uygulamalar"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=35533"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35533\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}