{"id":3187,"date":"2017-07-19T07:13:09","date_gmt":"2017-07-19T07:13:09","guid":{"rendered":"http:\/\/cloudkul.com\/blog\/?p=3187"},"modified":"2017-07-19T07:13:09","modified_gmt":"2017-07-19T07:13:09","slug":"code-deployment-using-aws-codedeploy","status":"publish","type":"post","link":"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/","title":{"rendered":"Code Deployment Using AWS CodeDeploy"},"content":{"rendered":"<p>In the <a href=\"http:\/\/cloudkul.com\/blog\/introduction-to-aws-codedeploy\/\">previous blog<\/a>, we learnt about CodeDeploy service of AWS and how it is useful in simplifying the Code deployment process. It is used to automate application deployments to the Amazon EC2 instances or on-premises instances in our data-centers. AWS CodeDeploy can deploy application content stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. So let&#8217;s learn how to setup the environment and deploy our code using the CodeDeploy service.<\/p>\n<p>The various steps involved to configure and use the CodeDeploy service can be summarized in the following steps.<\/p>\n<ol>\n<li>Creating IAM roles.<\/li>\n<li>Configuring the servers\/Instances where code is to be deployed.<\/li>\n<li>Uploading files or codes in either github or S3.<\/li>\n<li>Creating Deployment Configurations in AWS CodeDeploy.<\/li>\n<li>Deploying the Code.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Step-1: Creating IAM roles :<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>The first step to setup an environment for CodeDeploy is to create an IAM role. Here, we will be creating two types of roles &#8211;<\/p>\n<ol>\n<li>IAM role for Instance Profile.<\/li>\n<li>IAM role for Service Profile.<\/li>\n<\/ol>\n<p><strong><em><span style=\"text-decoration: underline\">Instance Profile<\/span><\/em> :-<\/strong> Instance Profile is a container for IAM roles and can provide the role&#8217;s credentials to an application running on that instance. Those credentials can then be used in the application&#8217;s API calls to access resources and to limit access to only those resources that the role specifies. These role credentials are temporary and rotated automatically improving the security. Only one Instance Profile can be attached to a particular Instance. The &#8220;Instance Profile&#8221; has the same name as the &#8220;IAM Instance Role&#8221; by default when you create it from the AWS console. However, when you create it from aws-cli, Instance role and Instance Profile role can be different.<\/p>\n<p><strong><em><span style=\"text-decoration: underline\">Service Profile<\/span><\/em> :-<\/strong> Service Profile consist of roles containing permission that allows ClodeDeploy to use other AWS services.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Creating Instance Profile :<\/strong><\/p>\n<p>So, lets create both Instance role and Service role one by one. First login to your AWS console and open the IAM service.<\/p>\n<p>On left side of the IAM console page, click on the roles. Now click on &#8220;<strong>create new role<\/strong>&#8221; option on top. Now select the role type as &#8220;<strong>Amazon EC2<\/strong>&#8221; from the options list. Next, select the following policies:<\/p>\n<p><strong>a).<\/strong> <strong>AmazonEC2RoleforAWSCodeDeploy<\/strong> -&gt;&gt; This allows EC2 instance under CodeDeploy To Access S3 service.<\/p>\n<p><strong>b). AutoScalingNotificationAccessRole <\/strong> -&gt;&gt; This allows EC2 instance under CodeDeploy to access SNS and SQS.<\/p>\n<p>And finally give the Instance Role a name. I will use the name &#8220;<strong>CodeDeployInstanceRole<\/strong>&#8221; as Instance Role for this demo. This role will be attached to the instance on which deployment is to be done.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Creating Service Profile :<\/strong><\/p>\n<p>Similarly, create a new Service role for CodeDeploy. Click on &#8220;<strong>create new role<\/strong>&#8221; option on top. Now select the role type as &#8221; <strong>AWS CodeDeploy<\/strong> &#8221; from the options list. Next, select the following policies:<\/p>\n<p><strong>a). AWSCodeDeployRole <\/strong> -&gt;&gt; This allows CodeDeploy to access other AWS services like Autoscaling\/ec2\/SNS.<\/p>\n<p>And finally give the Service Role a name. I will use the name &#8220;<strong>CodeDeployServiceRole<\/strong>&#8221; for this demo. This role will be used while creating Deployment configurations in CodeDeploy .<\/p>\n<p>By now, you have successfully created the two required IAM roles.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Step-2:- Configuring the servers\/Instances :<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>The second step is to configure the instances on which we want to deploy code using the CodeDeploy service. Configuring the instances involve two major steps:<\/p>\n<ol>\n<li>Attaching the IAM role.<\/li>\n<li>Installing &#8220;Code Deploy Agent&#8221; on the instance.<\/li>\n<\/ol>\n<p>However, if you want to launch a new instance in AWS, the Instance IAM role can be attached at the time of launching the instance. During the launching of the instance, in the third step which is &#8220;Configure Instance&#8221;, find the section &#8220;IAM role&#8221; and select the created IAM role\u00a0&#8220;<strong>CodeDeployInstanceRole&#8221;<\/strong> from the drop-down list. For an already running instance, you can attach the role using AWS CLI.<\/p>\n<p>&nbsp;<\/p>\n<p>Now let us configure our instance. You can configure instances either present on AWS or on-Premises. In this demo, we will be using AWS instances using apache web-server.<\/p>\n<p>First login to your server, and run the following commands as a root user.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>For Ubuntu Or Debian:-<\/strong><\/p>\n<p>Update your server and install apache web-server.<\/p>\n<pre class=\"lang:default decode:true\">apt-get update\r\napt-get install apache2 -y<\/pre>\n<p>Download and install the &#8220;code deploy agent&#8221;. First install ruby and wget packages as the agent is ruby based.<\/p>\n<pre class=\"lang:default decode:true\">apt-get install ruby wget -y<\/pre>\n<p>Now download and install the agent. Replace &#8220;$REGION&#8221; with your present AWS Region name for example &#8220;us-east-2&#8221;.<\/p>\n<pre class=\"lang:default decode:true\">wget https:\/\/aws-codedeploy-$REGION.s3.amazonaws.com\/latest\/install\r\nchmod +x .\/install\r\n.\/install auto<\/pre>\n<p>Check if the code deploy agent is installed and running on your instance.<\/p>\n<pre class=\"lang:default decode:true \">ps -aux | grep agent<\/pre>\n<p>Next step is to install &#8220;AWS CLI&#8221; on the instance. AWS CLI is python based API. Use pip package manager to install aws-cli package. To install pip and aws-cli, use the following commands.<\/p>\n<pre class=\"lang:default decode:true\">apt-get install python-pip\r\npip install --upgrade pip\r\npip install awscli\r\npip install --upgrade awscli\r\naws --version<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>For RHEL Distibutions like Centos, Amazon AMI, etc :-<\/strong><\/p>\n<p>Update your server and install apache web-server.<\/p>\n<pre class=\"lang:default decode:true\">yum update\r\nyum install httpd -y\r\n<\/pre>\n<p>Download and install epel repository.<\/p>\n<pre class=\"lang:default decode:true\">yum install wget -y\r\nwget http:\/\/dl.fedoraproject.org\/pub\/epel\/7\/x86_64\/e\/epel-release-7-10.noarch\r\nrpm -ivh epel-release-7-10.noarch.rpm  #Install epel repository\r\nyum repolist                           #To check if the repo is installed\r\n<\/pre>\n<p>Install code-deploy-agent in your instance. Replace &#8220;$REGION&#8221; with your present AWS Region name for example &#8220;us-east-2&#8221;.<\/p>\n<pre class=\"lang:default decode:true\">yum install ruby -y\r\nwget https:\/\/aws-codedeploy-$REGION.s3.amazonaws.com\/latest\/install\r\nchmod +x .\/install\r\n.\/install auto\r\n<\/pre>\n<p>Install &#8220;AWS CLI&#8221; on the instance. AWS CLI is python based API. Use pip package manager to install aws-cli package. To install pip and aws-cli, use the following commands.<\/p>\n<pre class=\"lang:default decode:true\">yum install python-pip \u2013y \r\npip install --upgrade pip \r\npip install awscli \r\npip install --upgrade awscli \r\naws --version<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong><em>[COMMON COMMANDS FOR DEBIAN AND RHEL DISTRIBUTIONS]<\/em><\/strong><\/p>\n<p>Configure aws-cli with appropriate credentials to enable it to access the AWS resources.<\/p>\n<pre class=\"lang:default decode:true\">aws configure<\/pre>\n<p>&nbsp;<\/p>\n<p>Enter your Access Key or Secret Key and you can skip the default region and output format options by pressing enter. If you don&#8217;t have previous Access key, you can generate new key pairs. To Get Your AWS Access Key And Secret Keys, click on drop-down arrow, near the AWS Account Name displayed on top of the AWS console. From the options select My security credientials. If asked Select Continue to security credientials. On the &#8220;Your Security Credentials&#8221; page that appears, Select &#8220;Access Keys (Access Key ID and Secret Access Key)&#8221; and then Click on &#8220;Create New Access Key&#8221;. Download the Access key that is created. You can also view the access key and secret key on the console.<\/p>\n<pre class=\"lang:default decode:true\">AWS Access Key ID [None] : Enter_Your_Access_Key\r\nAWS Secret Access Key [None] : Enter_your_Secret_key\r\nDefault region name [None] : Specify_your_region or Press_Enter_to_Skip\r\nDefault output format [None] : json or Press_Enter_to_Skip<\/pre>\n<p>&nbsp;<\/p>\n<p>Once your aws-cli is properly configured, you can attach the instance profile with the following command. Specify your instance ID and instance profile name\u00a0 &#8220;CodeDeployInstanceRole&#8221; which we previously created.<\/p>\n<pre class=\"lang:default decode:true\">aws ec2 associate-iam-instance-profile --instance-id &lt;Your_Instance_ID&gt; --iam-instance-profile Name=CodeDeployInstanceRole<\/pre>\n<p>You can check the all the Instance Profiles attached to various instances using the below commands.<\/p>\n<pre class=\"lang:default decode:true\">aws ec2 describe-iam-instance-profile-associations<\/pre>\n<p>If you can see your instance attached with your Instance Profile, then your instance is attached with Instance Profile containing IAM role.<\/p>\n<p>&nbsp;<\/p>\n<p>Remember to reboot your server after configuration if you have attached your &#8220;IAM Instance role&#8221; to an existing instance. Reboot is not required if you have attached the &#8220;Instance role&#8221; at the time of launching the instance.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Step-3 :\u00a0 Uploading files or codes in either github or S3 :<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>The Third step is to prepare your code for deployment. You can either deploy your code from github or S3 bucket.<\/p>\n<p>However to use CodeDeploy, you need to include two things along with your code.<\/p>\n<ol>\n<li>appspec.yml file<\/li>\n<li>deployment scripts<\/li>\n<\/ol>\n<p>The application specification file (AppSpec file) is a\u00a0YAML-formatted file used by AWS CodeDeploy to determine:<\/p>\n<div class=\"itemizedlist\">\n<ul class=\"itemizedlist\" type=\"disc\">\n<li class=\"listitem\">what it should install onto your instances from your application revision in Amazon S3 or GitHub.<\/li>\n<li class=\"listitem\">which lifecycle event hooks should run before and after deployment events.<\/li>\n<\/ul>\n<\/div>\n<p>An AppSpec file must be named\u00a0<code>appspec.yml<\/code>\u00a0and it must be placed in the root of an application&#8217;s source code&#8217;s directory structure. Otherwise, deployments will fail.<\/p>\n<p>After you have a completed AppSpec file, you can bundle it, along with the content to deploy, into an archive file (zip, tar, or compressed tar).<\/p>\n<p>Create a new &#8220;<code>appspec.yml\"<\/code> file and copy and paste the below contents in the file.<\/p>\n<pre class=\"lang:default decode:true\">version: 0.0\r\nos: linux\r\nfiles:\r\n    - source: \/\r\n      destination: \/var\/www\/html\r\npermissions:\r\n    - object: \/var\/www\/html\r\n      pattern: \"**\"\r\n      owner: www-data\r\n      group: www-data\r\n      mode: 755\r\n      type:\r\n        - file\r\nhooks:\r\n    BeforeInstall:\r\n     - location: scripts\/installapache.sh\r\n       runas: root\r\n     - location: scripts\/startapache.sh\r\n       runas: root\r\n    AfterInstall:\r\n     - location: scripts\/restartapache.sh\r\n       runas: root\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>For RHEL distributions, replace &#8220;www-data&#8221; with &#8220;apache&#8221;.<\/p>\n<p>&nbsp;<\/p>\n<p>Next make a folder and create the deployment scripts.<\/p>\n<p>1. installapache.sh<\/p>\n<pre class=\"lang:default decode:true \">apt-get install apache2 -y<\/pre>\n<p>For rhel,<\/p>\n<pre class=\"lang:default decode:true\">yum install httpd -y<\/pre>\n<p>2. startapache.sh<\/p>\n<pre class=\"lang:default decode:true\">systemctl start apache2<\/pre>\n<p>For rhel,<\/p>\n<pre class=\"lang:default decode:true\">systemctl start httpd<\/pre>\n<p>3. restartapache.sh<\/p>\n<pre class=\"lang:default decode:true\">systemctl restart apache2<\/pre>\n<p>For rhel,<\/p>\n<pre class=\"lang:default decode:true \">systemctl restart httpd<\/pre>\n<p>&nbsp;<\/p>\n<p>Place the three scripts in a folder named &#8220;scripts&#8221; as per the &#8220;<code>appspec.yml\"<\/code> file. Both the deployment script folder and the appspec.yml file should be kept in the root of an application&#8217;s source code&#8217;s directory structure.\u00a0 Place the code either in github or S3 bucket.<\/p>\n<p><a href=\"http:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/codedeploy5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3212\" src=\"http:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/codedeploy5.png\" alt=\"\" width=\"1064\" height=\"593\" \/><\/a><\/p>\n<h3><\/h3>\n<h3><strong>Step-4 : Creating Deployment Configurations in AWS CodeDeploy :<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>The next step is to create a deployment configuration in CodeDeploy. First login to your aws account and open the CloudDeploy Service. Now the first step to do is to create an Application which will contain informations like Deployment type, instance details, deployment configurations, service role, etc.<\/p>\n<p>To Create an application, click on &#8220;create application&#8221;. In the application page, provide the application name and application group name. For this demo, we will select the following:<\/p>\n<p>-&gt; The\u00a0application name as <strong>&#8220;sampledeploy&#8221;<\/strong>\u00a0 and \u00a0application group name as <strong>&#8220;sampledeploy-gp&#8221;.<\/strong><\/p>\n<p>-&gt; Deployment Type : In-place deployment.<\/p>\n<p>-&gt; In Add Instance section, we will select Amazon EC2 and specify the instance using the name key-value pair.<\/p>\n<p>-&gt; We will not select load balancer as we will be deploying on a single instance.<\/p>\n<p>-&gt;\u00a0 In Deployment configuration, we will select <strong>&#8220;CodeDeployDefault.OneAtATime&#8221;<\/strong> which deploys to one instance at a time.<\/p>\n<p>-&gt; We will select <span class=\"ng-binding\">Service role ARN as\u00a0 <strong>&#8221; CodeDeployServiceRole &#8220;<\/strong> which we have previously created. <\/span><\/p>\n<p>-&gt; Finally Click on <strong>&#8220;Create application&#8221;<\/strong>.<\/p>\n<p>You will be displayed an Acknowledgement page showing the successful application creation along with the Details of your Application. Under the Deployment group section, the created deployment group name is displayed. Now your configuration is complete ready for deploying code to the server using AWS CodeDeploy.<\/p>\n<p><a href=\"http:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/codedeploy3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3213\" src=\"http:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/codedeploy3.png\" alt=\"\" width=\"1267\" height=\"638\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Step-5 : Deploying the Code :<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>To deploy the code, click on the application name, and select the deployment group. Now click on <strong>&#8220;Actions&#8221;<\/strong> button and select &#8220;Deploy new revision&#8221;. This will open up a page where the deployment information needs to be provided. For this demo, we will do the following.<\/p>\n<p>-&gt; The application name and application group name is already preselected.<\/p>\n<p>-&gt; Select the repository type as <strong>&#8220;github&#8221;<\/strong> repository for this demo.<\/p>\n<p>-&gt; You can add a small deployment description.<\/p>\n<p>-&gt; We will choose the default deployment configuration as <strong>&#8220;CodeDeployDefault.OneAtATime&#8221;<\/strong>.<\/p>\n<p>-&gt; Next we will provide github account username and click on &#8220;Connect to GitHub&#8221;.<\/p>\n<p>-&gt; Provide the Repository name of github where you have kept the code.<\/p>\n<p>-&gt; Also provide the commit Id of the code which should be deployed on the servers.<\/p>\n<p>-&gt; In the content options, choose<strong> &#8220;Overwrite the content&#8221;<\/strong>.<\/p>\n<p>-&gt; Leave the rest configurations as default and click on <strong>&#8220;Deploy&#8221;<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p>If you have properly followed the steps, your deployment will be successful and you will get a similar successful deployment result displayed on the screen. You will get a unique deployment ID for each deployment.<\/p>\n<p><a href=\"http:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/codedeploy6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3215\" src=\"http:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/codedeploy6.png\" alt=\"\" width=\"1275\" height=\"680\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Hit the public IP of the server on your browser to verify if the codes are updated successfully.<\/p>\n<p><a href=\"http:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/codedeploy7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3214\" src=\"http:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/codedeploy7.png\" alt=\"\" width=\"1104\" height=\"301\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>You can view the logs on your instance in -&gt; \/var\/log\/aws\/codedeploy-agent\/codedeploy-agent.log<\/p>\n<p>&nbsp;<\/p>\n<p>So, finally you have successfully configured CodeDeploy environment and deployed your code on your servers. You can use CodeDeploy in various ways to deploy code to one or multiple instances which may be under a load balancer and autoscaling. You can also deploy code from either github or from S3 bucket. In short, CodeDeploy can simplify your code deployment process and provide higher reliability as compared to error-prone manual deployments.<\/p>\n<p>&nbsp;<\/p>\n<p>Thanks for the time\u2026 Happy Computing!!!<\/p>\n<p>&nbsp;<\/p>\n<div class=\"blog-content\">\n<p style=\"text-align: center\"><strong><em>In case of any help or query, please\u00a0<a href=\"http:\/\/cloudkul.com\/contact\/\" target=\"_blank\" rel=\"noopener noreferrer\">contact us<\/a>.<\/em><\/strong><\/p>\n<p style=\"text-align: center\">\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In the previous blog, we learnt about CodeDeploy service of AWS and how it is <a class=\"text-primary\" title=\"read more\" href=\"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":19,"featured_media":3210,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Code Deployment Using AWS CodeDeploy - Cloudkul<\/title>\n<meta name=\"description\" content=\"CodeDeploy service is used to automate application deployments to the Amazon EC2 instances or on-premises instances in our data-centers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Code Deployment Using AWS CodeDeploy - Cloudkul\" \/>\n<meta property=\"og:description\" content=\"CodeDeploy service is used to automate application deployments to the Amazon EC2 instances or on-premises instances in our data-centers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloudkul\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-19T07:13:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/P4_JnDUe.png\" \/>\n\t<meta property=\"og:image:width\" content=\"848\" \/>\n\t<meta property=\"og:image:height\" content=\"422\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kamal Verma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/\",\"url\":\"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/\",\"name\":\"Code Deployment Using AWS CodeDeploy - Cloudkul\",\"isPartOf\":{\"@id\":\"https:\/\/cloudkul.com\/blog\/#website\"},\"datePublished\":\"2017-07-19T07:13:09+00:00\",\"dateModified\":\"2017-07-19T07:13:09+00:00\",\"author\":{\"@id\":\"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/06c6ea4ff7ba3c7c066fa1ee606bf051\"},\"description\":\"CodeDeploy service is used to automate application deployments to the Amazon EC2 instances or on-premises instances in our data-centers.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Code Deployment Using AWS CodeDeploy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudkul.com\/blog\/#website\",\"url\":\"https:\/\/cloudkul.com\/blog\/\",\"name\":\"Cloudkul\",\"description\":\"Host your eCommerce Store on AWS with Optimized Performance\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudkul.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/06c6ea4ff7ba3c7c066fa1ee606bf051\",\"name\":\"Kamal Verma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/63cc4ebeffa54b7ceb9b2d552926f2f6?s=96&d=https%3A%2F%2Fs.gravatar.com%2Favatar%2F6148c37469011bc2f8e491ca8f5de495%3Fs%3D80&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/63cc4ebeffa54b7ceb9b2d552926f2f6?s=96&d=https%3A%2F%2Fs.gravatar.com%2Favatar%2F6148c37469011bc2f8e491ca8f5de495%3Fs%3D80&r=g\",\"caption\":\"Kamal Verma\"},\"url\":\"https:\/\/cloudkul.com\/blog\/author\/kamaldev-cloudkul308\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Code Deployment Using AWS CodeDeploy - Cloudkul","description":"CodeDeploy service is used to automate application deployments to the Amazon EC2 instances or on-premises instances in our data-centers.","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:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/","og_locale":"en_US","og_type":"article","og_title":"Code Deployment Using AWS CodeDeploy - Cloudkul","og_description":"CodeDeploy service is used to automate application deployments to the Amazon EC2 instances or on-premises instances in our data-centers.","og_url":"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/","og_site_name":"Cloudkul","article_published_time":"2017-07-19T07:13:09+00:00","og_image":[{"width":848,"height":422,"url":"https:\/\/cloudkul.com\/blog\/wp-content\/uploads\/2017\/07\/P4_JnDUe.png","type":"image\/png"}],"author":"Kamal Verma","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/","url":"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/","name":"Code Deployment Using AWS CodeDeploy - Cloudkul","isPartOf":{"@id":"https:\/\/cloudkul.com\/blog\/#website"},"datePublished":"2017-07-19T07:13:09+00:00","dateModified":"2017-07-19T07:13:09+00:00","author":{"@id":"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/06c6ea4ff7ba3c7c066fa1ee606bf051"},"description":"CodeDeploy service is used to automate application deployments to the Amazon EC2 instances or on-premises instances in our data-centers.","breadcrumb":{"@id":"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cloudkul.com\/blog\/code-deployment-using-aws-codedeploy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Code Deployment Using AWS CodeDeploy"}]},{"@type":"WebSite","@id":"https:\/\/cloudkul.com\/blog\/#website","url":"https:\/\/cloudkul.com\/blog\/","name":"Cloudkul","description":"Host your eCommerce Store on AWS with Optimized Performance","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudkul.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/06c6ea4ff7ba3c7c066fa1ee606bf051","name":"Kamal Verma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/63cc4ebeffa54b7ceb9b2d552926f2f6?s=96&d=https%3A%2F%2Fs.gravatar.com%2Favatar%2F6148c37469011bc2f8e491ca8f5de495%3Fs%3D80&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/63cc4ebeffa54b7ceb9b2d552926f2f6?s=96&d=https%3A%2F%2Fs.gravatar.com%2Favatar%2F6148c37469011bc2f8e491ca8f5de495%3Fs%3D80&r=g","caption":"Kamal Verma"},"url":"https:\/\/cloudkul.com\/blog\/author\/kamaldev-cloudkul308\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/posts\/3187"}],"collection":[{"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/comments?post=3187"}],"version-history":[{"count":31,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/posts\/3187\/revisions"}],"predecessor-version":[{"id":3223,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/posts\/3187\/revisions\/3223"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/media\/3210"}],"wp:attachment":[{"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/media?parent=3187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/categories?post=3187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudkul.com\/blog\/wp-json\/wp\/v2\/tags?post=3187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}