{"id":8065,"date":"2020-03-10T03:22:39","date_gmt":"2020-03-10T08:22:39","guid":{"rendered":"https:\/\/sterling.com\/?p=8065"},"modified":"2020-03-10T03:22:39","modified_gmt":"2020-03-10T08:22:39","slug":"automate-application-deployment-using-aws-eks-kubernetes","status":"publish","type":"post","link":"https:\/\/sterling.com\/stargazer\/?p=8065","title":{"rendered":"Automate Application Deployment using AWS EKS (Kubernetes)"},"content":{"rendered":"<p>Written By Hitesh Kumar<\/p>\n<p><span style=\"font-size: 12pt;\"><strong>Objective:<\/strong><\/span><\/p>\n<p><span style=\"font-size: 12pt;\">The objective is to demonstrate the procedure to automate the application deployment using DevOps tools like AWS EKS (Elastic Kubernetes Services), AWS CodeCommit, AWS CodeBuild and AWS CodePipeline. The process includes but not limited to implementation, configuration of various tools. The outcome of this process is to automate the deployment process using CI\/CD (Continuous Integration and Continuous Deployment).<\/span><\/p>\n<h1><span style=\"font-size: 12pt;\">Components:<\/span><\/h1>\n<ul>\n<li><span style=\"font-size: 12pt;\">AWS EKS (Elastic Kubernetes Service)<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">AWS ECR (Elastic Container Registry)<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">AWS CodeCommit<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">AWS CodeBuild<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">AWS CodePipeline<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">AWS SES (Simple Email Service)<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Git (Local)<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Microsoft Visual Studio Code IDE (Local)<\/span><\/li>\n<\/ul>\n<h1><span style=\"font-size: 12pt;\">Process:<\/span><\/h1>\n<h2><span style=\"font-size: 12pt;\">Step 1: Creating an EKS cluster with 2 worker nodes<\/span><\/h2>\n<p><span style=\"font-size: 12pt;\">We need to setup an EKS cluster with 2 worker nodes. EKS is a managed service so the master node will be automatically managed by WNS. We will deploy EKS cluster by following guidelines provided by AWS:<\/span><\/p>\n<p><span style=\"font-size: 12pt;\"><a href=\"https:\/\/docs.aws.amazon.com\/eks\/latest\/userguide\/getting-started-console.html\">https:\/\/docs.aws.amazon.com\/eks\/latest\/userguide\/getting-started-console.html<\/a><\/span><\/p>\n<h3><span style=\"font-size: 12pt;\">EKS Cluster Architecture:<\/span><\/h3>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-8066\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/03\/EKS-Graphic.png\" alt=\"\" width=\"789\" height=\"907\" \/><\/p>\n<p><span style=\"font-size: 12pt;\">After setting up EKS Cluster, we need to setup the other components like AWS ECR &amp; Code management tools.<\/span><\/p>\n<h3><span style=\"font-size: 12pt;\">Step 2: AWS ECR (Elastic Container Registry)<\/span><\/h3>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-8068\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/03\/CodeCommit-Graphic.png\" alt=\"\" width=\"940\" height=\"294\" \/><br \/>\n<span style=\"font-size: 12pt;\">We need to setup a managed container registry ECR. Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. Amazon ECR is integrated with Amazon Elastic Container Service (ECS), simplifying your development to production workflow. Amazon ECR eliminates the need to operate your own container repositories or worry about scaling the underlying infrastructure.<\/span><\/p>\n<h3><span style=\"font-size: 12pt;\">Step 3: Setup CodeCommit, CodeBuild &amp; CodePipeline AWS CodeCommit:<\/span><\/h3>\n<p><span style=\"font-size: 12pt;\">AWS CodeCommit is a fully-managed source control service that hosts secure Git-based repositories. It makes it easy for teams to collaborate on code in a secure and highly scalable ecosystem.<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">CodeCommit eliminates the need to operate your own source control system or worry about scaling its infrastructure. You can use CodeCommit to securely store anything from source code to binaries, and it works seamlessly with your existing Git tools.<\/span><\/p>\n<h3><span style=\"font-size: 12pt;\">AWS CodeBuild:<\/span><\/h3>\n<p><span style=\"font-size: 12pt;\">AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy. With CodeBuild, you don\u2019t need to provision, manage, and scale your own build servers. CodeBuild scales continuously and processes multiple builds concurrently, so your builds are not left waiting in a queue. You can get started quickly by using pre-packaged build environments, or you can create custom build environments that use your own build tools. With CodeBuild, you are charged by the minute for the compute resources you use.<\/span><\/p>\n<h3><span style=\"font-size: 12pt;\">AWS CodePipeline:<\/span><\/h3>\n<p><span style=\"font-size: 12pt;\">AWS CodePipeline is a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates. CodePipeline automates the build, test, and deploy phases of your release process every time there is a code change, based on the release model you define. This enables you to rapidly and reliably deliver features and updates. You can easily integrate AWS CodePipeline with third-party services such as GitHub or with your own custom plugin. With AWS CodePipeline, you only pay for what you use. There are no upfront fees or long-term commitments.<\/span><\/p>\n<h2><span style=\"font-size: 12pt;\">Process Flow:<\/span><\/h2>\n<ul>\n<li><span style=\"font-size: 12pt;\">Developer develops the application<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Developer commits the code to CodeCommit<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Reviewer reviews the code and merges to respective branch<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">CodePipeline continuous monitors the respective branch and initiates the code build<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">CodeBuild builds the container image, tags and pushes the images to ECR<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">CodeBuild triggers the image roll-out to EKS cluster<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">EKS roll-out the updated image using rolling update<\/span><\/li>\n<\/ul>\n<h3><img decoding=\"async\" class=\"aligncenter size-full wp-image-8069\" src=\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2020\/03\/Web-Application.png\" alt=\"\" width=\"923\" height=\"485\" \/><\/h3>\n<h3><span style=\"font-size: 12pt;\">For deployment related assistance, contact the Sterling Cloud Team.<\/span><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Written By Hitesh Kumar Objective: The objective is to demonstrate the procedure to automate the application deployment using DevOps tools like AWS EKS (Elastic Kubernetes Services), AWS CodeCommit, AWS CodeBuild [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":8067,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,14,16,17],"tags":[],"class_list":["post-8065","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-cloud","category-managed-services","category-security"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Automate Application Deployment using AWS EKS (Kubernetes) - Sterling<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automate Application Deployment using AWS EKS (Kubernetes) - Sterling\" \/>\n<meta property=\"og:description\" content=\"Written By Hitesh Kumar Objective: The objective is to demonstrate the procedure to automate the application deployment using DevOps tools like AWS EKS (Elastic Kubernetes Services), AWS CodeCommit, AWS CodeBuild [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sterling.com\/stargazer\/?p=8065\" \/>\n<meta property=\"og:site_name\" content=\"Sterling\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/SterlingComp\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-10T08:22:39+00:00\" \/>\n<meta name=\"author\" content=\"Sterling\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sterlingcomp\" \/>\n<meta name=\"twitter:site\" content=\"@sterlingcomp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sterling\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065#article\",\"isPartOf\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065\"},\"author\":{\"name\":\"Sterling\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d\"},\"headline\":\"Automate Application Deployment using AWS EKS (Kubernetes)\",\"datePublished\":\"2020-03-10T08:22:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065\"},\"wordCount\":593,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/#organization\"},\"image\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065#primaryimage\"},\"thumbnailUrl\":\"\",\"articleSection\":[\"Blog\",\"Cloud\",\"Managed Services\",\"Security\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065\",\"url\":\"https:\/\/sterling.com\/stargazer\/?p=8065\",\"name\":\"Automate Application Deployment using AWS EKS (Kubernetes) - Sterling\",\"isPartOf\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2020-03-10T08:22:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sterling.com\/stargazer\/?p=8065\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sterling.com\/stargazer\/?p=8065#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sterling.com\/stargazer\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automate Application Deployment using AWS EKS (Kubernetes)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#website\",\"url\":\"https:\/\/sterling.com\/stargazer\/\",\"name\":\"Sterling\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sterling.com\/stargazer\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#organization\",\"name\":\"Sterling\",\"url\":\"https:\/\/sterling.com\/stargazer\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png\",\"contentUrl\":\"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png\",\"width\":399,\"height\":145,\"caption\":\"Sterling\"},\"image\":{\"@id\":\"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/facebook.com\/SterlingComp\/\",\"https:\/\/x.com\/sterlingcomp\",\"https:\/\/www.instagram.com\/sterlingcomputers\/\",\"http:\/\/youtube.com\/@sterlingcomp\",\"https:\/\/www.linkedin.com\/company\/sterling-computers\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d\",\"name\":\"Sterling\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g\",\"caption\":\"Sterling\"},\"url\":\"https:\/\/sterling.com\/stargazer\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automate Application Deployment using AWS EKS (Kubernetes) - Sterling","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Automate Application Deployment using AWS EKS (Kubernetes) - Sterling","og_description":"Written By Hitesh Kumar Objective: The objective is to demonstrate the procedure to automate the application deployment using DevOps tools like AWS EKS (Elastic Kubernetes Services), AWS CodeCommit, AWS CodeBuild [&hellip;]","og_url":"https:\/\/sterling.com\/stargazer\/?p=8065","og_site_name":"Sterling","article_publisher":"http:\/\/facebook.com\/SterlingComp\/","article_published_time":"2020-03-10T08:22:39+00:00","author":"Sterling","twitter_card":"summary_large_image","twitter_creator":"@sterlingcomp","twitter_site":"@sterlingcomp","twitter_misc":{"Written by":"Sterling","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sterling.com\/stargazer\/?p=8065#article","isPartOf":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8065"},"author":{"name":"Sterling","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d"},"headline":"Automate Application Deployment using AWS EKS (Kubernetes)","datePublished":"2020-03-10T08:22:39+00:00","mainEntityOfPage":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8065"},"wordCount":593,"commentCount":0,"publisher":{"@id":"https:\/\/sterling.com\/stargazer\/#organization"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8065#primaryimage"},"thumbnailUrl":"","articleSection":["Blog","Cloud","Managed Services","Security"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/sterling.com\/stargazer\/?p=8065","url":"https:\/\/sterling.com\/stargazer\/?p=8065","name":"Automate Application Deployment using AWS EKS (Kubernetes) - Sterling","isPartOf":{"@id":"https:\/\/sterling.com\/stargazer\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8065#primaryimage"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8065#primaryimage"},"thumbnailUrl":"","datePublished":"2020-03-10T08:22:39+00:00","breadcrumb":{"@id":"https:\/\/sterling.com\/stargazer\/?p=8065#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sterling.com\/stargazer\/?p=8065"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sterling.com\/stargazer\/?p=8065#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/sterling.com\/stargazer\/?p=8065#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sterling.com\/stargazer\/"},{"@type":"ListItem","position":2,"name":"Automate Application Deployment using AWS EKS (Kubernetes)"}]},{"@type":"WebSite","@id":"https:\/\/sterling.com\/stargazer\/#website","url":"https:\/\/sterling.com\/stargazer\/","name":"Sterling","description":"","publisher":{"@id":"https:\/\/sterling.com\/stargazer\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sterling.com\/stargazer\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sterling.com\/stargazer\/#organization","name":"Sterling","url":"https:\/\/sterling.com\/stargazer\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/","url":"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png","contentUrl":"https:\/\/sterling.com\/stargazer\/wp-content\/uploads\/2023\/03\/Sterling-Computers-Logo-TM.png","width":399,"height":145,"caption":"Sterling"},"image":{"@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/SterlingComp\/","https:\/\/x.com\/sterlingcomp","https:\/\/www.instagram.com\/sterlingcomputers\/","http:\/\/youtube.com\/@sterlingcomp","https:\/\/www.linkedin.com\/company\/sterling-computers"]},{"@type":"Person","@id":"https:\/\/sterling.com\/stargazer\/#\/schema\/person\/b812a18f3a1e77cd0925429d1546e49d","name":"Sterling","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/49107847cab9312fecfc9475e27da24373a491ca9faf45408ea019ad846f2c44?s=96&d=mm&r=g","caption":"Sterling"},"url":"https:\/\/sterling.com\/stargazer\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts\/8065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8065"}],"version-history":[{"count":0,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/wp\/v2\/posts\/8065\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sterling.com\/stargazer\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}