{"id":28127,"date":"2025-08-23T16:00:26","date_gmt":"2025-08-23T13:00:26","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/"},"modified":"2025-08-23T16:00:26","modified_gmt":"2025-08-23T13:00:26","slug":"aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/","title":{"rendered":"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi"},"content":{"rendered":"<p>AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi<\/p>\n<p>Sunucular\u0131 y\u00f6netmekten s\u0131k\u0131ld\u0131n\u0131z m\u0131?  Karma\u015f\u0131k altyap\u0131 y\u00f6netimi yerine, i\u015finize odaklanmak istiyor musunuz?  O halde serverless mimarisi tam size g\u00f6re! Bu rehberde, AWS ve Terraform kullanarak s\u0131f\u0131rdan bir ToDo API&#8217;si olu\u015fturaca\u011f\u0131z.  Ad\u0131m ad\u0131m ilerleyece\u011fimiz bu yolculukta, temel kavramlardan ileri d\u00fczey tekniklere kadar her \u015feyi \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!<\/p>\n<h2>Serverless Mimarisi Nedir? Temel Kavramlar<\/h2>\n<p>Serverless mimari, sunucu y\u00f6netiminden sizi kurtaran bir bulut tabanl\u0131 yakla\u015f\u0131m\u0131 temsil eder.  Kodunuzu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gerekli altyap\u0131y\u0131,  Amazon Web Services (AWS) gibi bulut sa\u011flay\u0131c\u0131lar\u0131 y\u00f6netir.  Bu sayede, sunucu bak\u0131m\u0131, g\u00fcncellemeleri ve \u00f6l\u00e7eklendirme gibi i\u015flemlerle u\u011fra\u015fmaz,  kodunuza ve uygulaman\u0131z\u0131n i\u015flevselli\u011fine odaklan\u0131rs\u0131n\u0131z.  Serverless mimarinin temel yap\u0131 ta\u015flar\u0131 aras\u0131nda Lambda fonksiyonlar\u0131, API Gateway ve DynamoDB gibi y\u00f6netilen servisler yer al\u0131r. Lambda fonksiyonlar\u0131, olay tetiklemeli kod par\u00e7alar\u0131d\u0131r ve API Gateway, bu fonksiyonlara eri\u015fim sa\u011flayan bir API olu\u015ftururken, DynamoDB ise veritaban\u0131 ihtiya\u00e7lar\u0131n\u0131z\u0131 kar\u015f\u0131lar.  Bu mimari, maliyet etkinli\u011fi ve \u00f6l\u00e7eklenebilirlik a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck avantajlar sunar.  Yaln\u0131zca kodunuz \u00e7al\u0131\u015f\u0131rken \u00f6deme yapars\u0131n\u0131z ve uygulama trafi\u011finiz artt\u0131\u011f\u0131nda sistem otomatik olarak \u00f6l\u00e7eklenir. Ba\u015fka bir deyi\u015fle, maliyetler yaln\u0131zca kullan\u0131m\u0131n\u0131za g\u00f6re belirlenir.  Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.<\/p>\n<h2>API Gateway&#8217;i Terraform ile Nas\u0131l Kurar\u0131z?<\/h2>\n<p>\u00d6ncelikle,  API Gateway&#8217;imizi Terraform ile otomatikle\u015ftirece\u011fiz.  Terraform, altyap\u0131n\u0131z\u0131 tan\u0131mlamak ve y\u00f6netmek i\u00e7in kullan\u0131lan bir Infrastructure as Code (IaC) arac\u0131d\u0131r.  Bu, altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netebilece\u011finiz ve de\u011fi\u015fiklikleri s\u00fcr\u00fcm kontrol sistemlerinde takip edebilece\u011finiz anlam\u0131na gelir. \u0130\u015fte basit bir API Gateway tan\u0131m\u0131:<\/p>\n<pre><code class=\"language-terraform\">resource \"aws_api_gateway_rest_api\" \"todo_api\" {\n  name        = \"todo-api\"\n  description = \"Todo API\"\n}\n\nresource \"aws_api_gateway_resource\" \"proxy\" {\n  rest_api_id = aws_api_gateway_rest_api.todo_api.id\n  parent_id   = aws_api_gateway_rest_api.todo_api.root_resource_id\n  path_part   = \"{proxy+}\"\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu kod blo\u011fu, <code>todo-api<\/code> ad\u0131nda bir REST API tan\u0131mlar.  <code>{proxy+}<\/code> k\u0131sm\u0131, t\u00fcm istekleri bir Lambda fonksiyonuna y\u00f6nlendirece\u011fimiz anlam\u0131na gelir.  Daha sonra, bu API'ye Lambda fonksiyonumuzu ba\u011flayaca\u011f\u0131z.  Bu basit \u00f6rne\u011fi geli\u015ftirerek,  yetkilendirme,  CORS gibi ilave \u00f6zellikleri de ekleyebilirsiniz.  \u00d6rne\u011fin,  API Key'ler ile g\u00fcvenli\u011fi artt\u0131rmak ya da \u00f6zel bir domain ad\u0131 kullanmak i\u00e7in Terraform konfig\u00fcrasyonunu geni\u015fletebilirsiniz.<\/p>\n<h2>AWS Lambda Fonksiyonunu Olu\u015fturma ve Terraform ile Y\u00f6netme<\/h2>\n<p>API Gateway'imiz haz\u0131r oldu\u011funa g\u00f6re, \u015fimdi de ToDo API'sini olu\u015fturmak i\u00e7in gerekli Lambda fonksiyonunu olu\u015fturaca\u011f\u0131z.  Lambda fonksiyonlar\u0131, serverless ortam\u0131nda kod \u00e7al\u0131\u015ft\u0131rmak i\u00e7in idealdir.  Python ile yaz\u0131lm\u0131\u015f bir Lambda fonksiyonu \u00f6rne\u011fi:<\/p>\n<pre><code class=\"language-python\">import json\n\ndef lambda_handler(event, context):\n    # ToDo i\u015flemleri burada yap\u0131lacak\n    return {\n        &#039;statusCode&#039;: 200,\n        &#039;body&#039;: json.dumps(&#039;Hello from Lambda!&#039;)\n    }<\/pre>\n<p><\/code><\/p>\n<pre><code class=\"language-terraform\">Bu basit fonksiyon, \"Hello from Lambda!\" mesaj\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.  Ger\u00e7ek bir ToDo uygulamas\u0131 i\u00e7in,  DynamoDB ile etkile\u015fim kurarak verileri i\u015flemeniz gerekecektir.  Lambda fonksiyonunu Terraform ile y\u00f6netebiliriz:<\/pre>\n<p><\/code>resource \"aws_lambda_function\" \"todo_lambda\" {<br \/>\n  filename         = \"lambda_function.zip\"<br \/>\n  function_name    = \"todo-lambda\"<br \/>\n  role             = aws_iam_role.lambda_role.arn<br \/>\n  handler          = \"lambda_function.lambda_handler\"<br \/>\n  runtime          = \"python3.9\"<br \/>\n  source_code_hash = filebase64sha256(\"lambda_function.zip\")<br \/>\n}<\/code><\/p>\n<p>Bu kod,  <code>lambda_function.zip<\/code> dosyas\u0131ndaki Python kodunu  \"todo-lambda\" ad\u0131yla bir Lambda fonksiyonu olarak tan\u0131mlar.  <code>aws_iam_role.lambda_role.arn<\/code> k\u0131sm\u0131,  fonksiyonun gerekli izinlere sahip olmas\u0131n\u0131 sa\u011flar.  Fonksiyonunuzun daha g\u00fcvenli \u00e7al\u0131\u015fmas\u0131 i\u00e7in  IAM rollerini do\u011fru bir \u015fekilde konfig\u00fcre etmeniz kritik \u00f6neme sahiptir.  Dikkat etmeniz gereken bir di\u011fer \u00f6nemli nokta ise,  zip dosyas\u0131n\u0131n do\u011fru bir \u015fekilde olu\u015fturulmas\u0131 ve do\u011fru izinlerle AWS'ye y\u00fcklenmesidir.<\/p>\n<h2>DynamoDB Tablosu Olu\u015fturma ve Veri Y\u00f6netimi<\/h2>\n<p>ToDo uygulamas\u0131n\u0131n verilerini saklamak i\u00e7in DynamoDB kullanaca\u011f\u0131z.  DynamoDB,  NoSQL bir veritaban\u0131 hizmetidir ve y\u00fcksek \u00f6l\u00e7eklenebilirlik sunar.  Terraform ile DynamoDB tablosu olu\u015fturmak olduk\u00e7a basittir:<\/p>\n<pre><code class=\"language-terraform\">resource \"aws_dynamodb_table\" \"todo_table\" {\n  name           = \"todo-table\"\n  billing_mode   = \"PAY_PER_REQUEST\"\n  hash_key       = \"id\"\n  attribute {\n    name = \"id\"\n    type = \"S\"\n  }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu kod, <code>todo-table<\/code> ad\u0131nda bir DynamoDB tablosu tan\u0131mlar ve <code>id<\/code> s\u00fctununu birincil anahtar olarak kullan\u0131r. <code>PAY_PER_REQUEST<\/code>  fatura y\u00f6ntemi, kullan\u0131m bazl\u0131 \u00fccretlendirme anlam\u0131na gelir.  Daha sonra,  Lambda fonksiyonunuz bu tablo ile etkile\u015fim kurarak verileri kaydedebilir ve okuyabilir.  DynamoDB'nin performans\u0131n\u0131 optimize etmek i\u00e7in,  uygulama gereksinimlerine g\u00f6re kapasite ayarlar\u0131n\u0131 do\u011fru bir \u015fekilde yapman\u0131z ve indeksleri kullanman\u0131z \u00f6nemlidir.<\/p>\n<h2>API Gateway ve Lambda Fonksiyonunun Ba\u011flant\u0131s\u0131<\/h2>\n<p>Son ad\u0131m olarak,  API Gateway'i Lambda fonksiyonuna ba\u011flayaca\u011f\u0131z.  Bu,  API Gateway \u00fczerinden gelen isteklerin Lambda fonksiyonu taraf\u0131ndan i\u015flenmesini sa\u011flar.  Terraform ile bu ba\u011flant\u0131y\u0131 a\u015fa\u011f\u0131daki gibi sa\u011flayabilirsiniz:<\/p>\n<pre><code class=\"language-terraform\">resource \"aws_api_gateway_integration\" \"lambda_integration\" {\n  rest_api_id = aws_api_gateway_rest_api.todo_api.id\n  resource_id = aws_api_gateway_resource.proxy.id\n  http_method = \"ANY\"\n  integration_http_method = \"POST\"\n  type = \"AWS_PROXY\"\n  integration_subtype = \"aws_proxy\"\n  credentials = aws_iam_role.lambda_role.arn\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu kod,  API Gateway'deki t\u00fcm istekleri (<code>ANY<\/code> method)  Lambda fonksiyonuna (<code>AWS_PROXY<\/code>  t\u00fcr\u00fc) y\u00f6nlendirir.  <code>credentials<\/code>  k\u0131sm\u0131, Lambda fonksiyonunun izinlerini belirtir.  Bu ba\u011flant\u0131 do\u011fru bir \u015fekilde kuruldu\u011fundan emin olmak i\u00e7in,  Terraform'un ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve API Gateway'in Lambda fonksiyonunu do\u011fru \u015fekilde \u00e7a\u011f\u0131rd\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z.  Yanl\u0131\u015f konfig\u00fcrasyonlar performans sorunlar\u0131na ve hatalara yol a\u00e7abilir.<\/p>\n<h2>\u00d6\u011frenme Yol Haritas\u0131<\/h2>\n<p><strong>[Yeni Ba\u015flayan]:<\/strong>  Bu rehberdeki ad\u0131mlar\u0131 takip ederek, temel bir ToDo API'si olu\u015fturabilirsiniz.  AWS konsolunu kullanarak Lambda fonksiyonlar\u0131n\u0131 ve DynamoDB tablolar\u0131n\u0131 manuel olarak da olu\u015fturabilirsiniz, ancak Terraform kullanarak otomasyon sa\u011flaman\u0131z,  gelecekteki de\u011fi\u015fiklikleri kolayla\u015ft\u0131racakt\u0131r.<\/p>\n<p><strong>[Orta]:<\/strong>  G\u00fcvenlik,  CORS,  API Key y\u00f6netimi gibi konular\u0131 inceleyerek API'nizi daha g\u00fcvenli ve kullan\u0131\u015fl\u0131 hale getirebilirsiniz.  Daha geli\u015fmi\u015f DynamoDB sorgular\u0131 ve  Lambda fonksiyonu optimizasyonlar\u0131 \u00fczerinde \u00e7al\u0131\u015fabilirsiniz.  Ayr\u0131ca farkl\u0131 hata y\u00f6netimi tekniklerini de uygulayarak uygulaman\u0131z\u0131n daha sa\u011flam olmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p><strong>[\u0130leri D\u00fczey]:<\/strong>  Serverless Application Model (SAM) gibi ara\u00e7lar\u0131 kullanarak daha karma\u015f\u0131k serverless uygulamalar\u0131 geli\u015ftirebilir,  API Gateway'de  custom authorizers  kullanarak  yetkilendirmeyi geli\u015ftirebilir,  ve  CI\/CD pipeline'lar\u0131n\u0131 entegre ederek  otomatik da\u011f\u0131t\u0131m s\u00fcre\u00e7leri kurabilirsiniz.  Bu seviyede,  performans optimizasyonu ve maliyet analizi  kritik \u00f6nem ta\u015f\u0131r.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Bir E-Ticaret Uygulamas\u0131 \u0130\u00e7in ToDo API'si<\/h2>\n<p>Bir e-ticaret \u015firketinde,  stok y\u00f6netimi i\u00e7in bir ToDo API'si kullanabilirsiniz.  \u00d6rne\u011fin,  d\u00fc\u015f\u00fck stok seviyelerine sahip \u00fcr\u00fcnleri takip eden ve ilgili departmanlar\u0131 bilgilendiren bir sistem kurabilirsiniz.  Bu sistem,  stok eksiklikleri nedeniyle olu\u015fabilecek sat\u0131\u015f kay\u0131plar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olur.  Bu senaryo,  ger\u00e7ek zamanl\u0131 veri i\u015fleme ve \u00f6l\u00e7eklenebilirlik gerektirir,  bu y\u00fczden serverless mimarisi ideal bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h2>Performans Kar\u015f\u0131la\u015ft\u0131rmas\u0131: Tablo, Liste ve \u00d6zel \u00c7\u00f6z\u00fcm<\/h2>\n<p>Veri depolama ve eri\u015fim performans\u0131n\u0131 optimize etmek i\u00e7in farkl\u0131 yakla\u015f\u0131mlar kar\u015f\u0131la\u015ft\u0131rabiliriz:<\/p>\n<p>| Y\u00f6ntem        | Avantajlar                                  | Dezavantajlar                               |<br \/>\n|----------------|----------------------------------------------|---------------------------------------------|<br \/>\n| DynamoDB Tablo | Y\u00fcksek performans, \u00f6l\u00e7eklenebilirlik         | NoSQL veritaban\u0131, ili\u015fkisel sorgular i\u00e7in uygun de\u011fil |<br \/>\n| Liste (Array)   | Basit yap\u0131                                   | \u00d6l\u00e7eklenebilirlik s\u0131n\u0131rl\u0131, performans d\u00fc\u015febilir  |<br \/>\n| \u00d6zel \u00c7\u00f6z\u00fcm     | Uygulamaya \u00f6zel optimizasyonlar                | Geli\u015ftirme s\u00fcresi uzun, bak\u0131m zor olabilir        |<\/p>\n<h2>G\u00fcvenlik Uyar\u0131lar\u0131<\/h2>\n<p><strong>Dikkat:<\/strong> Lambda fonksiyonlar\u0131n\u0131za ve DynamoDB tablonuza eri\u015fim izinlerini do\u011fru bir \u015fekilde ayarlamaman\u0131z durumunda, g\u00fcvenlik a\u00e7\u0131klar\u0131na neden olabilirsiniz.  IAM rollerini ve politikalar\u0131n\u0131 dikkatlice yap\u0131land\u0131rman\u0131z ve gereksiz izinleri vermemeniz \u00e7ok \u00f6nemlidir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu rehberde, AWS ve Terraform kullanarak bir Serverless ToDo API'si geli\u015ftirmenin temel ad\u0131mlar\u0131n\u0131 \u00f6\u011frendiniz.  Serverless mimarisinin avantajlar\u0131n\u0131 ve kullan\u0131m alanlar\u0131n\u0131 ke\u015ffettik.  Uygulama geli\u015ftirme s\u00fcrecinizde kar\u015f\u0131la\u015fabilece\u011finiz zorluklar ve bunlar\u0131n \u00e7\u00f6z\u00fcm yollar\u0131 hakk\u0131nda bilgi sahibi oldunuz.  Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> adresini ziyaret edebilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>* <strong>Terraform nedir ve neden kullanmal\u0131y\u0131m?<\/strong> Terraform, altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netmenizi sa\u011flayan bir IaC arac\u0131d\u0131r. Bu, altyap\u0131n\u0131z\u0131 otomatikle\u015ftirmenize, s\u00fcr\u00fcm kontrol\u00fc sa\u011flaman\u0131za ve de\u011fi\u015fiklikleri izleyebilmenize olanak tan\u0131r.<\/p>\n<p>* <strong>DynamoDB'nin avantajlar\u0131 nelerdir?<\/strong> DynamoDB, y\u00fcksek performans, \u00f6l\u00e7eklenebilirlik ve esneklik sunan bir NoSQL veritaban\u0131 hizmetidir.  Kullan\u0131m\u0131 kolay ve y\u00f6netimi basittir.<\/p>\n<p>* <strong>Lambda fonksiyonlar\u0131 nas\u0131l \u00f6l\u00e7eklenir?<\/strong> Lambda fonksiyonlar\u0131, gelen isteklere g\u00f6re otomatik olarak \u00f6l\u00e7eklenir.  AWS, gerekli kaynaklar\u0131 dinamik olarak tahsis eder.<\/p>\n<p>* <strong>API Gateway'in amac\u0131 nedir?<\/strong> API Gateway, uygulaman\u0131z\u0131n giri\u015f noktas\u0131 olarak hizmet eder ve istekleri Lambda fonksiyonlar\u0131na y\u00f6nlendirir. G\u00fcvenlik, yetkilendirme ve h\u0131z limitlerini y\u00f6netmenize de olanak sa\u011flar.<\/p>\n<p>* <strong>Serverless mimarisi hangi durumlarda idealdir?<\/strong> Serverless mimarisi, h\u0131zl\u0131 geli\u015ftirme, \u00f6l\u00e7eklenebilirlik ve maliyet etkinli\u011fi gerektiren uygulamalar i\u00e7in idealdir.  Olay tetiklemeli veya talep \u00fczerine \u00e7al\u0131\u015fan uygulamalar i\u00e7in \u00f6zellikle uygundur.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi Sunucular\u0131 y\u00f6netmekten s\u0131k\u0131ld\u0131n\u0131z m\u0131? Karma\u015f\u0131k altyap\u0131&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-28127","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>AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi<\/title>\n<meta name=\"description\" content=\"Sunucular\u0131 y\u00f6netmekten s\u0131k\u0131ld\u0131n\u0131z m\u0131? Karma\u015f\u0131k altyap\u0131 y\u00f6netimi yerine, i\u015finize odaklanmak istiyor musunuz? O halde serverless mimarisi tam size g\u00f6re! Bu rehberde, AWS ve Terraform kullanarak s\u0131f\u0131rdan bir ToDo API&#039;si olu\u015fturaca\u011f\u0131z. Ad\u0131m ad\u0131m ilerleyece\u011fimiz bu yolculukta, temel kavramlardan ileri d\u00fczey tekniklere kadar her \u015feyi \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, ba\u015flayal\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-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi\" \/>\n<meta property=\"og:description\" content=\"Sunucular\u0131 y\u00f6netmekten s\u0131k\u0131ld\u0131n\u0131z m\u0131? Karma\u015f\u0131k altyap\u0131 y\u00f6netimi yerine, i\u015finize odaklanmak istiyor musunuz? O halde serverless mimarisi tam size g\u00f6re! Bu rehberde, AWS ve Terraform kullanarak s\u0131f\u0131rdan bir ToDo API&#039;si olu\u015fturaca\u011f\u0131z. Ad\u0131m ad\u0131m ilerleyece\u011fimiz bu yolculukta, temel kavramlardan ileri d\u00fczey tekniklere kadar her \u015feyi \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-23T13:00:26+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=\"8 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi\",\"datePublished\":\"2025-08-23T13:00:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/\"},\"wordCount\":1392,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/\",\"name\":\"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-08-23T13:00:26+00:00\",\"description\":\"Sunucular\u0131 y\u00f6netmekten s\u0131k\u0131ld\u0131n\u0131z m\u0131? Karma\u015f\u0131k altyap\u0131 y\u00f6netimi yerine, i\u015finize odaklanmak istiyor musunuz? O halde serverless mimarisi tam size g\u00f6re! Bu rehberde, AWS ve Terraform kullanarak s\u0131f\u0131rdan bir ToDo API'si olu\u015fturaca\u011f\u0131z. Ad\u0131m ad\u0131m ilerleyece\u011fimiz bu yolculukta, temel kavramlardan ileri d\u00fczey tekniklere kadar her \u015feyi \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi\"}]},{\"@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 ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi","description":"Sunucular\u0131 y\u00f6netmekten s\u0131k\u0131ld\u0131n\u0131z m\u0131? Karma\u015f\u0131k altyap\u0131 y\u00f6netimi yerine, i\u015finize odaklanmak istiyor musunuz? O halde serverless mimarisi tam size g\u00f6re! Bu rehberde, AWS ve Terraform kullanarak s\u0131f\u0131rdan bir ToDo API'si olu\u015fturaca\u011f\u0131z. Ad\u0131m ad\u0131m ilerleyece\u011fimiz bu yolculukta, temel kavramlardan ileri d\u00fczey tekniklere kadar her \u015feyi \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, ba\u015flayal\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-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi","og_description":"Sunucular\u0131 y\u00f6netmekten s\u0131k\u0131ld\u0131n\u0131z m\u0131? Karma\u015f\u0131k altyap\u0131 y\u00f6netimi yerine, i\u015finize odaklanmak istiyor musunuz? O halde serverless mimarisi tam size g\u00f6re! Bu rehberde, AWS ve Terraform kullanarak s\u0131f\u0131rdan bir ToDo API'si olu\u015fturaca\u011f\u0131z. Ad\u0131m ad\u0131m ilerleyece\u011fimiz bu yolculukta, temel kavramlardan ileri d\u00fczey tekniklere kadar her \u015feyi \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!","og_url":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-08-23T13:00:26+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"8 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi","datePublished":"2025-08-23T13:00:26+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/"},"wordCount":1392,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/","name":"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-08-23T13:00:26+00:00","description":"Sunucular\u0131 y\u00f6netmekten s\u0131k\u0131ld\u0131n\u0131z m\u0131? Karma\u015f\u0131k altyap\u0131 y\u00f6netimi yerine, i\u015finize odaklanmak istiyor musunuz? O halde serverless mimarisi tam size g\u00f6re! Bu rehberde, AWS ve Terraform kullanarak s\u0131f\u0131rdan bir ToDo API'si olu\u015fturaca\u011f\u0131z. Ad\u0131m ad\u0131m ilerleyece\u011fimiz bu yolculukta, temel kavramlardan ileri d\u00fczey tekniklere kadar her \u015feyi \u00f6\u011freneceksiniz. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/aws-ve-terraform-ile-serverless-todo-api-gelistirme-tam-bir-ogrenme-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS ve Terraform ile Serverless ToDo API Geli\u015ftirme: Tam Bir \u00d6\u011frenme Rehberi"}]},{"@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\/28127","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=28127"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/28127\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=28127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=28127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=28127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}