{"id":31496,"date":"2025-10-10T15:31:42","date_gmt":"2025-10-10T12:31:42","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/"},"modified":"2025-10-10T15:31:42","modified_gmt":"2025-10-10T12:31:42","slug":"localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/","title":{"rendered":"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri"},"content":{"rendered":"<p><body><\/p>\n<style>\n        body {\n            font-family: Arial, sans-serif;\n            line-height: 1.6;\n            margin: 0 auto;\n            max-width: 800px;\n            padding: 20px;\n            color: #333;\n        }\n        h2 {\n            color: #2c3e50;\n            margin-top: 30px;\n            border-bottom: 2px solid #3498db;\n            padding-bottom: 10px;\n        }\n        h3 {\n            color: #34495e;\n            margin-top: 25px;\n        }\n        pre {\n            background-color: #ecf0f1;\n            border: 1px solid #bdc3c7;\n            padding: 15px;\n            border-radius: 5px;\n            overflow-x: auto;\n            margin-bottom: 20px;\n        }\n        code {\n            font-family: \"Courier New\", Courier, monospace;\n            background-color: #ecf0f1;\n            padding: 2px 4px;\n            border-radius: 3px;\n        }\n        .expert-tip {\n            background-color: #e8f6f3;\n            border-left: 5px solid #1abc9c;\n            padding: 15px;\n            margin: 20px 0;\n            border-radius: 5px;\n            font-style: italic;\n        }\n        ul, ol {\n            margin-bottom: 20px;\n            padding-left: 20px;\n        }\n        li {\n            margin-bottom: 8px;\n        }\n        table {\n            width: 100%;\n            border-collapse: collapse;\n            margin-bottom: 20px;\n        }\n        th, td {\n            border: 1px solid #ddd;\n            padding: 8px;\n            text-align: left;\n        }\n        th {\n            background-color: #f2f2f2;\n        }<\/p>\n<p>        \/* Mobile Responsive adjustments *\/\n        @media (max-width: 768px) {\n            body {\n                padding: 15px;\n            }\n            h2 {\n                font-size: 1.8em;\n            }\n            h3 {\n                font-size: 1.4em;\n            }\n            pre {\n                padding: 10px;\n                font-size: 0.9em;\n            }\n            .expert-tip {\n                padding: 10px;\n            }\n        }\n    <\/style>\n<p>LocalStack, yerel geli\u015ftirme ortam\u0131nda AWS hizmetlerini sim\u00fcle ederek geli\u015ftirme geri bildirimini h\u0131zland\u0131r\u0131r. SDLC&#8217;de kar\u015f\u0131la\u015f\u0131lan zorluklar\u0131 a\u015fman\u0131n yollar\u0131n\u0131 ke\u015ffedin.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda h\u0131z, rekabet\u00e7ili\u011fin anahtar\u0131d\u0131r. \u00d6zellikle bulut tabanl\u0131 uygulamalar geli\u015ftirirken, her bir de\u011fi\u015fikli\u011fin ger\u00e7ek bir AWS ortam\u0131nda test edilmesi hem zaman al\u0131c\u0131 hem de maliyetli olabilir. Geli\u015ftiricilerin kodlar\u0131n\u0131 da\u011f\u0131tmadan, entegrasyon testlerini \u00e7al\u0131\u015ft\u0131rmadan ve hatta basit bir hata ay\u0131klama i\u015flemi yapmadan \u00f6nce saatlerce beklemesi, &#8220;geri bildirim d\u00f6ng\u00fcs\u00fc&#8221; olarak adland\u0131rd\u0131\u011f\u0131m\u0131z s\u00fcreci uzat\u0131r. Bu durum, geli\u015ftirici verimlili\u011fini d\u00fc\u015f\u00fcr\u00fcrken, proje maliyetlerini art\u0131r\u0131r ve nihayetinde \u00fcr\u00fcn\u00fcn piyasaya s\u00fcr\u00fclme s\u00fcresini olumsuz etkiler. Daha h\u0131zl\u0131 bir geri bildirim d\u00f6ng\u00fcs\u00fc, hatalar\u0131n daha erken a\u015famada tespit edilmesini, daha esnek bir geli\u015ftirme s\u00fcrecini ve dolay\u0131s\u0131yla daha kaliteli bir yaz\u0131l\u0131m\u0131n ortaya \u00e7\u0131kmas\u0131n\u0131 sa\u011flar. Peki, bu s\u00fcreci nas\u0131l h\u0131zland\u0131rabiliriz?<\/p>\n<p>Bulut altyap\u0131s\u0131n\u0131n karma\u015f\u0131kl\u0131\u011f\u0131, \u00f6zellikle AWS gibi geni\u015f bir hizmet yelpazesine sahip platformlarda, yerel geli\u015ftirme ortamlar\u0131n\u0131n bu hizmetleri tam olarak taklit etmesini zorla\u015ft\u0131r\u0131r. Geli\u015ftiriciler genellikle kodlar\u0131n\u0131 buluta iterek test etmek zorunda kal\u0131r; bu da pahal\u0131 AWS kaynaklar\u0131n\u0131n kullan\u0131m\u0131, yetkilendirme sorunlar\u0131 ve a\u011f gecikmeleri gibi ek sorunlar\u0131 beraberinde getirir. Ayr\u0131ca, her geli\u015ftiricinin kendi ba\u011f\u0131ms\u0131z test ortam\u0131n\u0131 kurmas\u0131 ve y\u00f6netmesi de \u00f6nemli bir operasyonel y\u00fckt\u00fcr. \u0130\u015fte tam bu noktada, LocalStack gibi ara\u00e7lar devreye girerek bu zorluklara yenilik\u00e7i \u00e7\u00f6z\u00fcmler sunar. LocalStack, geli\u015ftiricilere AWS hizmetlerinin yerel bir kopyas\u0131n\u0131 sunarak, buluta ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ortadan kald\u0131r\u0131r ve geli\u015ftirme s\u00fcre\u00e7lerini k\u00f6kten de\u011fi\u015ftirir. Bu makalede, LocalStack&#8217;in yaz\u0131l\u0131m geli\u015ftirme ya\u015fam d\u00f6ng\u00fcs\u00fc (SDLC) \u00fczerindeki etkilerini, pratik kullan\u0131m senaryolar\u0131n\u0131 ve en iyi uygulamalar\u0131n\u0131 derinlemesine inceleyece\u011fiz.<\/p>\n<h2>LocalStack Nedir ve Yerel Geli\u015ftirme \u0130\u00e7in Neden Vazge\u00e7ilmezdir?<\/h2>\n<p>LocalStack, AWS hizmetlerinin hafif, tamamen i\u015flevsel bir yerel bulut y\u0131\u011f\u0131n\u0131d\u0131r. K\u0131sacas\u0131, bir geli\u015ftiricinin makinesinde veya CI\/CD ortam\u0131nda \u00e7al\u0131\u015fan mini bir AWS bulutudur. Bu sayede, geli\u015ftiriciler S3, Lambda, DynamoDB, SQS, SNS gibi pop\u00fcler AWS hizmetlerini ger\u00e7ek bir AWS hesab\u0131na ba\u011flanmadan, \u00e7evrimd\u0131\u015f\u0131 ve tam performansla kullanabilirler. Geli\u015ftirme s\u00fcrecinde ger\u00e7ek AWS ortam\u0131na ihtiya\u00e7 duymadan uygulama kodunuzu test etme ve hata ay\u0131klama yetene\u011fi, geli\u015ftiriciler i\u00e7in devrim niteli\u011findedir. Bu ara\u00e7, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 uygulamalar geli\u015ftiren ekipler i\u00e7in kritik bir rol oynar, \u00e7\u00fcnk\u00fc ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00f6netmeyi ve entegrasyon testlerini h\u0131zland\u0131rmay\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Geleneksel olarak, bir geli\u015ftirici AWS tabanl\u0131 bir uygulama geli\u015ftirdi\u011finde, kodunu test etmek i\u00e7in ya ger\u00e7ek bir AWS ortam\u0131na da\u011f\u0131tmak ya da karma\u015f\u0131k mock (sahte) objeler olu\u015fturmak zorunda kal\u0131rd\u0131. Ger\u00e7ek AWS&#8217;e da\u011f\u0131t\u0131m, maliyet, yava\u015fl\u0131k ve ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131 yarat\u0131rken, mock objeler ise ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 tam olarak yans\u0131tmaktan uzakt\u0131. LocalStack, bu iki yakla\u015f\u0131m\u0131n avantajlar\u0131n\u0131 birle\u015ftirir: ger\u00e7ek AWS hizmetlerinin API&#8217;lerini taklit ederek, kodunuzun ger\u00e7ek bir bulut ortam\u0131nda \u00e7al\u0131\u015faca\u011f\u0131 gibi davranmas\u0131n\u0131 sa\u011flar, ancak tamamen yerel olarak. Bu, geli\u015ftiricilere g\u00fcvenilir ve izole bir ortamda \u00e7al\u0131\u015fma imkan\u0131 sunar, b\u00f6ylece ba\u011f\u0131ml\u0131l\u0131klar konusunda endi\u015felenmelerine gerek kalmaz ve geli\u015ftirme d\u00f6ng\u00fcleri \u00f6nemli \u00f6l\u00e7\u00fcde k\u0131sal\u0131r.<\/p>\n<h3>LocalStack Geleneksel Yakla\u015f\u0131mlardan Nas\u0131l Ayr\u0131l\u0131r?<\/h3>\n<p>LocalStack, geli\u015ftirme s\u00fcre\u00e7lerini d\u00f6n\u00fc\u015ft\u00fcren birka\u00e7 temel \u00f6zellikle geleneksel yakla\u015f\u0131mlardan ayr\u0131l\u0131r:<\/p>\n<ul>\n<li><strong>Maliyet Tasarrufu:<\/strong> Ger\u00e7ek AWS kaynaklar\u0131n\u0131 kullanmaktan ka\u00e7\u0131narak bulut faturas\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde d\u00fc\u015f\u00fcr\u00fcr. \u00d6zellikle yo\u011fun test s\u00fcre\u00e7leri olan projelerde bu fark daha da belirginle\u015fir.<\/li>\n<li><strong>H\u0131z ve Verimlilik:<\/strong> A\u011f gecikmeleri ve da\u011f\u0131t\u0131m s\u00fcreleri ortadan kalkt\u0131\u011f\u0131 i\u00e7in testler ve hata ay\u0131klama i\u015flemleri an\u0131nda ger\u00e7ekle\u015fir. Bu, geli\u015ftiricilerin geri bildirim d\u00f6ng\u00fcs\u00fcn\u00fc saniyelerle \u00f6l\u00e7\u00fclecek kadar k\u0131salt\u0131r.<\/li>\n<li><strong>\u0130zolasyon ve G\u00fcvenlik:<\/strong> Her geli\u015ftiricinin kendi yerel makinesinde tamamen izole bir ortamda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Bu, farkl\u0131 projelerden veya ekiplerden kaynaklanan \u00e7ak\u0131\u015fmalar\u0131 ve g\u00fcvenlik risklerini ortadan kald\u0131r\u0131r.<\/li>\n<li><strong>\u00c7evrimd\u0131\u015f\u0131 Geli\u015ftirme:<\/strong> \u0130nternet ba\u011flant\u0131s\u0131 olmasa bile AWS tabanl\u0131 uygulamalar \u00fczerinde \u00e7al\u0131\u015fmaya devam etme imkan\u0131 sunar.<\/li>\n<li><strong>Tutarl\u0131l\u0131k:<\/strong> Ekip \u00fcyeleri aras\u0131nda ve CI\/CD s\u00fcre\u00e7lerinde tutarl\u0131 bir geli\u015ftirme ve test ortam\u0131 sa\u011flar, bu da &#8220;benim makinemde \u00e7al\u0131\u015f\u0131yordu&#8221; sorunlar\u0131n\u0131 minimize eder.<\/li>\n<\/ul>\n<h3>Hangi AWS Hizmetlerini Destekler ve Ne Sa\u011flar?<\/h3>\n<p>LocalStack, AWS&#8217;in en \u00e7ok kullan\u0131lan hizmetlerinin b\u00fcy\u00fck bir k\u0131sm\u0131n\u0131 destekler. Bunlar aras\u0131nda:<\/p>\n<ul>\n<li><strong>Amazon S3:<\/strong> Dosya depolama ve sunma.<\/li>\n<li><strong>AWS Lambda:<\/strong> Sunucusuz fonksiyonlar\u0131n yerel olarak \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131.<\/li>\n<li><strong>Amazon DynamoDB:<\/strong> NoSQL veritaban\u0131.<\/li>\n<li><strong>Amazon SQS (Simple Queue Service):<\/strong> Mesaj kuyruklar\u0131.<\/li>\n<li><strong>Amazon SNS (Simple Notification Service):<\/strong> Bildirim hizmeti.<\/li>\n<li><strong>Amazon Kinesis:<\/strong> Ger\u00e7ek zamanl\u0131 veri ak\u0131\u015flar\u0131.<\/li>\n<li><strong>Amazon API Gateway:<\/strong> API&#8217;lerin olu\u015fturulmas\u0131 ve y\u00f6netilmesi.<\/li>\n<li><strong>Amazon RDS:<\/strong> \u0130li\u015fkisel veritaban\u0131 hizmetleri (Pro s\u00fcr\u00fcmde).<\/li>\n<li>Ve daha bir\u00e7ok hizmet&#8230;<\/li>\n<\/ul>\n<p>Bu hizmetlerin yerel olarak taklit edilmesi, geli\u015ftiricilerin bulut yerel uygulamalar\u0131n\u0131 tam kapsaml\u0131 bir \u015fekilde test etmelerine olanak tan\u0131r. \u00d6rne\u011fin, bir Lambda fonksiyonunun S3&#8217;ten bir olay tetikledi\u011fi veya bir DynamoDB tablosuna yaz\u0131p okudu\u011fu senaryolar\u0131 ger\u00e7ek AWS ortam\u0131na ihtiya\u00e7 duymadan sim\u00fcle edebilirsiniz. Bu esneklik ve yetenek, LocalStack&#8217;i modern bulut geli\u015ftirme ekipleri i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline getirir.<\/p>\n<h2>Ad\u0131m Ad\u0131m Kurulum ve Pratik Uygulama: LocalStack&#8217;i Geli\u015ftirme Ortam\u0131n\u0131za Nas\u0131l Entegre Edersiniz?<\/h2>\n<p>LocalStack&#8217;i yerel geli\u015ftirme ortam\u0131n\u0131za entegre etmek olduk\u00e7a kolayd\u0131r, \u00f6zellikle Docker kullan\u0131yorsan\u0131z. Docker, LocalStack&#8217;in farkl\u0131 AWS hizmetlerini izole edilmi\u015f kaplar i\u00e7inde \u00e7al\u0131\u015ft\u0131rmas\u0131na olanak tan\u0131r, b\u00f6ylece ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler ve kurulumu basitle\u015ftirir. Bu b\u00f6l\u00fcmde, Docker Compose kullanarak LocalStack&#8217;i nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve basit bir S3 ile Lambda entegrasyonunu yerel ortam\u0131n\u0131zda nas\u0131l test edece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Bu pratik \u00f6rnekler sayesinde, LocalStack&#8217;in geli\u015ftirme s\u00fcrecinize nas\u0131l entegre edilebilece\u011fini net bir \u015fekilde g\u00f6receksiniz.<\/p>\n<p>Kurulum s\u00fcreci sadece birka\u00e7 komutla tamamlanabilir. \u0130lk olarak, Docker ve Docker Compose&#8217;un sisteminizde kurulu oldu\u011fundan emin olmal\u0131s\u0131n\u0131z. E\u011fer kurulu de\u011filse, ilgili platformunuz i\u00e7in Docker dok\u00fcmantasyonunu takip ederek kolayca kurabilirsiniz. Ard\u0131ndan, LocalStack&#8217;i \u00e7al\u0131\u015ft\u0131rmak i\u00e7in basit bir <code>docker-compose.yml<\/code> dosyas\u0131 olu\u015fturaca\u011f\u0131z. Bu dosya, LocalStack servisinin hangi AWS hizmetlerini sim\u00fcle edece\u011fini ve hangi portlar \u00fczerinden eri\u015filebilir olaca\u011f\u0131n\u0131 tan\u0131mlar. Geli\u015ftirme ortam\u0131n\u0131zda bu t\u00fcr ara\u00e7lar\u0131 kullanmak, s\u00fcrekli entegrasyon ve s\u00fcrekli teslimat (CI\/CD) s\u00fcre\u00e7lerinizin de daha tutarl\u0131 ve g\u00fcvenilir olmas\u0131n\u0131 sa\u011flar. Bu sayede, testleriniz her zaman ayn\u0131 ortamda \u00e7al\u0131\u015facak ve &#8220;benim makinemde \u00e7al\u0131\u015f\u0131yordu&#8221; gibi sorunlarla kar\u015f\u0131la\u015fma olas\u0131l\u0131\u011f\u0131n\u0131z azalacakt\u0131r.<\/p>\n<h3>Docker Compose ile H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>LocalStack&#8217;i Docker Compose ile \u00e7al\u0131\u015ft\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki <code>docker-compose.yml<\/code> dosyas\u0131n\u0131 olu\u015fturun:<\/p>\n<pre><code>\nversion: '3.8'\n\nservices:\n  localstack:\n    container_name: localstack_main\n    image: localstack\/localstack\n    ports:\n      - \"4510-4559:4510-4559\" # Eski default port aral\u0131\u011f\u0131\n      - \"4566:4566\"         # Yeni default edge port\n      - \"8080:8080\"\n    environment:\n      - SERVICES=s3,lambda,dynamodb,sqs # Sim\u00fcle edilecek AWS servisleri\n      - DEBUG=1\n      - DATA_DIR=\/tmp\/localstack\/data # Verilerin kal\u0131c\u0131l\u0131\u011f\u0131 i\u00e7in\n      - DOCKER_HOST=unix:\/\/\/var\/run\/docker.sock\n    volumes:\n      - \"${TMPDIR:-\/tmp\/localstack}:\/tmp\/localstack\" # Verilerin host'ta kal\u0131c\u0131l\u0131\u011f\u0131\n      - \"\/var\/run\/docker.sock:\/var\/run\/docker.sock\" # Docker i\u00e7indeki Docker i\u00e7in\n<\/pre>\n<p><\/code><\/p>\n<p>Bu dosyay\u0131 kaydedin ve ayn\u0131 dizinde terminalinizi a\u00e7arak \u015fu komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\ndocker-compose up -d\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, LocalStack konteynerini arka planda ba\u015flatacakt\u0131r. Konteynerin durumunu kontrol etmek i\u00e7in <code>docker-compose ps<\/code> komutunu kullanabilirsiniz. Servisler ba\u015far\u0131yla ba\u015flad\u0131ktan sonra, AWS CLI'\u0131n LocalStack ile uyumlu bir versiyonu olan <code>awslocal<\/code> CLI'\u0131 kullanarak hizmetlerle etkile\u015fime ge\u00e7ebilirsiniz. <code>awslocal<\/code>, ger\u00e7ek AWS CLI komutlar\u0131n\u0131n ayn\u0131s\u0131n\u0131 kullan\u0131r, ancak \u00e7a\u011fr\u0131lar\u0131 yerel LocalStack \u00f6rne\u011finize y\u00f6nlendirir. Bu, geli\u015ftirici deneyimini son derece basitle\u015ftirir.<\/p>\n<h3>\u0130lk AWS Hizmetinizi Yerelde Nas\u0131l Olu\u015fturursunuz?<\/h3>\n<p>LocalStack \u00e7al\u0131\u015f\u0131rken, <code>awslocal<\/code> CLI'\u0131n\u0131 kullanarak bir S3 bucket olu\u015ftural\u0131m. E\u011fer <code>awslocal<\/code> kurulu de\u011filse, <code>pip install awscli-local<\/code> komutuyla kurabilirsiniz.<\/p>\n<pre><code>\n# Bir S3 bucket olu\u015fturun\nawslocal s3 mb s3:\/\/my-local-bucket\n\n# Olu\u015fturulan bucket'lar\u0131 listeleyin\nawslocal s3 ls\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komutlar, <code>my-local-bucket<\/code> ad\u0131nda bir S3 bucket'\u0131 yerel LocalStack ortam\u0131n\u0131zda olu\u015fturacak ve ard\u0131ndan mevcut t\u00fcm bucket'lar\u0131 listeleyecektir. G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, AWS CLI komutlar\u0131 birebir ayn\u0131d\u0131r, sadece <code>aws<\/code> yerine <code>awslocal<\/code> kullan\u0131yoruz. Bu basitlik, geli\u015ftiricilerin \u00f6\u011frenme e\u011frisini minimumda tutarak hemen \u00fcretime ba\u015flamalar\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Basit Bir Lambda-S3 Entegrasyonu Nas\u0131l Test Edilir?<\/h3>\n<p>\u015eimdi daha pratik bir senaryo deneyelim: Bir S3 bucket'\u0131na dosya y\u00fcklendi\u011finde tetiklenen bir Lambda fonksiyonu. \u0130lk olarak, basit bir Python Lambda fonksiyonu olu\u015ftural\u0131m (<code>handler.py<\/code>):<\/p>\n<pre><code>\nimport json\n\ndef handler(event, context):\n    print(\"Received event: \" + json.dumps(event, indent=2))\n    bucket_name = event['Records'][0]['s3']['bucket']['name']\n    object_key = event['Records'][0]['s3']['object']['key']\n    print(f\"File '{object_key}' uploaded to bucket '{bucket_name}'.\")\n    return {\n        'statusCode': 200,\n        'body': json.dumps('Hello from Lambda!')\n    }\n<\/pre>\n<p><\/code><\/p>\n<p>Bu fonksiyonu zipleyip LocalStack'e da\u011f\u0131tal\u0131m ve bir S3 olay\u0131n\u0131 tetikleyecek \u015fekilde yap\u0131land\u0131ral\u0131m:<\/p>\n<pre><code>\n# Lambda fonksiyonunu zipleyin\nzip lambda_function.zip handler.py\n\n# Lambda fonksiyonunu LocalStack'e deploy edin\nawslocal lambda create-function \\\n    --function-name my-local-lambda \\\n    --runtime python3.9 \\\n    --handler handler.handler \\\n    --memory-size 128 \\\n    --timeout 30 \\\n    --zip-file fileb:\/\/lambda_function.zip \\\n    --role arn:aws:iam::000000000000:role\/irrelevant # LocalStack i\u00e7in rol \u00f6nemsizdir\n\n# S3 bucket'\u0131na Lambda trigger ekleyin\nawslocal s3api put-bucket-notification-configuration \\\n    --bucket my-local-bucket \\\n    --notification-configuration '{\n        \"LambdaFunctionConfigurations\": [\n            {\n                \"LambdaFunctionArn\": \"arn:aws:lambda:us-east-1:000000000000:function:my-local-lambda\",\n                \"Events\": [\"s3:ObjectCreated:*\"]\n            }\n        ]\n    }'\n\n# S3'e bir dosya y\u00fckleyerek Lambda'y\u0131 tetikleyin\necho \"Hello LocalStack\" > testfile.txt\nawslocal s3 cp testfile.txt s3:\/\/my-local-bucket\/testfile.txt\n<\/pre>\n<p><\/code><\/p>\n<p><code>awslocal s3 cp<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, LocalStack'in loglar\u0131na bakarak Lambda fonksiyonunuzun tetiklendi\u011fini ve \u00e7\u0131kt\u0131s\u0131n\u0131 g\u00f6rebilirsiniz. Bu \u00f6rnek, karma\u015f\u0131k entegrasyon senaryolar\u0131n\u0131 bile saniyeler i\u00e7inde yerel olarak test edebilme g\u00fcc\u00fcn\u00fc g\u00f6stermektedir. Bu kadar h\u0131zl\u0131 geri bildirim, geli\u015ftiricilerin kodlar\u0131nda an\u0131nda de\u011fi\u015fiklik yapmalar\u0131na ve sonu\u00e7lar\u0131n\u0131 g\u00f6rmelerine olanak tan\u0131yarak verimlili\u011fi inan\u0131lmaz derecede art\u0131r\u0131r.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: LocalStack'in konteyner loglar\u0131n\u0131 izlemek i\u00e7in <code>docker-compose logs -f localstack<\/code> komutunu kullan\u0131n. Bu sayede Lambda \u00e7\u0131kt\u0131lar\u0131n\u0131z\u0131 ve servis etkile\u015fimlerini ger\u00e7ek zamanl\u0131 olarak takip edebilirsiniz.<\/div>\n<h2>Ger\u00e7ek D\u00fcnya Vaka Analizleri: LocalStack SDLC'de Nas\u0131l De\u011fer Yarat\u0131r?<\/h2>\n<p>LocalStack, sadece basit \u00f6rneklerde de\u011fil, karma\u015f\u0131k ger\u00e7ek d\u00fcnya senaryolar\u0131nda da \u00f6nemli avantajlar sunar. Yaz\u0131l\u0131m geli\u015ftirme ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn her a\u015famas\u0131nda, LocalStack'in sa\u011flad\u0131\u011f\u0131 h\u0131zl\u0131 geri bildirim ve izolasyon, ekiplerin daha verimli \u00e7al\u0131\u015fmas\u0131n\u0131 ve daha kaliteli yaz\u0131l\u0131mlar \u00fcretmesini destekler. \u00d6zellikle mikroservis mimarileri ve bulut yerel uygulamalar\u0131n y\u00fckseli\u015fiyle birlikte, LocalStack'in de\u011feri daha da artmaktad\u0131r. A\u015fa\u011f\u0131da, LocalStack'in farkl\u0131 senaryolarda nas\u0131l kullan\u0131labilece\u011fine dair iki vaka analizi sunulmu\u015ftur.<\/p>\n<p>Bu vaka analizleri, LocalStack'in yaln\u0131zca geli\u015ftirme a\u015famas\u0131nda de\u011fil, ayn\u0131 zamanda s\u00fcrekli entegrasyon ve test s\u00fcre\u00e7lerinde de nas\u0131l kritik bir rol oynad\u0131\u011f\u0131n\u0131 g\u00f6stermektedir. Ger\u00e7ek AWS ortam\u0131na ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 azaltmak, maliyetleri d\u00fc\u015f\u00fcrmek ve geli\u015ftirme h\u0131z\u0131n\u0131 art\u0131rmak, modern DevOps uygulamalar\u0131n\u0131n temel hedefleridir. LocalStack bu hedeflere ula\u015fmada ekiplere somut faydalar sa\u011flar. Ekipler, LocalStack sayesinde, karma\u015f\u0131k bulut tabanl\u0131 sistemleri yerel makinelerinde kolayca taklit edebilir ve bu da t\u00fcm geli\u015ftirme ekibi i\u00e7in daha tutarl\u0131 ve \u00fcretken bir deneyim sunar.<\/p>\n<h3>Mikroservis Mimarilerinde H\u0131zl\u0131 Prototipleme: Bir \u00d6rnek<\/h3>\n<p><strong>Vaka Analizi 1: E-ticaret Platformu Sipari\u015f Y\u00f6netimi<\/strong><\/p>\n<p>Bir e-ticaret platformu, sipari\u015f i\u015fleme ak\u0131\u015f\u0131n\u0131 mikroservis mimarisiyle yeniden tasarl\u0131yor. Bu ak\u0131\u015f, bir sipari\u015f olu\u015fturuldu\u011funda API Gateway \u00fczerinden bir Lambda fonksiyonunu tetikliyor, bu Lambda sipari\u015f detaylar\u0131n\u0131 DynamoDB'ye kaydediyor ve ard\u0131ndan bir SQS kuyru\u011funa mesaj g\u00f6nderiyor. Ba\u015fka bir Lambda fonksiyonu bu SQS kuyru\u011funu dinliyor ve sipari\u015f onay e-postas\u0131n\u0131 g\u00f6ndermek i\u00e7in SNS'e bir bildirim yay\u0131nl\u0131yor.<\/p>\n<p><strong>LocalStack Olmadan:<\/strong> Geli\u015ftiriciler, her yeni \u00f6zellik veya hata d\u00fczeltmesi i\u00e7in kodu AWS'e da\u011f\u0131tmak zorunda kal\u0131yorlard\u0131. Bu da\u011f\u0131t\u0131m s\u00fcreci 5-10 dakika s\u00fcr\u00fcyordu ve her test d\u00f6ng\u00fcs\u00fc i\u00e7in ek s\u00fcre anlam\u0131na geliyordu. Ayr\u0131ca, geli\u015ftirme ve test ortamlar\u0131n\u0131n y\u00f6netimi karma\u015f\u0131k ve maliyetliydi.<\/p>\n<p><strong>LocalStack ile:<\/strong> Ekip, t\u00fcm bu AWS hizmetlerini (API Gateway, Lambda, DynamoDB, SQS, SNS) LocalStack \u00fczerinde \u00e7al\u0131\u015facak \u015fekilde yap\u0131land\u0131rd\u0131. Her geli\u015ftirici, kendi makinesinde bu mikroservis mimarisinin tam bir kopyas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabiliyordu. Sonu\u00e7lar:<\/p>\n<ul>\n<li><strong>Geri Bildirim S\u00fcresi:<\/strong> Test d\u00f6ng\u00fcleri dakikalardan saniyelere indi. Lambda fonksiyonlar\u0131nda yap\u0131lan de\u011fi\u015fiklikler an\u0131nda test edilebiliyordu.<\/li>\n<li><strong>Maliyet Tasarrufu:<\/strong> Geli\u015ftirme ve test a\u015famalar\u0131nda AWS maliyetleri s\u0131f\u0131ra yakla\u015ft\u0131.<\/li>\n<li><strong>Geli\u015ftirici Ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131:<\/strong> Her geli\u015ftirici kendi ba\u011f\u0131ms\u0131z ortam\u0131nda \u00e7al\u0131\u015fabildi\u011fi i\u00e7in di\u011ferlerinin de\u011fi\u015fikliklerinden etkilenmeden daha h\u0131zl\u0131 ilerleyebildi.<\/li>\n<li><strong>Daha Az \"Benim Makinemde \u00c7al\u0131\u015f\u0131yordu\" Sorunu:<\/strong> Ekip, LocalStack'i CI\/CD boru hatt\u0131na da entegre ederek, yerel ve CI ortam\u0131 aras\u0131nda tutarl\u0131l\u0131\u011f\u0131 sa\u011flad\u0131.<\/li>\n<\/ul>\n<h3>CI\/CD S\u00fcre\u00e7lerinde Entegrasyon Testlerini Nas\u0131l H\u0131zland\u0131r\u0131rs\u0131n\u0131z?<\/h3>\n<p><strong>Vaka Analizi 2: B\u00fcy\u00fck Veri \u0130\u015fleme Pipeline'\u0131<\/strong><\/p>\n<p>Bir veri analizi \u015firketi, m\u00fc\u015fteri verilerini ger\u00e7ek zamanl\u0131 olarak i\u015fleyen bir veri pipeline'\u0131 geli\u015ftiriyor. Bu pipeline, verileri Kinesis Stream'e al\u0131yor, S3'e yedekliyor ve ard\u0131ndan bir Lambda fonksiyonu ile \u00f6n i\u015fleme tabi tutarak sonu\u00e7lar\u0131 ba\u015fka bir DynamoDB tablosuna yaz\u0131yor. Entegrasyon testleri, bu karma\u015f\u0131k ak\u0131\u015f\u0131n her ad\u0131m\u0131n\u0131 do\u011frulamak zorundayd\u0131.<\/p>\n<p><strong>LocalStack Olmadan:<\/strong> Entegrasyon testleri, ger\u00e7ek AWS ortam\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131l\u0131yor ve her test ko\u015fumu 15-20 dakika s\u00fcr\u00fcyordu. Bu durum, CI\/CD boru hatt\u0131n\u0131n yava\u015flamas\u0131na ve geli\u015ftiricilerin de\u011fi\u015fikliklerini birle\u015ftirmeden \u00f6nce uzun s\u00fcreler beklemesine neden oluyordu. Gecikmeler, k\u00fc\u00e7\u00fck hatalar\u0131n bile d\u00fczeltilmesini yava\u015flat\u0131yordu.<\/p>\n<p><strong>LocalStack ile:<\/strong> \u015eirket, CI\/CD boru hatt\u0131nda LocalStack'i bir Docker konteyneri olarak entegre etti. Entegrasyon testleri art\u0131k ger\u00e7ek AWS yerine LocalStack \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131l\u0131yordu. Sonu\u00e7lar:<\/p>\n<ul>\n<li><strong>CI\/CD H\u0131zlanmas\u0131:<\/strong> Entegrasyon test s\u00fcreleri 20 dakikadan 2-3 dakikaya d\u00fc\u015ft\u00fc. Bu, CI\/CD boru hatt\u0131n\u0131n genel \u00e7al\u0131\u015fma s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde k\u0131saltt\u0131.<\/li>\n<li><strong>Daha S\u0131k Test Ko\u015fumlar\u0131:<\/strong> Testlerin h\u0131zl\u0131 \u00e7al\u0131\u015fmas\u0131, geli\u015ftiricilerin daha s\u0131k commit yapmalar\u0131n\u0131 ve daha s\u0131k test ko\u015fumu ger\u00e7ekle\u015ftirmelerini te\u015fvik etti.<\/li>\n<li><strong>Kaynak Tasarrufu:<\/strong> Ger\u00e7ek AWS kaynaklar\u0131na olan ba\u011f\u0131ml\u0131l\u0131k azald\u0131\u011f\u0131 i\u00e7in CI\/CD maliyetleri d\u00fc\u015ft\u00fc.<\/li>\n<li><strong>Daha G\u00fcvenilir Testler:<\/strong> LocalStack'in izole ortam\u0131, testlerin d\u0131\u015f etkenlerden etkilenmemesini sa\u011flayarak daha g\u00fcvenilir sonu\u00e7lar verdi.<\/li>\n<\/ul>\n<p>Bu vaka analizleri, LocalStack'in yaln\u0131zca geli\u015ftirme a\u015famas\u0131nda de\u011fil, ayn\u0131 zamanda s\u00fcrekli entegrasyon ve test s\u00fcre\u00e7lerinde de nas\u0131l kritik bir rol oynad\u0131\u011f\u0131n\u0131 net bir \u015fekilde g\u00f6stermektedir. H\u0131zland\u0131r\u0131lm\u0131\u015f geri bildirim, geli\u015ftiricilerin daha mutlu, daha \u00fcretken olmalar\u0131n\u0131 ve nihayetinde daha iyi \u00fcr\u00fcnler sunmalar\u0131n\u0131 sa\u011flar.<\/p>\n<h2>LocalStack Kullan\u0131m\u0131nda \u0130leri D\u00fczey Teknikler ve En \u0130yi Uygulamalar Nelerdir?<\/h2>\n<p>LocalStack'in temel kurulumu ve kullan\u0131m\u0131 olduk\u00e7a basit olsa da, geli\u015ftirme s\u00fcrecinizden en iyi \u015fekilde yararlanmak i\u00e7in baz\u0131 ileri d\u00fczey teknikler ve en iyi uygulamalar\u0131 bilmek faydal\u0131 olacakt\u0131r. Bu b\u00f6l\u00fcm, LocalStack deneyiminizi daha da zenginle\u015ftirecek ipu\u00e7lar\u0131na ve p\u00fcf noktalar\u0131na odaklanacakt\u0131r. \u00d6zellikle b\u00fcy\u00fck projelerde veya karma\u015f\u0131k entegrasyonlarda kar\u015f\u0131la\u015f\u0131labilecek zorluklar\u0131 a\u015fmak i\u00e7in bu teknikler olduk\u00e7a de\u011ferlidir. Performans optimizasyonlar\u0131ndan veri kal\u0131c\u0131l\u0131\u011f\u0131na, altyap\u0131y\u0131 kodla y\u00f6netme (IaC) yakla\u015f\u0131mlar\u0131na kadar geni\u015f bir yelpazede konulara de\u011finece\u011fiz.<\/p>\n<p>Geli\u015ftirme ekipleri, LocalStack'i sadece bir yerel em\u00fclat\u00f6r olarak de\u011fil, ayn\u0131 zamanda CI\/CD pipeline'lar\u0131n\u0131n ve otomasyon stratejilerinin ayr\u0131lmaz bir par\u00e7as\u0131 olarak g\u00f6rmelidir. Bu, tutarl\u0131 bir geli\u015ftirme ortam\u0131 sa\u011flaman\u0131n yan\u0131 s\u0131ra, yeni ekip \u00fcyelerinin projeye adaptasyonunu da kolayla\u015ft\u0131r\u0131r. LocalStack Pro s\u00fcr\u00fcm\u00fcn\u00fcn sundu\u011fu ek \u00f6zellikler, \u00f6zellikle b\u00fcy\u00fck kurumsal projelerde geli\u015ftirici verimlili\u011fini daha da art\u0131rabilir. \u00d6rne\u011fin, Hot-Reloading \u00f6zelli\u011fi sayesinde, Lambda fonksiyonlar\u0131nda yap\u0131lan de\u011fi\u015fiklikler otomatik olarak alg\u0131lan\u0131r ve yeni bir da\u011f\u0131t\u0131m yapmaya gerek kalmadan an\u0131nda test edilebilir. Bu da geri bildirim d\u00f6ng\u00fcs\u00fcn\u00fc milisaniyeler seviyesine indirerek inan\u0131lmaz bir h\u0131z sa\u011flar.<\/p>\n<h3>Performans Optimizasyonlar\u0131 ve Veri Kal\u0131c\u0131l\u0131\u011f\u0131 Nas\u0131l Sa\u011flan\u0131r?<\/h3>\n<p>LocalStack ile \u00e7al\u0131\u015f\u0131rken, performans ve veri kal\u0131c\u0131l\u0131\u011f\u0131, geli\u015ftirme deneyiminizi \u00f6nemli \u00f6l\u00e7\u00fcde etkileyebilir:<\/p>\n<ul>\n<li><strong>\u0130htiyac\u0131n\u0131z Olan Servisleri \u00c7al\u0131\u015ft\u0131r\u0131n:<\/strong> <code>docker-compose.yml<\/code> dosyas\u0131ndaki <code>SERVICES<\/code> ortam de\u011fi\u015fkeniyle sadece kulland\u0131\u011f\u0131n\u0131z AWS servislerini belirtin (\u00f6rne\u011fin, <code>SERVICES=s3,lambda,dynamodb<\/code>). Bu, LocalStack'in kaynak t\u00fcketimini azalt\u0131r ve daha h\u0131zl\u0131 ba\u015flamas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>Veri Kal\u0131c\u0131l\u0131\u011f\u0131 (Data Persistency):<\/strong> Docker volume'lar\u0131 kullanarak LocalStack verilerini yerel makinenizde kal\u0131c\u0131 hale getirebilirsiniz. Bu, konteyneri her ba\u015flatt\u0131\u011f\u0131n\u0131zda S3 bucket'lar\u0131n\u0131z\u0131n veya DynamoDB tablolar\u0131n\u0131z\u0131n kaybolmamas\u0131n\u0131 sa\u011flar. Yukar\u0131daki <code>docker-compose.yml<\/code> \u00f6rne\u011finde <code>DATA_DIR<\/code> ve <code>volumes<\/code> ayarlar\u0131 bu ama\u00e7la kullan\u0131lm\u0131\u015ft\u0131r.<\/li>\n<li><strong>Kaynak S\u0131n\u0131rlamalar\u0131:<\/strong> Docker Compose dosyan\u0131zda LocalStack konteyneri i\u00e7in CPU ve bellek s\u0131n\u0131rlamalar\u0131 belirleyebilirsiniz. Bu, \u00f6zellikle kaynaklar\u0131 k\u0131s\u0131tl\u0131 geli\u015ftirme makinelerinde di\u011fer uygulamalar\u0131n performans\u0131n\u0131 etkilememesi i\u00e7in \u00f6nemlidir.<\/li>\n<\/ul>\n<h3>Terraform\/CloudFormation ile Altyap\u0131y\u0131 Kodla Nas\u0131l Y\u00f6netirsiniz?<\/h3>\n<p>Altyap\u0131y\u0131 Kodla (IaC) yakla\u015f\u0131mlar\u0131 (Terraform, CloudFormation gibi) LocalStack ile m\u00fckemmel bir uyum i\u00e7indedir. Bu ara\u00e7lar, AWS kaynaklar\u0131n\u0131z\u0131 deklaratif bir \u015fekilde tan\u0131mlaman\u0131za olanak tan\u0131r ve LocalStack bu tan\u0131mlar\u0131 yerel olarak uygulayabilir:<\/p>\n<ul>\n<li><strong>Terraform ile LocalStack:<\/strong> Terraform AWS sa\u011flay\u0131c\u0131s\u0131n\u0131 LocalStack'e i\u015faret etmek i\u00e7in bir sa\u011flay\u0131c\u0131 blo\u011fu ekleyebilirsiniz. Bu sayede, Terraform planlar\u0131n\u0131z\u0131 ve uygulamalar\u0131n\u0131z\u0131 ger\u00e7ek AWS'e da\u011f\u0131tmadan \u00f6nce LocalStack \u00fczerinde test edebilirsiniz.\n<pre><code>\nprovider \"aws\" {\n  region                      = \"us-east-1\"\n  access_key                  = \"test\"\n  secret_key                  = \"test\"\n  s3_force_path_style         = true\n  skip_credentials_validation = true\n  skip_get_ec2_platforms      = true\n  skip_metadata_api_check     = true\n  skip_requesting_account_id  = true\n  endpoints {\n    s3        = \"http:\/\/localhost:4566\"\n    lambda    = \"http:\/\/localhost:4566\"\n    dynamodb  = \"http:\/\/localhost:4566\"\n    # Di\u011fer servisler i\u00e7in de benzer \u015fekilde\n  }\n}\n\nresource \"aws_s3_bucket\" \"my_bucket\" {\n  bucket = \"my-local-terraform-bucket\"\n}\n            <\/pre>\n<p><\/code><br \/>\n            Ard\u0131ndan <code>terraform apply<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak kaynaklar\u0131n\u0131z\u0131 LocalStack \u00fczerinde olu\u015fturabilirsiniz.<\/li>\n<li><strong>CloudFormation ile LocalStack:<\/strong> LocalStack'in Pro s\u00fcr\u00fcm\u00fc, CloudFormation \u015fablonlar\u0131n\u0131 do\u011frudan i\u015fleme yetene\u011fine sahiptir. Bu, karma\u015f\u0131k bulut altyap\u0131n\u0131z\u0131 yerel ortam\u0131n\u0131zda sim\u00fcle etmek i\u00e7in g\u00fc\u00e7l\u00fc bir yollar sunar. <code>awslocal cloudformation deploy<\/code> gibi komutlarla \u015fablonlar\u0131n\u0131z\u0131 da\u011f\u0131tabilirsiniz.<\/li>\n<\/ul>\n<div class=\"expert-tip\">Uzman \u0130pucu: IaC ara\u00e7lar\u0131n\u0131 LocalStack ile kullanmak, altyap\u0131 de\u011fi\u015fikliklerinizin g\u00fcvenli\u011fini ve do\u011frulu\u011funu ger\u00e7ek AWS'e da\u011f\u0131tmadan \u00f6nce sa\u011flaman\u0131n en etkili yollar\u0131ndan biridir. Bu, hatalar\u0131 erken a\u015famada yakalaman\u0131z\u0131 ve maliyetli geri d\u00f6n\u00fc\u015fleri \u00f6nlemenizi sa\u011flar.<\/div>\n<h2>Sonu\u00e7: H\u0131zlanan Geli\u015ftirme Geri Bildirimiyle Daha Verimli Bir SDLC M\u00fcmk\u00fcn M\u00fc?<\/h2>\n<p>Bu makale boyunca, LocalStack'in modern yaz\u0131l\u0131m geli\u015ftirme ya\u015fam d\u00f6ng\u00fcs\u00fc (SDLC) \u00fczerindeki d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc etkilerini detayl\u0131 bir \u015fekilde inceledik. Geli\u015ftirme s\u00fcre\u00e7lerindeki yava\u015f geri bildirim d\u00f6ng\u00fclerinin getirdi\u011fi zorluklardan, LocalStack'in bu sorunlara nas\u0131l \u00e7\u00f6z\u00fcm sundu\u011funa, ad\u0131m ad\u0131m kurulumundan ger\u00e7ek d\u00fcnya vaka analizlerine ve ileri d\u00fczey kullan\u0131m ipu\u00e7lar\u0131na kadar geni\u015f bir yelpazede bilgi aktard\u0131k. G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere, LocalStack, geli\u015ftiricilere ger\u00e7ek AWS hizmetlerini yerel ortamlar\u0131nda sim\u00fcle etme g\u00fcc\u00fc vererek, maliyetleri d\u00fc\u015f\u00fcr\u00fcyor, geli\u015ftirme h\u0131z\u0131n\u0131 art\u0131r\u0131yor ve ekiplerin daha verimli \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131yor.<\/p>\n<p>LocalStack'in sa\u011flad\u0131\u011f\u0131 h\u0131zl\u0131 geri bildirim mekanizmas\u0131, geli\u015ftiricilerin kodlar\u0131nda yapt\u0131klar\u0131 de\u011fi\u015fikliklerin sonu\u00e7lar\u0131n\u0131 an\u0131nda g\u00f6rmelerini sa\u011flar. Bu, hata ay\u0131klama s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r, birim ve entegrasyon testlerini kolayla\u015ft\u0131r\u0131r ve genel olarak geli\u015ftirici deneyimini iyile\u015ftirir. Mikroservis mimarileri ve bulut yerel uygulamalar \u00e7a\u011f\u0131nda, LocalStack gibi ara\u00e7lar, karma\u015f\u0131k ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00f6netmek ve tutarl\u0131 bir geli\u015ftirme ortam\u0131 sa\u011flamak i\u00e7in vazge\u00e7ilmez hale gelmi\u015ftir. Sonu\u00e7 olarak, \"Daha h\u0131zl\u0131 geli\u015ftirme, daha iyi \u00fcr\u00fcnler i\u00e7in LocalStack'i benimsemek\" sadece bir slogan de\u011fil, ayn\u0131 zamanda modern SDLC'nin temel bir gereksinimidir. Ekibinizin LocalStack'i denemesi ve bu g\u00fc\u00e7l\u00fc arac\u0131n getirdi\u011fi avantajlardan yararlanmas\u0131, kesinlikle de\u011ferlendirilmesi gereken bir ad\u0131md\u0131r.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<ol>\n<li>\n<h3>LocalStack ger\u00e7ek AWS ile tamamen uyumlu mu?<\/h3>\n<p>LocalStack, AWS API'lerinin b\u00fcy\u00fck bir k\u0131sm\u0131n\u0131 taklit eder ve \u00e7o\u011fu kullan\u0131m senaryosu i\u00e7in yeterli uyumluluk sa\u011flar. Ancak, AWS'in t\u00fcm hizmetlerinin her \u00f6zelli\u011fini %100 birebir sim\u00fcle etmesi beklenemez. Nadir veya \u00e7ok \u00f6zel AWS \u00f6zelliklerinde farkl\u0131l\u0131klar olabilir. Genellikle, en \u00e7ok kullan\u0131lan hizmetler (S3, Lambda, DynamoDB, SQS vb.) y\u00fcksek derecede uyumlulu\u011fa sahiptir.<\/p>\n<\/li>\n<li>\n<h3>LocalStack'i hangi programlama dilleriyle kullanabilirim?<\/h3>\n<p>LocalStack, dilden ba\u011f\u0131ms\u0131zd\u0131r. AWS SDK'lar\u0131 ile uyumlu oldu\u011fu i\u00e7in Python, Node.js, Java, Go, .NET gibi AWS SDK'lar\u0131n\u0131 destekleyen herhangi bir programlama diliyle kullanabilirsiniz. Sadece AWS CLI'\u0131 LocalStack'e y\u00f6nlendiren <code>awslocal<\/code> komutunu veya SDK'lar\u0131n endpoint ayarlar\u0131n\u0131 LocalStack'e g\u00f6re yap\u0131land\u0131rman\u0131z yeterlidir.<\/p>\n<\/li>\n<li>\n<h3>LocalStack \u00fccretli mi? (Pro ve Community Edition fark\u0131)<\/h3>\n<p>LocalStack'in hem \u00fccretsiz Community Edition hem de \u00fccretli Pro Edition'\u0131 bulunmaktad\u0131r. Community Edition, \u00e7o\u011fu temel AWS hizmetini yerel olarak sim\u00fcle etmenizi sa\u011flar ve bir\u00e7ok proje i\u00e7in yeterlidir. Pro Edition ise RDS, Kinesis (baz\u0131 geli\u015fmi\u015f \u00f6zellikler), ECS, EKS gibi daha fazla hizmeti ve hot-reloading, geli\u015fmi\u015f hata ay\u0131klama, s\u00fcrekli senkronizasyon gibi ek \u00f6zellikleri destekler. B\u00fcy\u00fck ekipler ve daha karma\u015f\u0131k ihtiya\u00e7lar i\u00e7in Pro s\u00fcr\u00fcm\u00fc daha uygun olabilir.<\/p>\n<\/li>\n<li>\n<h3>Veritaban\u0131 verilerini nas\u0131l kal\u0131c\u0131 hale getiririm?<\/h3>\n<p>Veritaban\u0131 verilerini kal\u0131c\u0131 hale getirmek i\u00e7in LocalStack Docker konteyneri i\u00e7in Docker volume'lar\u0131n\u0131 kullanman\u0131z gerekir. <code>docker-compose.yml<\/code> dosyan\u0131zda <code>DATA_DIR<\/code> ortam de\u011fi\u015fkenini ve ilgili <code>volumes<\/code> tan\u0131m\u0131n\u0131 kullanarak LocalStack'in verileri host makinenizdeki bir dizine yazmas\u0131n\u0131 sa\u011flayabilirsiniz. B\u00f6ylece konteyneri her ba\u015flatt\u0131\u011f\u0131n\u0131zda verileriniz kaybolmaz.<\/p>\n<\/li>\n<li>\n<h3>LocalStack g\u00fcvenlik testleri i\u00e7in kullan\u0131labilir mi?<\/h3>\n<p>LocalStack, yerel geli\u015ftirme ve entegrasyon testleri i\u00e7in harika bir ara\u00e7 olsa da, ger\u00e7ek bir AWS ortam\u0131ndaki g\u00fcvenlik kontrollerini ve politikalar\u0131n\u0131 tam olarak taklit etmez. G\u00fcvenlik testi genellikle ger\u00e7ek bir AWS ortam\u0131nda veya ger\u00e7ek\u00e7i bir sandbox ortam\u0131nda yap\u0131lmal\u0131d\u0131r. LocalStack, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n prototiplenmesi veya baz\u0131 temel g\u00fcvenlik do\u011frulama ad\u0131mlar\u0131 i\u00e7in kullan\u0131labilir, ancak kapsaml\u0131 bir g\u00fcvenlik testi arac\u0131 olarak tasarlanmam\u0131\u015ft\u0131r.<\/p>\n<\/li>\n<\/ol>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"LocalStack, yerel geli\u015ftirme ortam\u0131nda AWS hizmetlerini sim\u00fcle ederek geli\u015ftirme geri bildirimini h\u0131zland\u0131r\u0131r. SDLC&#8217;de kar\u015f\u0131la\u015f\u0131lan zorluklar\u0131 a\u015fman\u0131n yollar\u0131n\u0131 ke\u015ffedin.&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":[1],"tags":[],"class_list":{"0":"post-31496","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri<\/title>\n<meta name=\"description\" content=\"LocalStack, yerel geli\u015ftirme ortam\u0131nda AWS hizmetlerini sim\u00fcle ederek geli\u015ftirme geri bildirimini h\u0131zland\u0131r\u0131r. SDLC&#039;de kar\u015f\u0131la\u015f\u0131lan zorluklar\u0131 a\u015fman\u0131n yollar\u0131n\u0131 ke\u015ffedin.\" \/>\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\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri\" \/>\n<meta property=\"og:description\" content=\"LocalStack, yerel geli\u015ftirme ortam\u0131nda AWS hizmetlerini sim\u00fcle ederek geli\u015ftirme geri bildirimini h\u0131zland\u0131r\u0131r. SDLC&#039;de kar\u015f\u0131la\u015f\u0131lan zorluklar\u0131 a\u015fman\u0131n yollar\u0131n\u0131 ke\u015ffedin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-10T12:31:42+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=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri\",\"datePublished\":\"2025-10-10T12:31:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/\"},\"wordCount\":3730,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/\",\"name\":\"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-10T12:31:42+00:00\",\"description\":\"LocalStack, yerel geli\u015ftirme ortam\u0131nda AWS hizmetlerini sim\u00fcle ederek geli\u015ftirme geri bildirimini h\u0131zland\u0131r\u0131r. SDLC'de kar\u015f\u0131la\u015f\u0131lan zorluklar\u0131 a\u015fman\u0131n yollar\u0131n\u0131 ke\u015ffedin.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri\"}]},{\"@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":"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri","description":"LocalStack, yerel geli\u015ftirme ortam\u0131nda AWS hizmetlerini sim\u00fcle ederek geli\u015ftirme geri bildirimini h\u0131zland\u0131r\u0131r. SDLC'de kar\u015f\u0131la\u015f\u0131lan zorluklar\u0131 a\u015fman\u0131n yollar\u0131n\u0131 ke\u015ffedin.","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\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/","og_locale":"tr_TR","og_type":"article","og_title":"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri","og_description":"LocalStack, yerel geli\u015ftirme ortam\u0131nda AWS hizmetlerini sim\u00fcle ederek geli\u015ftirme geri bildirimini h\u0131zland\u0131r\u0131r. SDLC'de kar\u015f\u0131la\u015f\u0131lan zorluklar\u0131 a\u015fman\u0131n yollar\u0131n\u0131 ke\u015ffedin.","og_url":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-10T12:31:42+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri","datePublished":"2025-10-10T12:31:42+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/"},"wordCount":3730,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/","url":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/","name":"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-10T12:31:42+00:00","description":"LocalStack, yerel geli\u015ftirme ortam\u0131nda AWS hizmetlerini sim\u00fcle ederek geli\u015ftirme geri bildirimini h\u0131zland\u0131r\u0131r. SDLC'de kar\u015f\u0131la\u015f\u0131lan zorluklar\u0131 a\u015fman\u0131n yollar\u0131n\u0131 ke\u015ffedin.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/localstack-ile-daha-hizli-gelistirme-geri-bildirimi-sdlc-dersleri\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"LocalStack ile Daha H\u0131zl\u0131 Geli\u015ftirme Geri Bildirimi: SDLC Dersleri"}]},{"@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\/31496","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=31496"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31496\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}