{"id":30117,"date":"2025-09-23T22:30:36","date_gmt":"2025-09-23T19:30:36","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/"},"modified":"2025-09-23T22:30:36","modified_gmt":"2025-09-23T19:30:36","slug":"flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/","title":{"rendered":"Flask Uygulamalar\u0131: GitHub&#8217;dan AWS ECS&#8217;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m"},"content":{"rendered":"<p>Flask Uygulamalar\u0131: GitHub&#8217;dan AWS ECS&#8217;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m<\/p>\n<p>Bu makale, Flask uygulamalar\u0131n\u0131z\u0131 GitHub&#8217;dan AWS ECS (Elastic Container Service) ortam\u0131na Docker ve Docker Hub kullanarak ad\u0131m ad\u0131m nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r.  Modern web uygulamalar\u0131 i\u00e7in tercih edilen bu y\u00f6ntem, \u00f6l\u00e7eklenebilirlik, g\u00fcvenilirlik ve kolay y\u00f6netim sa\u011flar.  Ancak, bu s\u00fcrecin karma\u015f\u0131kl\u0131\u011f\u0131 yeni ba\u015flayanlar i\u00e7in zorlay\u0131c\u0131 olabilir. Bu nedenle, makaleyi ad\u0131m ad\u0131m takip ederek, konuyu ad\u0131m ad\u0131m kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.<\/p>\n<h2>Temel Kavramlar: Docker, Docker Hub ve AWS ECS Nedir?<\/h2>\n<p>\u00d6ncelikle,  bu da\u011f\u0131t\u0131m s\u00fcrecinin temel ta\u015flar\u0131n\u0131 olu\u015fturan Docker, Docker Hub ve AWS ECS kavramlar\u0131n\u0131 anlamam\u0131z gerekmektedir.  Docker, uygulamalar\u0131n\u0131z\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 i\u00e7eren kapsay\u0131c\u0131lar (container) olu\u015fturman\u0131za olanak sa\u011flayan bir platformdur. Bu kapsay\u0131c\u0131lar, farkl\u0131 ortamlarda tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmay\u0131 garanti eder.  Docker Hub ise, bu Docker kapsay\u0131c\u0131lar\u0131n\u0131 depolamak ve payla\u015fmak i\u00e7in kullan\u0131lan bir bulut tabanl\u0131 depolama hizmetidir. Son olarak, AWS ECS, Amazon Web Services&#8217;in sunmu\u015f oldu\u011fu, kapsay\u0131c\u0131 tabanl\u0131 uygulamalar\u0131n\u0131z\u0131 y\u00f6netmenizi ve \u00e7al\u0131\u015ft\u0131rman\u0131z\u0131 sa\u011flayan bir orkestrasyon hizmetidir. Ba\u015fka bir deyi\u015fle, Docker kapsay\u0131c\u0131lar\u0131n\u0131z\u0131 AWS \u00fczerinde y\u00f6netebilmenizi sa\u011flar.<\/p>\n<p>Bu \u00fc\u00e7 teknolojinin birlikte \u00e7al\u0131\u015fmas\u0131, uygulamalar\u0131n\u0131z\u0131n geli\u015ftirme, test ve \u00fcretim ortamlar\u0131nda sorunsuz bir \u015fekilde da\u011f\u0131t\u0131lmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.  \u00d6rne\u011fin, geli\u015ftirme ortam\u0131n\u0131zda \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z Docker kapsay\u0131c\u0131s\u0131n\u0131, Docker Hub&#8217;a y\u00fckleyip, daha sonra AWS ECS \u00fczerinden \u00fcretim ortam\u0131nda \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu da zamandan ve kaynaklardan tasarruf etmenizi sa\u011flar.  Bu s\u00fcre\u00e7, s\u00fcrekli entegrasyon ve s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerine uygundur ve  uygulamalar\u0131n\u0131z\u0131n daha h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde g\u00fcncellenmesini sa\u011flar.<\/p>\n<h2>GitHub Deposunu Haz\u0131rlama: Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>\u0130lk ad\u0131m, Flask uygulaman\u0131z\u0131n kodunu i\u00e7eren bir GitHub deposu olu\u015fturmakt\u0131r.  E\u011fer hen\u00fcz bir GitHub hesab\u0131n\u0131z yoksa, (https:\/\/github.com\/) adresinden \u00fccretsiz bir hesap olu\u015fturabilirsiniz.  Depoyu olu\u015fturduktan sonra, Flask uygulaman\u0131z\u0131n t\u00fcm dosyalar\u0131n\u0131 (<code>app.py<\/code>, <code>requirements.txt<\/code>, <code>Dockerfile<\/code> vb.) depoya y\u00fckleyin.  <code>requirements.txt<\/code> dosyas\u0131, uygulaman\u0131z\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (\u00f6rne\u011fin, Flask, SQLAlchemy) listelemelidir.  <code>Dockerfile<\/code> dosyas\u0131 ise, Docker kapsay\u0131c\u0131n\u0131z\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 tan\u0131mlar. <\/p>\n<p>Bu ad\u0131mda, kodunuzun versiyon kontrol\u00fc alt\u0131nda olmas\u0131 olduk\u00e7a \u00f6nemlidir. Git kullanarak d\u00fczenli olarak commitler yapmal\u0131 ve de\u011fi\u015fiklikleri takip etmelisiniz.  Bu, hata ay\u0131klama ve geri d\u00f6n\u00fc\u015f s\u00fcre\u00e7lerini kolayla\u015ft\u0131r\u0131r.  Ayr\u0131ca,  GitHub&#8217;\u0131n sundu\u011fu \u00e7e\u015fitli \u00f6zelliklerden (\u00f6rne\u011fin, pull request&#8217;ler, issue tracking) faydalanarak daha etkili bir ekip \u00e7al\u0131\u015fmas\u0131 sa\u011flayabilirsiniz.  Kod kalitesi ve g\u00fcvenli\u011fine \u00f6zen g\u00f6stermeyi unutmay\u0131n;  linting ara\u00e7lar\u0131 ve g\u00fcvenlik taramalar\u0131 kullanman\u0131z \u00f6nerilir.<\/p>\n<h3>Dockerfile Olu\u015fturma: Ad\u0131m Ad\u0131m Rehber<\/h3>\n<p>Uygulaman\u0131z i\u00e7in bir <code>Dockerfile<\/code> olu\u015fturman\u0131z gerekmektedir.  Bu dosya, Docker kapsay\u0131c\u0131n\u0131z\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 Docker&#8217;a ad\u0131m ad\u0131m anlat\u0131r.  A\u015fa\u011f\u0131da basit bir <code>Dockerfile<\/code> \u00f6rne\u011fi bulunmaktad\u0131r:<\/p>\n<pre><code class=\"language-dockerfile\"># Python 3.9 tabanl\u0131 bir image kullan\u0131yoruz\nFROM python:3.9-slim-buster\n\n# Uygulama dosyalar\u0131n\u0131n kopyalanaca\u011f\u0131 \u00e7al\u0131\u015fma dizinini belirliyoruz\nWORKDIR \/app\n\n# requirements.txt dosyas\u0131n\u0131 kopyal\u0131yoruz\nCOPY requirements.txt .\n\n# Ba\u011f\u0131ml\u0131l\u0131klar\u0131 kuruyoruz\nRUN pip install --no-cache-dir -r requirements.txt\n\n# Uygulama dosyalar\u0131n\u0131 kopyal\u0131yoruz\nCOPY . .\n\n# Uygulaman\u0131n \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131 komutu belirliyoruz\nCMD [\"python\", \"app.py\"]<\/pre>\n<p><\/code><\/p>\n<p>Bu <code>Dockerfile<\/code>,  Python 3.9 tabanl\u0131 bir image'\u0131 temel al\u0131r, ba\u011f\u0131ml\u0131l\u0131klar\u0131 kurar ve uygulaman\u0131z\u0131 \u00e7al\u0131\u015ft\u0131r\u0131r.  Daha geli\u015fmi\u015f <code>Dockerfile<\/code> \u00f6rnekleri i\u00e7in Docker dok\u00fcmanlar\u0131na (https:\/\/docs.docker.com\/) bakabilirsiniz.  \u00d6rne\u011fin, multi-stage build kullanarak image boyutunu k\u00fc\u00e7\u00fcltmek performans\u0131 art\u0131rabilir.  Ayr\u0131ca, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 minimize etmek i\u00e7in temel image'\u0131n\u0131z\u0131 dikkatlice se\u00e7meniz gerekir.<\/p>\n<h2>Docker Kapsay\u0131c\u0131s\u0131n\u0131 Olu\u015fturma ve Docker Hub'a Y\u00fckleme<\/h2>\n<p><code>Dockerfile<\/code>'\u0131 olu\u015fturduktan sonra,  Docker kapsay\u0131c\u0131n\u0131z\u0131 olu\u015fturabilirsiniz.  Bunun i\u00e7in, terminalinizden <code>docker build -t <depo_ad\u0131n\u0131z>\/<image_ad\u0131n\u0131z> .<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.  <code><depo_ad\u0131n\u0131z><\/code> ve <code><image_ad\u0131n\u0131z><\/code> yerlerine kendi depo ad\u0131n\u0131z\u0131 ve image ad\u0131n\u0131z\u0131 yazmal\u0131s\u0131n\u0131z.  \u00d6rne\u011fin,  <code>docker build -t fatihsoysal\/flask-app .<\/code> komutu,  <code>fatihsoysal<\/code> adl\u0131 Docker Hub deponuzda <code>flask-app<\/code> adl\u0131 bir image olu\u015fturur.<\/p>\n<p>Image'\u0131 olu\u015fturduktan sonra, Docker Hub hesab\u0131n\u0131za giri\u015f yaparak image'\u0131 y\u00fckleyebilirsiniz.  <code>docker login<\/code> komutu ile Docker Hub'a giri\u015f yap\u0131n ve daha sonra <code>docker push <depo_ad\u0131n\u0131z>\/<image_ad\u0131n\u0131z><\/code> komutu ile image'\u0131 y\u00fckleyin.  Docker Hub,  image'lar\u0131n\u0131z\u0131 depolamak ve payla\u015fmak i\u00e7in g\u00fcvenli bir ortam sa\u011flar.  Farkl\u0131 versiyonlar\u0131 (tags) kullanarak image'lar\u0131n\u0131z\u0131 y\u00f6netebilir ve  uygulamalar\u0131n\u0131z\u0131n farkl\u0131 s\u00fcr\u00fcmlerini kolayca da\u011f\u0131tabilirsiniz.   Image'lar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00fcncellemeniz ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 gidermeniz \u00f6nemlidir.  Bu, uygulaman\u0131z\u0131n g\u00fcvenli\u011fini ve istikrar\u0131n\u0131 sa\u011flar.<\/p>\n<h2>AWS ECS K\u00fcmesi Olu\u015fturma: Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>\u015eimdi, AWS konsolunu kullanarak bir ECS k\u00fcmesi (cluster) olu\u015fturman\u0131z gerekiyor.  Bir ECS k\u00fcmesi, kapsay\u0131c\u0131lar\u0131n\u0131z\u0131n \u00e7al\u0131\u015faca\u011f\u0131 bir grup AWS kaynaklar\u0131n\u0131 temsil eder.  ECS k\u00fcmesi olu\u015ftururken,  \u00f6rne\u011fin, EC2 instance'lar\u0131 kullanabilirsiniz (Fargate kullan\u0131m\u0131 da m\u00fcmk\u00fcnd\u00fcr). EC2 instance'lar\u0131 kullan\u0131yorsan\u0131z,  instance'lar\u0131n konfig\u00fcrasyonunu do\u011fru bir \u015fekilde yapman\u0131z ve  yeterli kaynak sa\u011flaman\u0131z gerekir.  Bu, uygulaman\u0131z\u0131n performans\u0131n\u0131 do\u011frudan etkiler.  Fargate ise, sunucu y\u00f6netiminden sizi kurtaran,  tamamen y\u00f6netilen bir servis sunmaktad\u0131r.<\/p>\n<p>K\u00fcmeyi olu\u015fturduktan sonra,  bir servis (service) tan\u0131mlaman\u0131z gerekir.  Servis,  Docker image'\u0131n\u0131z\u0131n nas\u0131l ve ka\u00e7 kopyas\u0131n\u0131n \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 tan\u0131mlar.  Servis tan\u0131m\u0131,  Docker Hub'da bulunan image'\u0131n\u0131za i\u015faret etmelidir.  Ayr\u0131ca,  servis i\u00e7in port mapping'i do\u011fru bir \u015fekilde ayarlaman\u0131z gerekir.  Bu,  uygulaman\u0131z\u0131n d\u0131\u015f d\u00fcnyayla nas\u0131l ileti\u015fim kuraca\u011f\u0131n\u0131 belirler.  G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 da do\u011fru bir \u015fekilde konfig\u00fcre etmeniz, uygulaman\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak a\u00e7\u0131s\u0131ndan \u00e7ok \u00f6nemlidir.<\/p>\n<h3>AWS ECS Servis Tan\u0131mlamas\u0131: \u00d6rnek Kod<\/h3>\n<p>Bir AWS ECS servisi i\u00e7in bir JSON tan\u0131mlama dosyas\u0131 a\u015fa\u011f\u0131daki gibi olabilir:<\/p>\n<pre><code class=\"language-json\">{\n  \"taskDefinition\": \"arn:aws:ecs:us-east-1:123456789012:task-definition\/flask-app:1\",\n  \"cluster\": \"my-cluster\",\n  \"desiredCount\": 2,\n  \"launchType\": \"FARGATE\" \/\/ veya \"EC2\"\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>taskDefinition<\/code>,  Docker image'\u0131n\u0131z\u0131 ve di\u011fer konfig\u00fcrasyonlar\u0131 i\u00e7eren bir task definition'\u0131 tan\u0131mlar.  <code>cluster<\/code>,  servisin \u00e7al\u0131\u015faca\u011f\u0131 ECS k\u00fcmesini belirtir.  <code>desiredCount<\/code>,  \u00e7al\u0131\u015ft\u0131r\u0131lacak kapsay\u0131c\u0131 say\u0131s\u0131n\u0131 belirtir. <code>launchType<\/code>, Fargate (sunucu y\u00f6netiminden sorumlu olmaman\u0131z i\u00e7in \u00f6nerilir) veya EC2 (daha fazla \u00f6zelle\u015ftirme se\u00e7ene\u011fi sunar) aras\u0131nda se\u00e7im yap\u0131lmas\u0131n\u0131 sa\u011flar.  Daha detayl\u0131 ECS servis tan\u0131mlamalar\u0131 i\u00e7in AWS dok\u00fcmanlar\u0131n\u0131 inceleyebilirsiniz. <\/p>\n<h2>\u0130leri D\u00fczey Konular: CI\/CD ve \u00d6l\u00e7eklendirme<\/h2>\n<p>Uygulaman\u0131z\u0131 AWS ECS'ye ba\u015far\u0131yla da\u011f\u0131tt\u0131ktan sonra,  s\u00fcrekli entegrasyon ve s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD)  s\u00fcre\u00e7lerini kurarak  da\u011f\u0131t\u0131m s\u00fcrecinizi otomatikle\u015ftirebilirsiniz.  GitHub Actions veya AWS CodePipeline gibi ara\u00e7lar kullanarak,  kod de\u011fi\u015fiklikleri her yap\u0131ld\u0131\u011f\u0131nda uygulaman\u0131z\u0131n otomatik olarak yeniden da\u011f\u0131t\u0131m\u0131n\u0131 sa\u011flayabilirsiniz.  Bu,  da\u011f\u0131t\u0131m s\u00fcrecinizi h\u0131zland\u0131r\u0131r ve hatalar\u0131 azalt\u0131r.  Ayr\u0131ca,  uygulaman\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini art\u0131rmak i\u00e7in  otomatik \u00f6l\u00e7eklendirme stratejileri kullanabilirsiniz.  AWS ECS,  uygulaman\u0131z\u0131n y\u00fck\u00fcne ba\u011fl\u0131 olarak otomatik olarak kapsay\u0131c\u0131 say\u0131s\u0131n\u0131 art\u0131r\u0131p azaltman\u0131za olanak tan\u0131r.  Bu,  uygulaman\u0131z\u0131n performans\u0131n\u0131 ve g\u00fcvenilirli\u011fini art\u0131r\u0131r. <\/p>\n<p>Ayr\u0131ca,  log y\u00f6netimi ve izleme (monitoring) sistemleri kurarak uygulaman\u0131z\u0131n performans\u0131n\u0131 ve sa\u011fl\u0131\u011f\u0131n\u0131 izleyebilirsiniz.  Amazon CloudWatch gibi ara\u00e7lar kullanarak,  uygulaman\u0131z\u0131n performans metriklerini, loglar\u0131n\u0131 ve di\u011fer verilerini izleyebilirsiniz.  Bu veriler,  uygulaman\u0131z\u0131n performans\u0131n\u0131 optimize etmenize ve olas\u0131 sorunlar\u0131 \u00f6nceden tespit etmenize yard\u0131mc\u0131 olur.  Bu a\u015fama, ileri seviyede bir bilgi birikimi gerektirir ve uygulaman\u0131z\u0131n b\u00fcy\u00fckl\u00fc\u011f\u00fc ve karma\u015f\u0131kl\u0131\u011f\u0131na g\u00f6re farkl\u0131 yakla\u015f\u0131mlar kullan\u0131labilir.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu makalede, Flask uygulamalar\u0131n\u0131z\u0131 GitHub'dan AWS ECS'ye Docker ve Docker Hub kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klad\u0131k.  Bu s\u00fcre\u00e7,  uygulamalar\u0131n\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini, g\u00fcvenilirli\u011fini ve y\u00f6netimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir.  Ancak,  bu s\u00fcrecin farkl\u0131 a\u015famalar\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz zorluklar ve olas\u0131 hatalar vard\u0131r.  Bu nedenle,  her ad\u0131m\u0131 dikkatlice takip etmeli ve olas\u0131 sorunlara kar\u015f\u0131 haz\u0131rl\u0131kl\u0131 olmal\u0131s\u0131n\u0131z.  Daha fazla bilgi i\u00e7in AWS ve Docker dok\u00fcmanlar\u0131n\u0131 inceleyebilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li><b>Soru:<\/b>  Docker Hub'da private repo kullanmak daha g\u00fcvenli midir?<\/li>\n<li><b>Cevap:<\/b> Evet, public repo'lara k\u0131yasla private repo'lar daha g\u00fcvenlidir \u00e7\u00fcnk\u00fc kodunuza eri\u015fimi yaln\u0131zca yetkilendirilmi\u015f ki\u015filerle s\u0131n\u0131rlar.  \u00d6zellikle hassas veriler i\u00e7eren uygulamalar i\u00e7in private repo kullan\u0131lmas\u0131 \u00f6nerilir.<\/li>\n<li><b>Soru:<\/b>  AWS ECS'de Fargate ve EC2 aras\u0131ndaki fark nedir?<\/li>\n<li><b>Cevap:<\/b> Fargate, sunucu y\u00f6netiminden sizi kurtaran tamamen y\u00f6netilen bir hizmettir. EC2 ise, sunucular\u0131n\u0131z\u0131 kendi y\u00f6netiminize alman\u0131z gerekti\u011fi anlam\u0131na gelir.  Fargate, daha basit ve h\u0131zl\u0131 bir da\u011f\u0131t\u0131m sa\u011flar, ancak EC2 daha fazla \u00f6zelle\u015ftirme imkan\u0131 sunar.<\/li>\n<li><b>Soru:<\/b>  CI\/CD s\u00fcre\u00e7lerini nas\u0131l otomatikle\u015ftirebilirim?<\/li>\n<li><b>Cevap:<\/b> GitHub Actions, AWS CodePipeline veya Jenkins gibi ara\u00e7lar\u0131 kullanarak CI\/CD s\u00fcre\u00e7lerini otomatikle\u015ftirebilirsiniz.  Bu ara\u00e7lar, kod de\u011fi\u015fikliklerinizi alg\u0131lar, uygulaman\u0131z\u0131 test eder ve otomatik olarak da\u011f\u0131t\u0131m\u0131n\u0131 sa\u011flar.<\/li>\n<li><b>Soru:<\/b> Uygulamam\u0131n performans\u0131n\u0131 nas\u0131l izleyebilirim?<\/li>\n<li><b>Cevap:<\/b> Amazon CloudWatch, Datadog veya Prometheus gibi ara\u00e7lar kullanarak uygulaman\u0131z\u0131n performans\u0131n\u0131, loglar\u0131n\u0131 ve di\u011fer verilerini izleyebilirsiniz. Bu ara\u00e7lar, performans sorunlar\u0131n\u0131 tespit etmenize ve performans\u0131 optimize etmenize yard\u0131mc\u0131 olur.<\/li>\n<\/ul>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"Flask Uygulamalar\u0131: GitHub&#8217;dan AWS ECS&#8217;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m Bu makale, Flask uygulamalar\u0131n\u0131z\u0131 GitHub&#8217;dan AWS ECS&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":[1407],"tags":[],"class_list":{"0":"post-30117","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-docker","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>Flask Uygulamalar\u0131: GitHub&#039;dan AWS ECS&#039;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m<\/title>\n<meta name=\"description\" content=\"Bu makale, Flask uygulamalar\u0131n\u0131z\u0131 GitHub&#039;dan AWS ECS (Elastic Container Service) ortam\u0131na Docker ve Docker Hub kullanarak ad\u0131m ad\u0131m nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Modern web uygulamalar\u0131 i\u00e7in tercih edilen bu y\u00f6ntem, \u00f6l\u00e7eklenebilirlik, g\u00fcvenilirlik ve kolay y\u00f6netim sa\u011flar. Ancak, bu s\u00fcrecin karma\u015f\u0131kl\u0131\u011f\u0131 yeni ba\u015flayanlar i\u00e7in zorlay\u0131c\u0131 olabilir. Bu nedenle, makaleyi ad\u0131m ad\u0131m takip ederek, konuyu ad\u0131m ad\u0131m kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.\" \/>\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\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flask Uygulamalar\u0131: GitHub&#039;dan AWS ECS&#039;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m\" \/>\n<meta property=\"og:description\" content=\"Bu makale, Flask uygulamalar\u0131n\u0131z\u0131 GitHub&#039;dan AWS ECS (Elastic Container Service) ortam\u0131na Docker ve Docker Hub kullanarak ad\u0131m ad\u0131m nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Modern web uygulamalar\u0131 i\u00e7in tercih edilen bu y\u00f6ntem, \u00f6l\u00e7eklenebilirlik, g\u00fcvenilirlik ve kolay y\u00f6netim sa\u011flar. Ancak, bu s\u00fcrecin karma\u015f\u0131kl\u0131\u011f\u0131 yeni ba\u015flayanlar i\u00e7in zorlay\u0131c\u0131 olabilir. Bu nedenle, makaleyi ad\u0131m ad\u0131m takip ederek, konuyu ad\u0131m ad\u0131m kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-23T19:30:36+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=\"9 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Flask Uygulamalar\u0131: GitHub&#8217;dan AWS ECS&#8217;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m\",\"datePublished\":\"2025-09-23T19:30:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/\"},\"wordCount\":1633,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Docker\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/\",\"name\":\"Flask Uygulamalar\u0131: GitHub'dan AWS ECS'ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-23T19:30:36+00:00\",\"description\":\"Bu makale, Flask uygulamalar\u0131n\u0131z\u0131 GitHub'dan AWS ECS (Elastic Container Service) ortam\u0131na Docker ve Docker Hub kullanarak ad\u0131m ad\u0131m nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Modern web uygulamalar\u0131 i\u00e7in tercih edilen bu y\u00f6ntem, \u00f6l\u00e7eklenebilirlik, g\u00fcvenilirlik ve kolay y\u00f6netim sa\u011flar. Ancak, bu s\u00fcrecin karma\u015f\u0131kl\u0131\u011f\u0131 yeni ba\u015flayanlar i\u00e7in zorlay\u0131c\u0131 olabilir. Bu nedenle, makaleyi ad\u0131m ad\u0131m takip ederek, konuyu ad\u0131m ad\u0131m kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Flask Uygulamalar\u0131: GitHub&#8217;dan AWS ECS&#8217;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m\"}]},{\"@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":"Flask Uygulamalar\u0131: GitHub'dan AWS ECS'ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m","description":"Bu makale, Flask uygulamalar\u0131n\u0131z\u0131 GitHub'dan AWS ECS (Elastic Container Service) ortam\u0131na Docker ve Docker Hub kullanarak ad\u0131m ad\u0131m nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Modern web uygulamalar\u0131 i\u00e7in tercih edilen bu y\u00f6ntem, \u00f6l\u00e7eklenebilirlik, g\u00fcvenilirlik ve kolay y\u00f6netim sa\u011flar. Ancak, bu s\u00fcrecin karma\u015f\u0131kl\u0131\u011f\u0131 yeni ba\u015flayanlar i\u00e7in zorlay\u0131c\u0131 olabilir. Bu nedenle, makaleyi ad\u0131m ad\u0131m takip ederek, konuyu ad\u0131m ad\u0131m kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.","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\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/","og_locale":"tr_TR","og_type":"article","og_title":"Flask Uygulamalar\u0131: GitHub'dan AWS ECS'ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m","og_description":"Bu makale, Flask uygulamalar\u0131n\u0131z\u0131 GitHub'dan AWS ECS (Elastic Container Service) ortam\u0131na Docker ve Docker Hub kullanarak ad\u0131m ad\u0131m nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Modern web uygulamalar\u0131 i\u00e7in tercih edilen bu y\u00f6ntem, \u00f6l\u00e7eklenebilirlik, g\u00fcvenilirlik ve kolay y\u00f6netim sa\u011flar. Ancak, bu s\u00fcrecin karma\u015f\u0131kl\u0131\u011f\u0131 yeni ba\u015flayanlar i\u00e7in zorlay\u0131c\u0131 olabilir. Bu nedenle, makaleyi ad\u0131m ad\u0131m takip ederek, konuyu ad\u0131m ad\u0131m kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.","og_url":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-23T19:30:36+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"9 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Flask Uygulamalar\u0131: GitHub&#8217;dan AWS ECS&#8217;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m","datePublished":"2025-09-23T19:30:36+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/"},"wordCount":1633,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Docker"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/","url":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/","name":"Flask Uygulamalar\u0131: GitHub'dan AWS ECS'ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-23T19:30:36+00:00","description":"Bu makale, Flask uygulamalar\u0131n\u0131z\u0131 GitHub'dan AWS ECS (Elastic Container Service) ortam\u0131na Docker ve Docker Hub kullanarak ad\u0131m ad\u0131m nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. Modern web uygulamalar\u0131 i\u00e7in tercih edilen bu y\u00f6ntem, \u00f6l\u00e7eklenebilirlik, g\u00fcvenilirlik ve kolay y\u00f6netim sa\u011flar. Ancak, bu s\u00fcrecin karma\u015f\u0131kl\u0131\u011f\u0131 yeni ba\u015flayanlar i\u00e7in zorlay\u0131c\u0131 olabilir. Bu nedenle, makaleyi ad\u0131m ad\u0131m takip ederek, konuyu ad\u0131m ad\u0131m kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/flask-uygulamalari-githubdan-aws-ecsye-docker-ve-docker-hub-ile-dagitim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Flask Uygulamalar\u0131: GitHub&#8217;dan AWS ECS&#8217;ye Docker ve Docker Hub ile Da\u011f\u0131t\u0131m"}]},{"@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\/30117","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=30117"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30117\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}