[ ECS — III] ECS Terminoloji

Tahacan Atak
3 min readMay 11, 2021

--

ECS
Amazon Elastic Container Service (Amazon ECS), bir clusterdaki containerları çalıştırmayı, durdurmayı ve yönetmeyi kolaylaştıran, oldukça ölçeklenebilir, hızlı bir container yönetim hizmetidir. Containerlarınız, taskları çalıştırmak için kullandığınız bir task definitionda tanımlanır. Tasklarınızı ve ECS Servicelerinizi AWS Fargate tarafından yönetilen sunucusuz bir altyapı üzerinde çalıştırabilirsiniz. Alternatif olarak, altyapınız üzerinde daha fazla kontrol sahibi olmak için tasklarınızı ve ECS Servicelerinizi yönettiğiniz bir Amazon EC2 bulut sunucusu çalıştırabilirsiniz.Basit bir ifadeyle Docker containerlarınızı AWS platformu üzerinde isterseniz EC2 sunucularında ya da Fargate servisini kullanarak serverless yani sunucu yönetimini tamamen AWS ‘ye bırakarak dağıtmanızı ve yönetmenizi sağlayabilirsiniz.

CLUSTER
ECS Cluster, üzerinde taskları ve ECS Service’leri çalıştırabilmek için bir veya daha fazla EC2 instance kapsayabilirler ya da Fargate’in sağladığı serverless yapıda task ve ECS Service’leri çalıştırmak için kullanabiliriz. Fargate üzerinde çalıştırıldığı takdirde tüm kaynakları Fargate tarafından yönetilir.Cluster seçiminde mevcut bir VPC seçebilir veya yeni bir tane oluşturabilirsiniz.

ECS nesnelerinin şeması ve nasıl ilişkilendirildikleri

TASK DEFINITION
Task definitionlar çalıştıracağınız taskların kurallarını belirler. Çalıştıracağınız task veya taskın içindeki her bir containerın ne kadar CPU ve bellek kullanacağını, environment değişkenlerini,containerların port bilgilerini, task ın hangi IAM Role sahip olacağını, imagelarınızı barındırdığınız ECR veya DockerHub gibi repoların Urllerini, private repolar ise bunların authentication bilgileri task definitionlarda saklanır. Bir task definition’da birden fazla container tanımlayabilirsiniz. Bunun gibi bir çok detayı ilerleyen yazılarda task definitionı oluştururken tekrar değineceğiz.

TASK
Task Definitionlarda tanımladığınız kurallara göre çalışan containerlardır.

SERVICE
Bir Amazon ECS Service’i, ECS Clusterda eş zamanlı olarak task definitionda tanımlanan kurallara göre belirtilen sayıda tasklarınızı çalıştırmaya olanak tanır. Tasklardan herhangi birinin bir sebeple başarısız olması ya da durdurulması durumunda service’de istenilen sayıda task’ı sürdürmek için yeni bir task başlatır.

İsterseniz servislerinizi bir load balancer arkasında çalıştırabilirsiniz. Load Balanceri gelen trafiği ECS Service ile ilişkili tasklar arasında belirleyebileceğiniz kurallara göre dağıtır.

Bir service’in iki ECS Container Instance’ında dört task calıştırdığı bir ECS Cluster

CONTAINER INSTANCE ve CONTAINER AGENT
Container instance, üzerinde docker ve ECS container agent çalıştıran bir EC2 instancedır.
Amazon ECS Container agent ise container instanceların clustera bağlanmasında olanak tanır.

[ 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 — X] Github Projesini CodeCommit Reposuna Taşıma (Migrate a repo from GitHub to AWS CodeCommit) (✓)

[ 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) (✓)

--

--

No responses yet