{"id":29894,"date":"2025-09-21T08:30:24","date_gmt":"2025-09-21T05:30:24","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/"},"modified":"2025-09-21T08:30:24","modified_gmt":"2025-09-21T05:30:24","slug":"awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/","title":{"rendered":"AWS&#8217;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile"},"content":{"rendered":"<p>AWS&#039;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile<\/p>\n<p>Bir ToDo uygulamas\u0131 geli\u015ftirmek basit gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik, g\u00fcvenlik ve bak\u0131m gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmak olduk\u00e7a karma\u015f\u0131k olabilir. Bu makalede, AWS&#039;nin sundu\u011fu serverless mimarisi, Terraform&#039;un altyap\u0131 y\u00f6netimi yetenekleri ve GitHub Actions&#039;\u0131n s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) g\u00fcc\u00fcyle nas\u0131l basit ve g\u00fc\u00e7l\u00fc bir ToDo uygulamas\u0131 olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz.  Bu uygulama sayesinde, sunucu y\u00f6netimi derdinden kurtulup, kodunuza odaklanabilirsiniz.<\/p>\n<h2>Serverless Mimari Nedir ve Neden Kullanmal\u0131y\u0131z?<\/h2>\n<p>Serverless mimari, sunucu y\u00f6netimi sorumlulu\u011funu bulut sa\u011flay\u0131c\u0131s\u0131na devrederek, kodunuza odaklanman\u0131z\u0131 sa\u011flayan bir yakla\u015f\u0131m.  AWS Lambda gibi serverless fonksiyonlar\u0131 kullanarak, kodunuz sadece ihtiya\u00e7 duyuldu\u011funda \u00e7al\u0131\u015f\u0131r ve kaynaklar\u0131 yaln\u0131zca o s\u00fcre boyunca t\u00fcketir. Bu da maliyet tasarrufu ve \u00f6l\u00e7eklenebilirlik sa\u011flar.  \u00d6rne\u011fin, ToDo uygulaman\u0131zda bir kullan\u0131c\u0131 yeni bir g\u00f6rev ekledi\u011finde, Lambda fonksiyonu tetiklenir ve veri taban\u0131 i\u015flemlerini ger\u00e7ekle\u015ftirir.  Kullan\u0131c\u0131 say\u0131s\u0131 artt\u0131\u011f\u0131nda, Lambda fonksiyonlar\u0131 otomatik olarak \u00f6l\u00e7eklenir ve performans d\u00fc\u015f\u00fc\u015f\u00fc ya\u015famazs\u0131n\u0131z.  Bu esneklik, geleneksel sunucu tabanl\u0131 uygulamalara g\u00f6re \u00e7ok daha avantajl\u0131d\u0131r.  Ayr\u0131ca,  serverless mimari, uygulaman\u0131z\u0131n daha g\u00fcvenli ve daha kolay y\u00f6netilebilir olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>Temel Kavramlar: AWS Servisleri ve Ara\u00e7lar\u0131<\/h2>\n<p>Bu projeyi anlaman\u0131z i\u00e7in baz\u0131 temel AWS servislerini ve ara\u00e7lar\u0131n\u0131 tan\u0131man\u0131z gerekiyor. \u0130lk olarak,  <strong>AWS Lambda<\/strong>, kodunuzun \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131 serverless hesaplama ortam\u0131d\u0131r.  <strong>Amazon DynamoDB<\/strong>, uygulaman\u0131z\u0131n verilerini saklamak i\u00e7in kullanaca\u011f\u0131m\u0131z NoSQL veritaban\u0131d\u0131r.  <strong>API Gateway<\/strong>, uygulaman\u0131z\u0131n d\u0131\u015f d\u00fcnyaya a\u00e7\u0131lan kap\u0131s\u0131d\u0131r ve istekleri Lambda fonksiyonlar\u0131na y\u00f6nlendirir. <strong>Terraform<\/strong>, altyap\u0131n\u0131z\u0131 kod olarak tan\u0131mlaman\u0131z\u0131 ve y\u00f6netmenizi sa\u011flayan bir altyap\u0131 olarak kod (IaC) arac\u0131d\u0131r.  Son olarak, <strong>GitHub Actions<\/strong>, kodunuzun s\u00fcrekli entegrasyon ve da\u011f\u0131t\u0131m\u0131n\u0131 otomatikle\u015ftirmenize yard\u0131mc\u0131 olur.  Bu bile\u015fenler, ToDo uygulamas\u0131n\u0131n temel ta\u015flar\u0131n\u0131 olu\u015fturur ve birlikte kusursuz bir i\u015f ak\u0131\u015f\u0131 sa\u011flar.  Bu ara\u00e7lar\u0131n g\u00fc\u00e7l\u00fc kombinasyonu, geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r ve uygulaman\u0131n g\u00fcvenilirli\u011fini art\u0131r\u0131r.<\/p>\n<h2>Uygulaman\u0131n Mimarisini Tasarlamak: API Gateway, Lambda ve DynamoDB<\/h2>\n<p>Uygulamam\u0131z, API Gateway taraf\u0131ndan y\u00f6nlendirilen istekleri i\u015fleyen Lambda fonksiyonlar\u0131ndan ve verileri saklayan DynamoDB&#039;den olu\u015facakt\u0131r.  API Gateway, RESTful API&#039;ler olu\u015fturarak istekleri Lambda fonksiyonlar\u0131na iletir.  Lambda fonksiyonlar\u0131, DynamoDB ile etkile\u015ferek verileri y\u00f6netir.  Bu mimari, uygulaman\u0131n farkl\u0131 bile\u015fenlerini ayr\u0131\u015ft\u0131r\u0131r ve \u00f6l\u00e7eklenebilirli\u011fini art\u0131r\u0131r.  \u00d6rne\u011fin, y\u00fcksek trafik durumunda, API Gateway ve Lambda fonksiyonlar\u0131 otomatik olarak \u00f6l\u00e7eklenir ve performans d\u00fc\u015f\u00fc\u015f\u00fc \u00f6nlenir.  Bu mimari ayr\u0131ca, uygulaman\u0131n bak\u0131m\u0131n\u0131 ve g\u00fcncellemesini kolayla\u015ft\u0131r\u0131r.  Her bile\u015feni ba\u011f\u0131ms\u0131z olarak y\u00f6netebilir ve g\u00fcncelleyebilirsiniz.  Daha detayl\u0131 bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.<\/p>\n<h2>Terraform ile Altyap\u0131y\u0131 Otomatikle\u015ftirmek<\/h2>\n<p>Terraform kullanarak, t\u00fcm AWS kaynaklar\u0131n\u0131 kod olarak tan\u0131mlayabiliriz.  Bu, altyap\u0131n\u0131z\u0131 versiyon kontrol\u00fc alt\u0131na alman\u0131za ve kolayca y\u00f6netebilmenize olanak tan\u0131r.  A\u015fa\u011f\u0131daki \u00f6rnek, bir DynamoDB tablosu ve bir API Gateway endpoint&#039;i olu\u015fturmak i\u00e7in kullan\u0131lan Terraform kodunu g\u00f6stermektedir:<\/p>\n<p><\/code><\/p>\n<pre><code class=\"language-plaintext\">terraform\nresource \"aws_dynamodb_table\" \"todo\" {\n  name           = \"todo-table\"\n  billing_mode   = \"PAY_PER_REQUEST\"\n  hash_key       = \"id\"\n  attribute {\n    name = \"id\"\n    type = \"S\"\n  }\n}\n\nresource \"aws_api_gateway_rest_api\" \"todo_api\" {\n  name = \"TodoAPI\"\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,  DynamoDB tablosunun ve API Gateway endpoint&#039;inin  olu\u015fturulmas\u0131n\u0131 tan\u0131mlar.  Terraform, bu kodu \u00e7al\u0131\u015ft\u0131rarak AWS&#039;de gerekli kaynaklar\u0131 otomatik olarak olu\u015fturur.  Bu, altyap\u0131 y\u00f6netimini olduk\u00e7a basitle\u015ftirir ve hatalar\u0131 azalt\u0131r.<\/p>\n<h2>GitHub Actions ile S\u00fcrekli Entegrasyon ve Da\u011f\u0131t\u0131m (CI\/CD)<\/h2>\n<p>GitHub Actions, kod de\u011fi\u015fiklikleriniz otomatik olarak test edilmesini ve da\u011f\u0131t\u0131lmas\u0131n\u0131 sa\u011flar.  Bir GitHub Actions workflow&#039;\u00fc olu\u015fturarak, kodunuz her push edildi\u011finde Terraform&#039;u \u00e7al\u0131\u015ft\u0131rabilir ve uygulaman\u0131z\u0131 otomatik olarak da\u011f\u0131tabilirsiniz.  Bu, geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r ve hatalar\u0131 erken a\u015famalarda yakalaman\u0131za yard\u0131mc\u0131 olur.  A\u015fa\u011f\u0131daki \u00f6rnek, bir basit GitHub Actions workflow&#039;\u00fcn\u00fc g\u00f6sterir:<\/p>\n<p><\/code><\/p>\n<pre><code class=\"language-plaintext\">yaml\nname: Deploy Todo App\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\/checkout@v3\n      - name: Install Terraform\n        run: sudo apt-get update && sudo apt-get install -y terraform\n      - name: Apply Terraform\n        run: terraform init && terraform apply -auto-approve<\/pre>\n<p><\/code><\/p>\n<p>Bu workflow, kodunuz <code>main<\/code> dal\u0131na push edildi\u011finde Terraform&#039;u \u00e7al\u0131\u015ft\u0131r\u0131r ve de\u011fi\u015fiklikleri AWS&#039;de uygular.  Bu otomatik da\u011f\u0131t\u0131m s\u00fcreci, geli\u015ftirme ekibinin zaman\u0131n\u0131 korur ve uygulaman\u0131n her zaman g\u00fcncel kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>Lambda Fonksiyonlar\u0131n\u0131 Yazmak ve API Gateway ile Entegre Etmek<\/h2>\n<p>Lambda fonksiyonlar\u0131n\u0131 Python, Node.js, Java veya Go gibi bir\u00e7ok dilde yazabilirsiniz.  Bu fonksiyonlar, API Gateway taraf\u0131ndan g\u00f6nderilen istekleri i\u015fler ve DynamoDB ile etkile\u015fim kurar.  A\u015fa\u011f\u0131daki \u00f6rnek, bir Node.js Lambda fonksiyonunun temel yap\u0131s\u0131n\u0131 g\u00f6sterir:<\/p>\n<p><\/code><\/p>\n<pre><code class=\"language-plaintext\">javascript\nexports.handler = async (event) => {\n  const response = {\n    statusCode: 200,\n    body: JSON.stringify(&#039;Hello from Lambda!&#039;),\n  };\n  return response;\n};<\/pre>\n<p><\/code><\/p>\n<p>Bu fonksiyon, basit bir \"Hello from Lambda!\" mesaj\u0131 d\u00f6nd\u00fcr\u00fcr.  Daha karma\u015f\u0131k fonksiyonlar, DynamoDB ile etkile\u015fim kurarak veri i\u015flemlerini ger\u00e7ekle\u015ftirir.  API Gateway, Lambda fonksiyonlar\u0131n\u0131 belirli HTTP y\u00f6ntemleri (GET, POST, PUT, DELETE) ile ili\u015fkilendirir, b\u00f6ylece farkl\u0131 i\u015flemler i\u00e7in farkl\u0131 fonksiyonlar\u0131 \u00e7a\u011f\u0131r\u0131r.  Bu entegrasyon, uygulaman\u0131n RESTful API&#039;sini olu\u015fturur.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131 ve Vaka Analizleri<\/h2>\n<p>\u00d6rne\u011fin, bir e-ticaret \u015firketinin \u00fcr\u00fcn envanterini y\u00f6netmesi veya bir sosyal medya platformunun kullan\u0131c\u0131 yorumlar\u0131n\u0131 i\u015flemesi gibi uygulamalarda serverless mimari kullan\u0131labilir.  Bu uygulamalar, serverless mimarisinin \u00f6l\u00e7eklenebilirlik ve maliyet avantajlar\u0131n\u0131 g\u00f6stermektedir.  Y\u00fcksek trafik d\u00f6nemlerinde, serverless fonksiyonlar otomatik olarak \u00f6l\u00e7eklenir ve performans d\u00fc\u015f\u00fc\u015f\u00fc ya\u015fanmaz.  Ayn\u0131 zamanda, d\u00fc\u015f\u00fck trafik d\u00f6nemlerinde kaynak t\u00fcketimi minimuma indirilir, b\u00f6ylece maliyetler azalt\u0131l\u0131r.  Bu, geleneksel sunucu tabanl\u0131 uygulamalara g\u00f6re b\u00fcy\u00fck bir avantajd\u0131r.<\/p>\n<h2>\u0130leri D\u00fczey Konular: G\u00fcvenlik ve Performans Optimizasyonu<\/h2>\n<p>Uygulaman\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in, IAM rollerini do\u011fru \u015fekilde yap\u0131land\u0131rman\u0131z ve Lambda fonksiyonlar\u0131n\u0131za eri\u015fimi k\u0131s\u0131tlaman\u0131z \u00f6nemlidir.  Ayr\u0131ca, DynamoDB tablosuna eri\u015fimi kontrol etmek ve veri \u015fifrelemesi kullanmak da g\u00fcvenli\u011fi art\u0131r\u0131r.  Performans optimizasyonu i\u00e7in, Lambda fonksiyonlar\u0131n\u0131 optimize etmeli ve veritaban\u0131 sorgular\u0131n\u0131 iyile\u015ftirmelisiniz.  B\u00fcy\u00fck verilerle \u00e7al\u0131\u015f\u0131yorsan\u0131z, DynamoDB&#039;nin global tablo \u00f6zelli\u011fini kullanabilirsiniz. Daha fazla ipucu ve p\u00fcf noktas\u0131 i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini inceleyebilirsiniz.<\/p>\n<h2>\u00d6\u011frenme Yol Haritas\u0131<\/h2>\n<h3>Yeni Ba\u015flayan:<\/h3>\n<ul>\n<li>AWS Lambda, API Gateway ve DynamoDB&#039;nin temel kavramlar\u0131n\u0131 \u00f6\u011frenin.<\/li>\n<li>Basit bir Hello World Lambda fonksiyonu olu\u015fturun.<\/li>\n<li>Terraform&#039;un temel komutlar\u0131n\u0131 \u00f6\u011frenin.<\/li>\n<\/ul>\n<h3>Orta Seviye:<\/h3>\n<ul>\n<li>Bir API Gateway endpoint&#039;i olu\u015fturun ve bir Lambda fonksiyonu ile entegre edin.<\/li>\n<li>DynamoDB&#039;ye veri ekleme, okuma, g\u00fcncelleme ve silme i\u015flemlerini ger\u00e7ekle\u015ftiren bir Lambda fonksiyonu yaz\u0131n.<\/li>\n<li>Terraform ile basit bir altyap\u0131 olu\u015fturun.<\/li>\n<\/ul>\n<h3>\u0130leri Seviye:<\/h3>\n<ul>\n<li>GitHub Actions kullanarak CI\/CD pipeline&#039;\u0131 olu\u015fturun.<\/li>\n<li>Uygulaman\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in IAM rollerini ve politikalar\u0131n\u0131 yap\u0131land\u0131r\u0131n.<\/li>\n<li>Uygulaman\u0131z\u0131n performans\u0131n\u0131 optimize edin.<\/li>\n<\/ul>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, AWS&#039;de serverless bir ToDo uygulamas\u0131 geli\u015ftirmenin temel ad\u0131mlar\u0131n\u0131 anlatt\u0131k.  Serverless mimari, Terraform ve GitHub Actions kullanarak, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve kolay y\u00f6netilebilir bir uygulama olu\u015fturabilirsiniz.  Bu yakla\u015f\u0131m, geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r ve maliyetleri azalt\u0131r.  Unutmay\u0131n ki g\u00fcvenlik ve performans optimizasyonu her zaman \u00f6nemlidir. Uygulaman\u0131z\u0131 g\u00fcvence alt\u0131na almak ve performans\u0131n\u0131 en \u00fcst d\u00fczeye \u00e7\u0131karmak i\u00e7in gerekli \u00f6nlemleri al\u0131n.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li><b>Serverless mimarinin maliyeti nedir?<\/b> Serverless mimari, kullan\u0131m\u0131 bazl\u0131 \u00f6deme modeline sahiptir. Sadece kulland\u0131\u011f\u0131n\u0131z kaynaklar i\u00e7in \u00f6deme yapars\u0131n\u0131z.<\/li>\n<li><b>Serverless mimari \u00f6l\u00e7eklenebilir mi?<\/b> Evet, serverless mimari otomatik olarak \u00f6l\u00e7eklenir.  Kullan\u0131c\u0131 talebindeki art\u0131\u015fa g\u00f6re kaynaklar otomatik olarak artar.<\/li>\n<li><b>Terraform ne i\u015fe yarar?<\/b> Terraform, altyap\u0131n\u0131z\u0131 kod olarak tan\u0131mlaman\u0131za ve y\u00f6netmenize olanak sa\u011flayan bir IaC arac\u0131d\u0131r.<\/li>\n<li><b>GitHub Actions nedir?<\/b> GitHub Actions, kodunuzun s\u00fcrekli entegrasyon ve da\u011f\u0131t\u0131m\u0131n\u0131 otomatikle\u015ftiren bir CI\/CD platformudur.<\/li>\n<li><b>Uygulaman\u0131n g\u00fcvenli\u011fi nas\u0131l sa\u011flan\u0131r?<\/b> IAM rolleri, politikalar ve veri \u015fifrelemesi kullan\u0131larak uygulaman\u0131n g\u00fcvenli\u011fi sa\u011flanabilir.<\/li>\n<\/ul>\n<p>Yazar: Fatih Soysal<\/p>\n<p><\/code><\/p>\n","protected":false},"excerpt":{"rendered":"AWS&#039;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile Bir ToDo uygulamas\u0131 geli\u015ftirmek basit gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik,&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":[874],"tags":[],"class_list":{"0":"post-29894","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-server","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&#039;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile<\/title>\n<meta name=\"description\" content=\"Bir ToDo uygulamas\u0131 geli\u015ftirmek basit gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik, g\u00fcvenlik ve bak\u0131m gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmak olduk\u00e7a karma\u015f\u0131k olabilir. Bu makalede, AWS&#039;nin sundu\u011fu serverless mimarisi, Terraform&#039;un altyap\u0131 y\u00f6netimi yetenekleri ve GitHub Actions&#039;\u0131n s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) g\u00fcc\u00fcyle nas\u0131l basit ve g\u00fc\u00e7l\u00fc bir ToDo uygulamas\u0131 olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz. Bu uygulama sayesinde, sunucu y\u00f6netimi derdinden kurtulup, kodunuza odaklanabilirsiniz.\" \/>\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\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS&#039;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile\" \/>\n<meta property=\"og:description\" content=\"Bir ToDo uygulamas\u0131 geli\u015ftirmek basit gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik, g\u00fcvenlik ve bak\u0131m gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmak olduk\u00e7a karma\u015f\u0131k olabilir. Bu makalede, AWS&#039;nin sundu\u011fu serverless mimarisi, Terraform&#039;un altyap\u0131 y\u00f6netimi yetenekleri ve GitHub Actions&#039;\u0131n s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) g\u00fcc\u00fcyle nas\u0131l basit ve g\u00fc\u00e7l\u00fc bir ToDo uygulamas\u0131 olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz. Bu uygulama sayesinde, sunucu y\u00f6netimi derdinden kurtulup, kodunuza odaklanabilirsiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-21T05:30: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=\"8 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"AWS&#8217;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile\",\"datePublished\":\"2025-09-21T05:30:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/\"},\"wordCount\":1392,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Server\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/\",\"name\":\"AWS'de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-21T05:30:24+00:00\",\"description\":\"Bir ToDo uygulamas\u0131 geli\u015ftirmek basit gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik, g\u00fcvenlik ve bak\u0131m gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmak olduk\u00e7a karma\u015f\u0131k olabilir. Bu makalede, AWS'nin sundu\u011fu serverless mimarisi, Terraform'un altyap\u0131 y\u00f6netimi yetenekleri ve GitHub Actions'\u0131n s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) g\u00fcc\u00fcyle nas\u0131l basit ve g\u00fc\u00e7l\u00fc bir ToDo uygulamas\u0131 olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz. Bu uygulama sayesinde, sunucu y\u00f6netimi derdinden kurtulup, kodunuza odaklanabilirsiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS&#8217;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile\"}]},{\"@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'de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile","description":"Bir ToDo uygulamas\u0131 geli\u015ftirmek basit gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik, g\u00fcvenlik ve bak\u0131m gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmak olduk\u00e7a karma\u015f\u0131k olabilir. Bu makalede, AWS'nin sundu\u011fu serverless mimarisi, Terraform'un altyap\u0131 y\u00f6netimi yetenekleri ve GitHub Actions'\u0131n s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) g\u00fcc\u00fcyle nas\u0131l basit ve g\u00fc\u00e7l\u00fc bir ToDo uygulamas\u0131 olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz. Bu uygulama sayesinde, sunucu y\u00f6netimi derdinden kurtulup, kodunuza odaklanabilirsiniz.","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\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/","og_locale":"tr_TR","og_type":"article","og_title":"AWS'de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile","og_description":"Bir ToDo uygulamas\u0131 geli\u015ftirmek basit gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik, g\u00fcvenlik ve bak\u0131m gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmak olduk\u00e7a karma\u015f\u0131k olabilir. Bu makalede, AWS'nin sundu\u011fu serverless mimarisi, Terraform'un altyap\u0131 y\u00f6netimi yetenekleri ve GitHub Actions'\u0131n s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) g\u00fcc\u00fcyle nas\u0131l basit ve g\u00fc\u00e7l\u00fc bir ToDo uygulamas\u0131 olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz. Bu uygulama sayesinde, sunucu y\u00f6netimi derdinden kurtulup, kodunuza odaklanabilirsiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-21T05:30:24+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\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"AWS&#8217;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile","datePublished":"2025-09-21T05:30:24+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/"},"wordCount":1392,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Server"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/","url":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/","name":"AWS'de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-21T05:30:24+00:00","description":"Bir ToDo uygulamas\u0131 geli\u015ftirmek basit gibi g\u00f6r\u00fcnse de, \u00f6l\u00e7eklenebilirlik, g\u00fcvenlik ve bak\u0131m gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmak olduk\u00e7a karma\u015f\u0131k olabilir. Bu makalede, AWS'nin sundu\u011fu serverless mimarisi, Terraform'un altyap\u0131 y\u00f6netimi yetenekleri ve GitHub Actions'\u0131n s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) g\u00fcc\u00fcyle nas\u0131l basit ve g\u00fc\u00e7l\u00fc bir ToDo uygulamas\u0131 olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz. Bu uygulama sayesinde, sunucu y\u00f6netimi derdinden kurtulup, kodunuza odaklanabilirsiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/awsde-serverless-todo-uygulamasi-terraform-ve-github-actions-ile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS&#8217;de Serverless ToDo Uygulamas\u0131: Terraform ve GitHub Actions ile"}]},{"@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\/29894","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=29894"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29894\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=29894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=29894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=29894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}