{"id":15451,"date":"2023-09-19T13:07:56","date_gmt":"2023-09-19T07:37:56","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=15451"},"modified":"2025-11-20T15:53:20","modified_gmt":"2025-11-20T10:23:20","slug":"applications-hosting-on-ecs","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2023\/09\/19\/applications-hosting-on-ecs\/","title":{"rendered":"Applications Hosting  on ECS"},"content":{"rendered":"\r\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">Applications hosting on Amazon Elastic Container Service (ECS) is a cloud computing solution provided by AWS that enables organizations to manage, scale, and deploy containerized applications with ease. ECS simplifies container deployment and management, enabling developers to concentrate on creating and running their applications.<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">In this blog, we will create a repository, copy an image to Amazon Elastic Container Registry (ECR), define a task, and set up an ECS cluster to host an application on<a href=\"https:\/\/opstree.com\/blog\/2023\/12\/05\/ecs-capacity-provider-strategy\/\"> Amazon ECS<\/a>.<!--more--><\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Create a repo and Copy an Image in ECR<\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">Amazon ECR is a fully managed container registry service provided by Amazon Web Services (AWS). It allows you to store, manage, and deploy Docker container images. Please follow the below steps to create a repo in ECR and copy an image to that ECR.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 1:<\/strong> Open a web browser and log in to the AWS Management Console (<a href=\"https:\/\/aws.amazon.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/aws.amazon.com\/<\/a>) by using your AWS account credentials.<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 2:<\/strong> In the AWS Management Console, click on the &#8220;search&#8221; box at the top, and then type &#8220;ECR&#8221; and select &#8220;Elastic Container Registry&#8221;.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"665\" class=\"wp-image-15544\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/image-14.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 3:<\/strong> Now click on the Repositories option under Elastic Container Registry.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"437\" class=\"wp-image-15546\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/image-15.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 4:<\/strong> In the Amazon ECR dashboard, click the &#8220;Create repository&#8221; button to create your repository.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"339\" class=\"wp-image-15547\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/ecr2-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 5:<\/strong> Choose the visibility setting for your repository. It may be public or private. If we select private then Access will be managed by IAM and repository policy permissions while if we choose public then it will be Publicly visible and accessible for image pulls. By default it&#8217;s private.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"425\" class=\"wp-image-15548\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/ecr3-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 6:<\/strong> Now Enter a unique name for your ECR repository. This name will be part of the repository URI, so it should be unique within your AWS account and region.<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 7:<\/strong> Choose whether you want to allow or disallow image tag mutations. This setting determines whether image tags can be overwritten. By default, this setting is in the disabled state.<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 8: <\/strong>You can also enable image scanning that allows Amazon ECR to scan container images for software vulnerabilities. This will help improve the security of your images. By default, this in the disabled state.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"585\" class=\"wp-image-15549\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/image-16.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 9:<\/strong> You can use AWS KMS to encrypt images stored in this repository, by default it is disabled.<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 10:<\/strong> Now click on Create Repository and your repository will be created<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 11:<\/strong> Go to that repo and then click on view push commands and modify these commands as per your requirements like you can change your image name and tag.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"276\" class=\"wp-image-15550\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/ecr5-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Create a Task Definition<\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><br \/>A Task Definition is a configuration file that defines how a Docker container should run within a task. After creating a Task Definition, you can use it to launch tasks or define services in an ECS cluster. Tasks created from the same Task Definition will inherit its configuration and settings, ensuring consistency across your containerized applications. To create a task definition follow the below steps.<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 1:<\/strong> In the AWS Management Console, click on the &#8220;search&#8221; box at the top, and then type &#8220;ECS&#8221; and select &#8220;Elastic Container Service&#8221;.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"520\" class=\"wp-image-15551\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/td1-2.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 2:<\/strong> In the ECS dashboard, navigate to &#8216;Task Definitions&#8217; in the left navigation pane.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"420\" class=\"wp-image-15552\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/td2-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 3:<\/strong> Click the &#8220;Create new Task Definition&#8221; button. Here we have two options to create task definition. We can simply create a new task definition using UI or we can create a task definition using a JSON file.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"364\" class=\"wp-image-15554\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/td3-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 4: Create a new task definition using UI<\/strong><br \/>Click on Create a new task definition and then provide the name of the task in the Task definition family option.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"504\" class=\"wp-image-15555\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/td4-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Choose the launch type compatibility (EC2 or Fargate), operating system, CPU, and memory for your task depending on your use case.<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 5:<\/strong> You can create a new task execution role or select an existing one. This role is used by the container agent to make AWS API requests on your behalf.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"453\" class=\"wp-image-15556\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/td5-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 6:<\/strong> Now fill in the container details like<br \/><strong>Container Name:<\/strong> A unique name for the container.<br \/><strong>Image URI:<\/strong> The Docker image to use for the container (if the image is stored in ECR then you can copy the image URI from there).<br \/><strong>Port Mappings:<\/strong> If your container exposes any ports, map them to the host ports.<br \/><strong>Memory Limits:<\/strong> Set the soft and hard memory limits for the container.<br \/><strong>CPU Units:<\/strong> Specify CPU units for the container.<br \/><strong>Environment Variables (optional):<\/strong> Define any environment variables needed for your container.<br \/><strong>Volumes (optional): <\/strong>Attach any Amazon EFS volumes or other volumes to your container if required.<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 7:<\/strong> You can also set monitoring and tag your task definition, it&#8217;s optional and click on the create button.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"312\" class=\"wp-image-15557\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/td6-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"198\" class=\"wp-image-15559\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/td8-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 8:<\/strong> <strong>Create a new task definition using JSON file<\/strong><br \/>You can also create a JSON file to create a task definition. Just go on the ECS dashboard and then click on Create task definition with JSON.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"823\" height=\"606\" class=\"wp-image-15511\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/screenshot-from-2023-09-15-13-06-16.png?w=823\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p>Paste your JSON code and then click on the create button.<\/p>\r\n\r\n\r\n\r\n<p><strong>Sample JSON file:<\/strong><\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>{\r\n    \"family\": \"task-defination-name\",\r\n    \"containerDefinitions\": [\r\n        {\r\n            \"name\": \"container-name\",\r\n            \"image\": \"image-uri-from-ECR\",\r\n            \"cpu\": 256,\r\n            \"portMappings\": [\r\n                {\r\n                    \"name\": \"container-name-80-tcp\",\r\n                    \"containerPort\": 80,\r\n                    \"hostPort\": 80,\r\n                    \"protocol\": \"tcp\",\r\n                    \"appProtocol\": \"http\"\r\n                }\r\n            ],\r\n            \"essential\": true,\r\n            \"environment\": [],\r\n            \"environmentFiles\": [],\r\n            \"mountPoints\": [],\r\n            \"volumesFrom\": [],\r\n            \"ulimits\": [],\r\n        }\r\n    ],\r\n    \"executionRoleArn\": \"role-arn-should-be-here\",\r\n    \"networkMode\": \"bridge\",\r\n    \"requiresCompatibilities\": [\r\n        \"EC2\"\r\n    ],\r\n    \"cpu\": \"1024\",\r\n    \"memory\": \"3072\",\r\n    \"runtimePlatform\": {\r\n        \"cpuArchitecture\": \"X86_64\",\r\n        \"operatingSystemFamily\": \"LINUX\"\r\n    }\r\n}<\/code><\/pre>\r\n\r\n\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Create a Cluster<\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">A cluster in Amazon ECS is a logical grouping of container instances (EC2 instances or Fargate tasks) that are managed collectively to run containerized applications. Each cluster can be associated with one or more services and tasks, allowing you to organize and manage your containerized applications effectively. Please follow the below steps to create a cluster.<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 1:<\/strong> Search for Elastic Container Service and click on it.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"520\" class=\"wp-image-15560\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/td1-1-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 2:<\/strong> Click on clusters and create a cluster.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"237\" class=\"wp-image-15561\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/cluster2-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 3:<\/strong> Fill Cluster name, and choose infrastructure Here I am deploying an application on ECS using Amazon EC2 instances.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"513\" class=\"wp-image-15562\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/cluster6-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p>If you already have an Auto scaling group(ASG) then select that ASG otherwise create a new ASG by selecting EC2 instance type, desired capacity, operating system, and SSH key pair.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p><strong>Step 4:<\/strong> Select a VPC with multiple subnets in which you want to deploy your applications.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"513\" class=\"wp-image-15568\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/cluster6-1-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p>Monitoring and Tags are optional. When using Monitoring, there is a cost associated with it.<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 5:<\/strong> Now click on the Create button.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Create a service<\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">In Amazon Elastic Container Service (ECS), a service is a resource that manages and maintains a specified number of instances of a task definition. ECS services define how tasks should be managed, scaled, updated, and distributed across container instances within a cluster. Please follow the below steps to create a service.<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 1:<\/strong> In the ECS dashboard, navigate to the cluster where you want to create the service and Click the &#8220;Create&#8221; button in the &#8220;Services&#8221; tab.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"350\" class=\"wp-image-15574\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/screenshot-2023-09-19-124908.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 2:<\/strong> Choose a compute option as per your use case. Here I am choosing the launch type and then selects a launch type (EC2 or Fargate) that matches your cluster type.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"356\" class=\"wp-image-15570\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/service1-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 3:<\/strong> Select the task definition you want to run as a service and define the service name, service type, number of desired tasks, and deployment configuration.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"484\" class=\"wp-image-15564\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/service3-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 4:<\/strong> Configure load Balancer for the application that you want to deploy in this service. You can also configure auto-scaling options if needed.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"668\" class=\"wp-image-15584\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/screenshot-2023-09-19-130445.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"618\" class=\"wp-image-15578\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/screenshot-2023-09-19-125326-1.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p>Step 5: Now click on the Create button and your service will be created.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"618\" class=\"wp-image-15579\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/screenshot-2023-09-19-125925.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"336\" class=\"wp-image-15580\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/screenshot-2023-09-19-130058.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Step 6:<\/strong> Now go to your loadbalancer which you configured in your service and copy DNS name of that loadbalancer and try to hit on your browser and you can find your web service is working.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"393\" class=\"wp-image-15581\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/screenshot-2023-09-19-130206.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"393\" class=\"wp-image-15582\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/09\/screenshot-2023-09-19-130303.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">After creating the service, you can monitor its status and the running tasks in the ECS dashboard. The service will automatically maintain the desired number of tasks, as specified in the service configuration, ensuring they are running continuously.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Conclusion:<\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">ECS is a valuable service for modern application development and deployment in the AWS cloud. Hosting applications on ECS empowers organizations to leverage the benefits of containerization while simplifying the complexities of orchestration and infrastructure management. It provides a scalable and efficient platform for running containerized applications.<\/p>\r\n\r\n\r\n\r\n<p><strong>Blog Pundits: <a href=\"https:\/\/opstree.com\/blog\/\/author\/prakashjha9f558ddc78\/\"><strong>Prakash Jha<\/strong><\/a> and <a href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sandeep Rawat<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p><strong>OpsTree is an End-to-End <a href=\"https:\/\/opstree.com\/services\/\" target=\"_blank\" rel=\"noreferrer noopener\">DevOps Solution<\/a> Provider.<\/strong><\/p>\r\n<p><strong>Related Searches &#8211; <a href=\"https:\/\/opstree.com\/aws-consulting-services\/\" target=\"_blank\" rel=\"noopener\">AWS Consulting Services<\/a> | <a href=\"https:\/\/opstree.com\/services\/database-and-data-engineering\/\" target=\"_blank\" rel=\"noopener\">Database Migration Services<\/a>\u00a0<\/strong><\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\"><\/div>\r\n\r\n\r\n\r\n<ul class=\"wp-block-social-links aligncenter is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-twitter  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/twitter.com\/opstreedevops\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Twitter<\/span><\/a><\/li><\/ul>\r\n","protected":false},"excerpt":{"rendered":"<p>Introduction Applications hosting on Amazon Elastic Container Service (ECS) is a cloud computing solution provided by AWS that enables organizations to manage, scale, and deploy containerized applications with ease. ECS simplifies container deployment and management, enabling developers to concentrate on creating and running their applications. In this blog, we will create a repository, copy an &hellip; <a href=\"https:\/\/opstree.com\/blog\/2023\/09\/19\/applications-hosting-on-ecs\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Applications Hosting  on ECS&#8221;<\/span><\/a><\/p>\n","protected":false},"author":237746390,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[36349927],"tags":[44070,768739294,768739308,676319247,4996032],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-41d","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15451"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/237746390"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=15451"}],"version-history":[{"count":25,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15451\/revisions"}],"predecessor-version":[{"id":29934,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15451\/revisions\/29934"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=15451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=15451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=15451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}