1 00:00:00,240 --> 00:00:02,520 ‫So let's get started with CodeDeploy, 2 00:00:02,520 --> 00:00:05,100 ‫but first we need to go into IAM to create some roles. 3 00:00:05,100 --> 00:00:08,220 ‫So, in the IAM console go underneath roles 4 00:00:08,220 --> 00:00:10,020 ‫and create a role. 5 00:00:10,020 --> 00:00:12,810 ‫This role's going to be for an AWS service 6 00:00:12,810 --> 00:00:16,143 ‫and the service we're going to be looking for is CodeDeploy. 7 00:00:17,070 --> 00:00:18,240 ‫As you can see, I have three options. 8 00:00:18,240 --> 00:00:19,800 ‫I can create CodeDeploy, 9 00:00:19,800 --> 00:00:20,633 ‫or for Lambda, 10 00:00:20,633 --> 00:00:21,870 ‫or for ECS. 11 00:00:21,870 --> 00:00:25,060 ‫But because we're doing a CodeDeploy use case right now, 12 00:00:25,060 --> 00:00:28,020 ‫we'll just create a CodeDeploy EC2 service role. 13 00:00:28,020 --> 00:00:29,970 ‫So let's go ahead, 14 00:00:29,970 --> 00:00:30,990 ‫create this, 15 00:00:30,990 --> 00:00:31,823 ‫click on next 16 00:00:31,823 --> 00:00:34,103 ‫and we'll call this one, CodeDeployServiceRoleForEC2. 17 00:00:36,870 --> 00:00:41,850 ‫Okay, so now we are good with this role 18 00:00:41,850 --> 00:00:43,950 ‫and the second role we need to create 19 00:00:43,950 --> 00:00:47,310 ‫is a role for the EC2 instance that we'll deploy to. 20 00:00:47,310 --> 00:00:48,780 ‫So let's create a role, 21 00:00:48,780 --> 00:00:50,730 ‫and this one is for an EC2 instance. 22 00:00:50,730 --> 00:00:52,200 ‫So it's a role for it, 23 00:00:52,200 --> 00:00:54,510 ‫and we're going to have a permission 24 00:00:54,510 --> 00:00:57,240 ‫that allows S3 read access. 25 00:00:57,240 --> 00:01:01,050 ‫So if I just type S3, I should be good to go. 26 00:01:01,050 --> 00:01:04,800 ‫The idea is that if you remember the EC2 instance 27 00:01:04,800 --> 00:01:08,700 ‫will be the one pulling the code from your S3 bucket. 28 00:01:08,700 --> 00:01:11,183 ‫And so, therefore it means AmazonS3ReadOnlyAccess. 29 00:01:12,180 --> 00:01:14,700 ‫And that policy is a very simple JSON, 30 00:01:14,700 --> 00:01:18,270 ‫which allows Get* and List* on any objects. 31 00:01:18,270 --> 00:01:21,767 ‫So let's click on next, and I call this one, 32 00:01:21,767 --> 00:01:24,663 ‫EC2RoleForCodeDeploy. 33 00:01:26,550 --> 00:01:29,490 ‫And let's create this role. 34 00:01:29,490 --> 00:01:31,830 ‫Okay, so now that the roles are created, 35 00:01:31,830 --> 00:01:34,260 ‫we need to go back into CodeDeploy and get started. 36 00:01:34,260 --> 00:01:36,750 ‫So first we need to create an application. 37 00:01:36,750 --> 00:01:39,300 ‫So I call this one, DemoApplication. 38 00:01:39,300 --> 00:01:41,070 ‫And for compute platform we have three options. 39 00:01:41,070 --> 00:01:44,880 ‫We have EC2, we have Lambda, and we have Amazon ECS. 40 00:01:44,880 --> 00:01:47,550 ‫So we'll choose EC2/on-premises 41 00:01:47,550 --> 00:01:49,800 ‫and let's create our application. 42 00:01:49,800 --> 00:01:50,790 ‫Now, to create application 43 00:01:50,790 --> 00:01:52,290 ‫we need to create a deployment group. 44 00:01:52,290 --> 00:01:53,520 ‫And to have a deployment group 45 00:01:53,520 --> 00:01:57,150 ‫it should be better to start an EC2 instance. 46 00:01:57,150 --> 00:02:00,030 ‫So let's open the EC2 console, 47 00:02:00,030 --> 00:02:01,890 ‫and I'm going to go to my instances. 48 00:02:01,890 --> 00:02:04,170 ‫I'm going to launch an instance 49 00:02:04,170 --> 00:02:06,503 ‫and I'll call this one, DemoWebServer. 50 00:02:08,460 --> 00:02:09,293 ‫And I scroll down. 51 00:02:09,293 --> 00:02:10,740 ‫We have Amazon Linux, 52 00:02:10,740 --> 00:02:12,570 ‫we have a t2 micro, 53 00:02:12,570 --> 00:02:14,580 ‫we don't need a key pair. 54 00:02:14,580 --> 00:02:15,960 ‫And then for networking settings, 55 00:02:15,960 --> 00:02:18,390 ‫we're going to create a security group 56 00:02:18,390 --> 00:02:19,950 ‫that allows SSH traffic 57 00:02:19,950 --> 00:02:21,630 ‫and also allows HTTP traffic. 58 00:02:21,630 --> 00:02:24,930 ‫This is where our web server is going to be started. 59 00:02:24,930 --> 00:02:27,840 ‫Storage is good and we don't need any EC2 user data. 60 00:02:27,840 --> 00:02:30,330 ‫So let's go ahead and launch this instance. 61 00:02:30,330 --> 00:02:33,660 ‫And as you can see, I have not tagged my instance yet. 62 00:02:33,660 --> 00:02:35,250 ‫I've just launched it 63 00:02:35,250 --> 00:02:38,640 ‫so that I will show you why tags are helpful later on. 64 00:02:38,640 --> 00:02:42,240 ‫Now the next steps is to SSH into our instance. 65 00:02:42,240 --> 00:02:43,500 ‫So now that it is running, 66 00:02:43,500 --> 00:02:46,440 ‫I'm going to click on connect and then EC2 instance, 67 00:02:46,440 --> 00:02:49,020 ‫EC2 user and click on connect. 68 00:02:49,020 --> 00:02:52,020 ‫So now I am SSH'ed into my instance. 69 00:02:52,020 --> 00:02:53,430 ‫And if it doesn't work for you 70 00:02:53,430 --> 00:02:57,390 ‫maybe it's because the port 22 wasn't open. 71 00:02:57,390 --> 00:02:59,040 ‫And now, the next step is to actually 72 00:02:59,040 --> 00:03:01,980 ‫install the CodeDeploy agents. 73 00:03:01,980 --> 00:03:05,151 ‫So for this, let's go into our code under CodeDeploy, 74 00:03:05,151 --> 00:03:09,330 ‫under cicd, we have the commands and we do updates. 75 00:03:09,330 --> 00:03:11,640 ‫So we update the operating system. 76 00:03:11,640 --> 00:03:14,160 ‫So we're gonna say, okay, no updates to do. 77 00:03:14,160 --> 00:03:15,390 ‫Then we install ruby, 78 00:03:15,390 --> 00:03:17,673 ‫which is necessary for the CodeDeploy agents. 79 00:03:18,960 --> 00:03:22,980 ‫So we'll say yes and we're good. 80 00:03:22,980 --> 00:03:24,840 ‫Next we're going to download the agent. 81 00:03:24,840 --> 00:03:26,400 ‫And in case this doesn't work, 82 00:03:26,400 --> 00:03:28,920 ‫please replace the region by what you have. 83 00:03:28,920 --> 00:03:32,190 ‫But this link should work regardless of the region. 84 00:03:32,190 --> 00:03:34,950 ‫So the install script has now been downloaded. 85 00:03:34,950 --> 00:03:39,210 ‫And I'm going to make it executable with a chmod command. 86 00:03:39,210 --> 00:03:40,950 ‫Okay, so let's clear the screen. 87 00:03:40,950 --> 00:03:42,360 ‫We have the install in green, 88 00:03:42,360 --> 00:03:44,430 ‫so that means that it's executable. 89 00:03:44,430 --> 00:03:48,630 ‫And we're just going to execute the install in sudo mode. 90 00:03:48,630 --> 00:03:49,653 ‫So let's do this. 91 00:03:50,550 --> 00:03:53,130 ‫Now my agent is being installed. 92 00:03:53,130 --> 00:03:57,450 ‫And finally, to make sure that the agent has indeed started 93 00:03:57,450 --> 00:04:01,650 ‫we can just run a sudo service CodeDeploy agent status. 94 00:04:01,650 --> 00:04:02,760 ‫And as you can see, 95 00:04:02,760 --> 00:04:06,210 ‫the CodeDeploy agent is running and it has a process ID. 96 00:04:06,210 --> 00:04:08,280 ‫So now that our EC2 instance is ready, 97 00:04:08,280 --> 00:04:09,510 ‫let's go into CodeDeploy 98 00:04:09,510 --> 00:04:12,269 ‫and create our first deployment group. 99 00:04:12,269 --> 00:04:13,770 ‫So, create a deployment group, 100 00:04:13,770 --> 00:04:16,653 ‫and this one is going to be called, Developmentinstances. 101 00:04:18,690 --> 00:04:22,920 ‫And this will be comprised of all my development instances. 102 00:04:22,920 --> 00:04:26,160 ‫So how do I tell CodeDeploy that one instance is development 103 00:04:26,160 --> 00:04:27,660 ‫and the other one is production? 104 00:04:27,660 --> 00:04:29,460 ‫Well, it's using tags. 105 00:04:29,460 --> 00:04:32,430 ‫So if I go into my instance itself, 106 00:04:32,430 --> 00:04:35,160 ‫what I can do is that I can click on tags 107 00:04:35,160 --> 00:04:37,590 ‫and I can manage the tags, add a new tag. 108 00:04:37,590 --> 00:04:40,590 ‫And I can create a new tag called, Environment. 109 00:04:40,590 --> 00:04:43,260 ‫And this one is going to be, Development. 110 00:04:43,260 --> 00:04:46,290 ‫And we will pass that value also to CodeDeploy, 111 00:04:46,290 --> 00:04:48,270 ‫so that it knows that my EC2 instance 112 00:04:48,270 --> 00:04:50,250 ‫is a development instance. 113 00:04:50,250 --> 00:04:51,450 ‫So back into CodeDeploy, 114 00:04:51,450 --> 00:04:52,860 ‫we need to enter a service role, 115 00:04:52,860 --> 00:04:53,970 ‫which is created from before. 116 00:04:53,970 --> 00:04:55,380 ‫So that's perfect. 117 00:04:55,380 --> 00:04:58,230 ‫Now for deployment type, we have In-place or Blue/green. 118 00:04:58,230 --> 00:04:59,940 ‫And it turns out that we've seen both 119 00:04:59,940 --> 00:05:01,140 ‫in the previous lecture. 120 00:05:01,140 --> 00:05:04,650 ‫But for this demo we're going to use In-place. 121 00:05:04,650 --> 00:05:06,000 ‫And for the environment configuration 122 00:05:06,000 --> 00:05:07,410 ‫we have multiple options. 123 00:05:07,410 --> 00:05:08,700 ‫Are we using Auto Scaling groups? 124 00:05:08,700 --> 00:05:10,620 ‫No, we're not in this case, but we could. 125 00:05:10,620 --> 00:05:12,060 ‫Are we using Amazon EC2 instances? 126 00:05:12,060 --> 00:05:13,110 ‫Yes, we are. 127 00:05:13,110 --> 00:05:15,570 ‫And are we using on-premises instances? 128 00:05:15,570 --> 00:05:16,403 ‫No, we are not. 129 00:05:16,403 --> 00:05:17,910 ‫But the process is similar. 130 00:05:17,910 --> 00:05:20,520 ‫We would need to install the CodeDeploy agent 131 00:05:20,520 --> 00:05:22,650 ‫onto these on-premises instances 132 00:05:22,650 --> 00:05:24,420 ‫and then tag them correctly. 133 00:05:24,420 --> 00:05:27,180 ‫But for now, let's just choose Amazon EC2 instances, 134 00:05:27,180 --> 00:05:29,130 ‫and we need to specify a tag group. 135 00:05:29,130 --> 00:05:33,390 ‫So, the tag group is going to be Environment 136 00:05:33,390 --> 00:05:36,810 ‫and the value is going to be Development. 137 00:05:36,810 --> 00:05:39,210 ‫And right now there is no hint at this. 138 00:05:39,210 --> 00:05:41,410 ‫So, let's just refresh this page 139 00:05:43,080 --> 00:05:46,487 ‫and I'm going to rename this my DevelopmentGroup 140 00:05:49,440 --> 00:05:51,120 ‫and Amazon EC2 instances. 141 00:05:51,120 --> 00:05:53,280 ‫And this time I will pick up the Environment, yes. 142 00:05:53,280 --> 00:05:55,320 ‫and I will pick up the value, Development. 143 00:05:55,320 --> 00:05:58,650 ‫And as you can see it says 1 unique matched instances 144 00:05:58,650 --> 00:06:00,036 ‫have appeared. 145 00:06:00,036 --> 00:06:01,560 ‫So that means that my EC2 instance from here 146 00:06:01,560 --> 00:06:04,500 ‫has been picked up in this deployment group. 147 00:06:04,500 --> 00:06:05,883 ‫So we are good. 148 00:06:06,780 --> 00:06:10,560 ‫Do we want to install the agent with Systems Manager? 149 00:06:10,560 --> 00:06:11,550 ‫No, we don't need to. 150 00:06:11,550 --> 00:06:14,610 ‫Well, because we already have installed the agent ourselves, 151 00:06:14,610 --> 00:06:16,560 ‫so never, is good enough. 152 00:06:16,560 --> 00:06:17,393 ‫But of course, 153 00:06:17,393 --> 00:06:19,380 ‫if we wanted to automate the installation of it, 154 00:06:19,380 --> 00:06:21,390 ‫we could use this automation right here, 155 00:06:21,390 --> 00:06:23,100 ‫using Systems Manager. 156 00:06:23,100 --> 00:06:25,140 ‫But for now, never. 157 00:06:25,140 --> 00:06:27,000 ‫Now for deployment settings, 158 00:06:27,000 --> 00:06:29,220 ‫we have CodeDeployDefault.AllAtOnce. 159 00:06:29,220 --> 00:06:31,500 ‫So this is going to update all my instances at once 160 00:06:31,500 --> 00:06:32,970 ‫but we have different strategies. 161 00:06:32,970 --> 00:06:35,400 ‫We have one at a time, we have half at a time, 162 00:06:35,400 --> 00:06:37,440 ‫or we can create our own deployment configuration. 163 00:06:37,440 --> 00:06:40,290 ‫If we wanted to have more fine grain control. 164 00:06:40,290 --> 00:06:42,240 ‫If we were using a load balancer, for example, 165 00:06:42,240 --> 00:06:44,970 ‫with an Auto Scaling group, we could enable this integration 166 00:06:44,970 --> 00:06:45,810 ‫but right now we don't. 167 00:06:45,810 --> 00:06:50,700 ‫So let's disable it and let's create our deployment group. 168 00:06:50,700 --> 00:06:52,410 ‫So we are now ready to deploy something 169 00:06:52,410 --> 00:06:53,850 ‫to our EC2 instances. 170 00:06:53,850 --> 00:06:55,710 ‫So let's create a deployment 171 00:06:55,710 --> 00:06:58,140 ‫and this is going to apply to my development group. 172 00:06:58,140 --> 00:07:00,540 ‫And my application is stored in Amazon S3. 173 00:07:00,540 --> 00:07:01,650 ‫So that is not true yet, 174 00:07:01,650 --> 00:07:03,840 ‫but we need to go into Amazon S3 175 00:07:03,840 --> 00:07:06,750 ‫and actually put our application there. 176 00:07:06,750 --> 00:07:09,150 ‫So I'm gonna go into my S3 console, 177 00:07:09,150 --> 00:07:11,310 ‫I'm going to create a bucket 178 00:07:11,310 --> 00:07:12,990 ‫and make sure you choose the same region 179 00:07:12,990 --> 00:07:14,160 ‫as the region of CodeDeploy. 180 00:07:14,160 --> 00:07:16,590 ‫So from it's EU-west-1 Ireland. 181 00:07:16,590 --> 00:07:18,990 ‫So I'm going to say the bucket name is 182 00:07:18,990 --> 00:07:22,983 ‫Stephane-code-deploy-demo, 183 00:07:24,780 --> 00:07:25,860 ‫scroll all the way down 184 00:07:25,860 --> 00:07:27,393 ‫and then create this bucket. 185 00:07:29,160 --> 00:07:32,940 ‫And now we need to upload some data into our buckets. 186 00:07:32,940 --> 00:07:33,773 ‫So what data? 187 00:07:33,773 --> 00:07:35,370 ‫Well, the application itself. 188 00:07:35,370 --> 00:07:39,120 ‫So I've created a zip file called SampleApp_linux.zip 189 00:07:39,120 --> 00:07:40,170 ‫and this one we'll upload. 190 00:07:40,170 --> 00:07:41,640 ‫But I've also unzipped it, 191 00:07:41,640 --> 00:07:44,550 ‫so we can have a look at what is going on. 192 00:07:44,550 --> 00:07:47,850 ‫So let's have a look first at the index.html file. 193 00:07:47,850 --> 00:07:50,910 ‫And this is a simple HTML document that contains 194 00:07:50,910 --> 00:07:52,470 ‫what we will display on our website 195 00:07:52,470 --> 00:07:54,870 ‫after doing the CodeDeploy deployment. 196 00:07:54,870 --> 00:07:56,970 ‫But in CodeDeploy the most important file 197 00:07:56,970 --> 00:07:58,830 ‫is the appspec.yml file, 198 00:07:58,830 --> 00:08:02,190 ‫which contains the instructions of CodeDeploy should do 199 00:08:02,190 --> 00:08:05,760 ‫to actually deploy our distribution or application. 200 00:08:05,760 --> 00:08:07,920 ‫So as we can see there's a files handle here 201 00:08:07,920 --> 00:08:09,390 ‫saying that this index, 202 00:08:09,390 --> 00:08:13,920 ‫that HTML file should be copied into var/www/html, 203 00:08:13,920 --> 00:08:16,260 ‫which is where the html files are displayed 204 00:08:16,260 --> 00:08:18,600 ‫for Apache web servers. 205 00:08:18,600 --> 00:08:19,800 ‫Then we have different hooks, 206 00:08:19,800 --> 00:08:22,530 ‫and as we can see in here we have a BeforeInstall 207 00:08:22,530 --> 00:08:24,227 ‫to install dependencies. 208 00:08:24,227 --> 00:08:27,900 ‫Then we have a start server. 209 00:08:27,900 --> 00:08:29,640 ‫So after the independencies are installed 210 00:08:29,640 --> 00:08:30,780 ‫let's start server. 211 00:08:30,780 --> 00:08:33,840 ‫And finally, before we want to do any update 212 00:08:33,840 --> 00:08:35,190 ‫we need to stop the application. 213 00:08:35,190 --> 00:08:37,110 ‫So we have a stop server script 214 00:08:37,110 --> 00:08:39,270 ‫and each script is actually very simple, 215 00:08:39,270 --> 00:08:40,103 ‫the script right here, 216 00:08:40,103 --> 00:08:41,640 ‫so install dependencies 217 00:08:41,640 --> 00:08:43,710 ‫just installs htpd. 218 00:08:43,710 --> 00:08:46,350 ‫Start server starts the htpd server 219 00:08:46,350 --> 00:08:50,970 ‫and stop server will stop the htpd server if it exists. 220 00:08:50,970 --> 00:08:53,250 ‫Okay, so we are good to go. 221 00:08:53,250 --> 00:08:56,130 ‫So now let's go ahead and back into Amazon S3. 222 00:08:56,130 --> 00:08:59,430 ‫I'm going to upload my zip file. 223 00:08:59,430 --> 00:09:02,850 ‫So here I found my SampleApp_Linux.zip. 224 00:09:02,850 --> 00:09:03,683 ‫I'm good to go. 225 00:09:03,683 --> 00:09:05,340 ‫Let's upload it. 226 00:09:05,340 --> 00:09:07,080 ‫And this was successful. 227 00:09:07,080 --> 00:09:09,330 ‫So now this file has been uploaded 228 00:09:09,330 --> 00:09:11,250 ‫and that's the one I'm going to be using 229 00:09:11,250 --> 00:09:13,620 ‫in my CodeDeploy deployments. 230 00:09:13,620 --> 00:09:17,610 ‫So here what I need is the full S3 URL to it. 231 00:09:17,610 --> 00:09:21,450 ‫So let's copy the S3 URI right here and paste it. 232 00:09:21,450 --> 00:09:22,283 ‫Okay? 233 00:09:22,283 --> 00:09:23,670 ‫So it's a zip file as we can see, 234 00:09:23,670 --> 00:09:24,930 ‫but we have other types 235 00:09:24,930 --> 00:09:27,330 ‫of compression mechanism if you want. 236 00:09:27,330 --> 00:09:29,280 ‫Okay, so now we're good to go. 237 00:09:29,280 --> 00:09:31,890 ‫We are not going to touch the deployment description 238 00:09:31,890 --> 00:09:33,630 ‫we're not going to talk about failures, 239 00:09:33,630 --> 00:09:36,900 ‫we're not going to be talking about content options 240 00:09:36,900 --> 00:09:37,733 ‫or overrides. 241 00:09:37,733 --> 00:09:40,740 ‫We're just going to go and create this deployment. 242 00:09:40,740 --> 00:09:43,890 ‫So now the deployment has been successfully created 243 00:09:43,890 --> 00:09:47,100 ‫and my progress of the lifecycle events 244 00:09:47,100 --> 00:09:48,750 ‫is going to appear right here. 245 00:09:48,750 --> 00:09:51,690 ‫So let's click on view events. 246 00:09:51,690 --> 00:09:52,523 ‫And it's going to show you 247 00:09:52,523 --> 00:09:54,270 ‫all the events that are going to happen 248 00:09:54,270 --> 00:09:55,440 ‫for my ES2 instance, 249 00:09:55,440 --> 00:09:58,020 ‫as you can see we're going to have ApplicationStop, 250 00:09:58,020 --> 00:10:00,488 ‫DownloadBundle, BeforeInstall, Install, 251 00:10:00,488 --> 00:10:01,380 ‫AfterInstall, 252 00:10:01,380 --> 00:10:04,650 ‫ApplicationStart and ValidateService. 253 00:10:04,650 --> 00:10:08,070 ‫So for this, the CodeDeploy agent must pick up the fact that 254 00:10:08,070 --> 00:10:09,513 ‫there is a new deployment. 255 00:10:10,560 --> 00:10:13,290 ‫And my deployment just failed, and I know why. 256 00:10:13,290 --> 00:10:15,990 ‫It's because I forgot to attach the instance role 257 00:10:15,990 --> 00:10:17,010 ‫to my EC2 instance. 258 00:10:17,010 --> 00:10:19,860 ‫So you may have noticed this while I was doing the video. 259 00:10:19,860 --> 00:10:21,990 ‫Anyway, just go to action 260 00:10:21,990 --> 00:10:25,020 ‫and then security, and then modify IAM role, 261 00:10:25,020 --> 00:10:27,180 ‫and we'll choose the IAM role 262 00:10:27,180 --> 00:10:29,730 ‫called EC2RoleForCodeDeploy. 263 00:10:29,730 --> 00:10:32,040 ‫And this of course allows my EC2 instance 264 00:10:32,040 --> 00:10:34,740 ‫to actually get the files from Amazon S3. 265 00:10:34,740 --> 00:10:38,400 ‫So let's try again to run a deployment. 266 00:10:38,400 --> 00:10:40,890 ‫So for this, let's go into this one. 267 00:10:40,890 --> 00:10:43,110 ‫I'm going to do retry deployments, 268 00:10:43,110 --> 00:10:44,400 ‫and now it's started 269 00:10:44,400 --> 00:10:45,930 ‫and hopefully now my EC2 instance 270 00:10:45,930 --> 00:10:48,750 ‫should be able to get the file from S3, 271 00:10:48,750 --> 00:10:51,000 ‫and therefore the deployment should happen. 272 00:10:51,000 --> 00:10:52,450 ‫So let's view the events now. 273 00:10:53,430 --> 00:10:56,580 ‫And as we can see now, my deployment has worked. 274 00:10:56,580 --> 00:10:58,917 ‫So we have ApplicationStops, then DownloadBundle, 275 00:10:58,917 --> 00:11:02,160 ‫BeforeInstall, Install, AfterInstall, ApplicationStart 276 00:11:02,160 --> 00:11:03,660 ‫and ValidateService. 277 00:11:03,660 --> 00:11:06,540 ‫And to verify that everything has been working, 278 00:11:06,540 --> 00:11:07,920 ‫Let's go to ESC2 instance. 279 00:11:07,920 --> 00:11:12,420 ‫I'm going to copy the public IP and type http: 280 00:11:12,420 --> 00:11:13,320 ‫and the IP address. 281 00:11:13,320 --> 00:11:15,000 ‫And we have a congratulations. 282 00:11:15,000 --> 00:11:18,360 ‫This application was deployed using AWS CodeDeploy. 283 00:11:18,360 --> 00:11:19,193 ‫So that's it. 284 00:11:19,193 --> 00:11:21,750 ‫We've performed our first deployment on CodeDeploy. 285 00:11:21,750 --> 00:11:24,300 ‫Of course, you could update the application, 286 00:11:24,300 --> 00:11:26,700 ‫update the S3 bundle zip, 287 00:11:26,700 --> 00:11:28,080 ‫and then redeploy it. 288 00:11:28,080 --> 00:11:30,960 ‫And it will be again, redeployed to your EC2 instances 289 00:11:30,960 --> 00:11:33,360 ‫based on your configurations. 290 00:11:33,360 --> 00:11:35,910 ‫So to summarize, we've looked at deployments, 291 00:11:35,910 --> 00:11:38,400 ‫we've looked at the applications. 292 00:11:38,400 --> 00:11:41,820 ‫We can look at deployment configurations where you can see 293 00:11:41,820 --> 00:11:46,410 ‫that you can deploy on EC2, on Lambda, on ECS, as well. 294 00:11:46,410 --> 00:11:48,870 ‫And you can create a deployment configuration 295 00:11:48,870 --> 00:11:50,280 ‫for the platform you want. 296 00:11:50,280 --> 00:11:52,320 ‫So if you wanted to customize, for example, 297 00:11:52,320 --> 00:11:55,170 ‫the number of healthy hosts as a percentage with a number 298 00:11:55,170 --> 00:11:57,090 ‫for controlling how CodeDeploy 299 00:11:57,090 --> 00:11:58,650 ‫deploys your application. 300 00:11:58,650 --> 00:12:01,470 ‫And also, you can register on-premises instances here, 301 00:12:01,470 --> 00:12:03,990 ‫so that CodeDeploy can deploy the application 302 00:12:03,990 --> 00:12:05,520 ‫on-premises as well. 303 00:12:05,520 --> 00:12:08,910 ‫Also, please do not forget to terminate the EC2 instance 304 00:12:08,910 --> 00:12:10,410 ‫you've created. 305 00:12:10,410 --> 00:12:12,000 ‫All right, that's it for this lecture. 306 00:12:12,000 --> 00:12:13,140 ‫I hope you liked it, 307 00:12:13,140 --> 00:12:15,090 ‫and I will see you in the next lecture.