[ ECS — VII] ECS Fargate Service Oluşturma
Bu bölümde [ ECS — V] ECS Fargate Task Definition Oluşturma yazısında oluşturduğumuz task definition ile fargate tipinde bir ECS service’i nasıl oluşturacağımızı inceleyeceğiz.
Service oluşturmaya başlamadan önce bu service nedir tasktan farkı nelerdir bunlara biraz değinelim. Service oluşturmaya başladığımızda farkedeceksiniz ki bir önceki yazımızda task oluştururken yaptıklarımıza benzer şeyler karşımıza çıkacak.

ECS Service Nedir?
ECS Service’ler, her zaman sizin belirlediğiniz sayıda taskın çalıştığından emin olmak istediğiniz senaryolarda kullanılır. Bir task herhangi bir neden ile başarısız olursa, ECS Service’i bu başarısız taskı değiştirir.Bu işlem, ECS service’de tanımladığınız istenen çalışan task sayısına ulaşıncaya kadar devam eder. ECS Service’ler belirtilen task definition’a göre istenilen sayıda taskın oluşturulmasından sorumludur. ECS Service’ler aynı zamanda taskların nasıl deploy edileceği gibi stratejileri de belirlemenize olanak sağlar.
ECS Service’ler genelde web uygulamaları gibi uzun süre çalışan uygulamalar için kullanılır. Task ise kısa süreli ihtiyaçlar için daha uygundur.
Şimdi oluşturduğumuz ecsSample-Cluster’a gidip create service diyerek servisimizi oluşturmaya başlayalım.

Bir önceki yazımızda task çalıştırırken yapmış olduğumuz gibi yine aynı şekilde fargate tipinde, oluşturduğumuz task definition ve clusterı seçip oluşturacağımız ECS Service’e bir isim veriyoruz.
Number of tasks değeri bu service’in kaç tane task’ın çalıştırılmasında sorumlu olacağını belirliyoruz.
Minumum healthy percent, maximum healthy percent değerlerine ve altta bulunan Rolling Update ve Blue/Green Deployment’ın ne olduğuna ilerki yazılarda deployment tiplerini incelerken değineceğiz o yüzden bu kısmı default değerlerde bırakalım.

Step 2: Network ayarlarını yapılandırdığımız kısım.Task oluştururken yaptığımızdan hiç bir farkı yok. Yine Http 80 portu açık bir security group’a ihtiyacımız var ve default VPC i seçerek public subnetler ile devam edelim.
Bu bölümde load balancer kullanmayacağımız için bu adımları geçerek review adımına gelelim.

Gördüğünüz gibi task oluştururken yaptığımızdan çok farklı bir şey yapmadık. Sonraki bölümlerde load balancer ve Blue Green Deployment kullandığımızda ECS Service’in diğer özelliklerini de görmüş olacaksınız.
Artık Create Service diyerek heyecanlı bekleyişimizi sonlandıralım :).

Oluşturduğumuz service istediğimiz gibi iki adet taskı çalıştırdı. Bu alanda desired, pending. running durumundaki task sayılarını, taskların durum geçmişini(events), loglarını, metriclerini, deployment durumları gibi bir çok özelliklerini görüntüleyebiliyoruz.
Şimdi service’ın nasıl çalıştığını daha iyi anlamak için running durumda olan tasklardan herhangi birinin içerisine girip onu durduralım.

Gördüğünüz gibi service’i oluştururken number of tasks değerinde iki task çalışmasını istediğimizi belirtmiştik. Bir taskı durdurduğumuzda service hemen yeni bir task çalıştırıyor. Eğer ikisini de durdurmuş olsaydık iki tane yeni task çalıştırmaya başlayacaktı.
Events tab’ından da bu durumların akışını görüntüleyebilirsiniz.

Bir önceki bölümde task calıştırırken yaptığımız gibi public iplerden çalışan tasklarımıza erişebiliriz. Bu bölüm bu kadardı. Bir sonraki bölümde bir load balancer oluştururarak servisimizi bir de load balancer arkasında çalışacak şekilde oluşturacağız.
[ ECS — II ] Kullanılacak Servislerin Tanıtımı ve IAM Rolleri Oluşturulması (✓)
[ ECS — III] ECS Terminoloji (✓)
[ ECS — IV] Docker Imageları ECR Repositorylerinde Yayınlama (✓)
[ ECS — V] ECS Fargate Task Definition Oluşturma (✓)
[ ECS — VI] ECS Fargate Task Çalıştırma (✓)
[ ECS — VII] ECS Fargate Service Oluşturma (✓)
[ ECS — VIII] Application Load Balancer ile ECS Fargate Service Oluşturma (✓)
[ ECS — IX] Rolling Update vs Blue/Green Deployment (✓)
[ ECS — XI] AWS CodeBuild Servisi ile ECS Fargate (✓)
[ ECS — XII] CodePipeline ile ECS Fargate(Rolling Update) (✓)
[ ECS — XIII] CodePipeline ile ECS Fargate(Blue/Green Deployment) (✓)