1 00:00:00,180 --> 00:00:02,640 ‫So now let's talk about Amazon EventBridge, 2 00:00:02,640 --> 00:00:05,430 ‫and Amazon EventBridge used to be formally known 3 00:00:05,430 --> 00:00:08,270 ‫as CloudWatch Events so you will see EventBridge 4 00:00:08,270 --> 00:00:09,960 ‫in the exam, but just so you know, 5 00:00:09,960 --> 00:00:12,630 ‫if you come from old AWS experience, 6 00:00:12,630 --> 00:00:16,050 ‫then it used to be named the CloudWatch Events. 7 00:00:16,050 --> 00:00:19,140 ‫So with EventBridge, you can do a lot of things. 8 00:00:19,140 --> 00:00:21,510 ‫For example, we can schedule cron jobs in the Cloud, 9 00:00:21,510 --> 00:00:23,010 ‫so we can schedule scripts. 10 00:00:23,010 --> 00:00:26,580 ‫For example, we say, "Hey, every hour please trigger 11 00:00:26,580 --> 00:00:28,200 ‫a Lambda function," 12 00:00:28,200 --> 00:00:30,720 ‫and that Lambda function will run a script. 13 00:00:30,720 --> 00:00:33,090 ‫So the events are generated every hour, 14 00:00:33,090 --> 00:00:34,980 ‫hence the name Amazon EventBridge, 15 00:00:34,980 --> 00:00:37,860 ‫but not just a schedule like every hour, 16 00:00:37,860 --> 00:00:40,740 ‫it can also react to an event pattern. 17 00:00:40,740 --> 00:00:42,750 ‫So there are event rules that can react 18 00:00:42,750 --> 00:00:44,580 ‫to a service doing something. 19 00:00:44,580 --> 00:00:46,890 ‫For example, you can react to the event 20 00:00:46,890 --> 00:00:50,610 ‫of IAM root user sign in in the console. 21 00:00:50,610 --> 00:00:53,370 ‫So when that happens, maybe you want to send a message 22 00:00:53,370 --> 00:00:56,610 ‫into an SNS topic and receive an email notification, 23 00:00:56,610 --> 00:00:59,580 ‫so that if anyone is using the root account, 24 00:00:59,580 --> 00:01:01,020 ‫then you will receive an email, 25 00:01:01,020 --> 00:01:04,230 ‫which may be a good security feature for your accounts. 26 00:01:04,230 --> 00:01:06,720 ‫Also, for example, you have different destinations, 27 00:01:06,720 --> 00:01:08,040 ‫you can trigger Lambda functions, 28 00:01:08,040 --> 00:01:10,110 ‫send SNS and SQS messages, and so on, 29 00:01:10,110 --> 00:01:12,450 ‫I will show you this all in a second. 30 00:01:12,450 --> 00:01:14,730 ‫So EventBridge sits in the middle 31 00:01:14,730 --> 00:01:18,150 ‫and we have all the sources that can send events 32 00:01:18,150 --> 00:01:19,890 ‫into Amazon EventBridge. 33 00:01:19,890 --> 00:01:22,470 ‫So for example, EC2 instances when they start, 34 00:01:22,470 --> 00:01:24,900 ‫when they're stop, when they're terminated, and so on. 35 00:01:24,900 --> 00:01:26,070 ‫Code Build, for example, 36 00:01:26,070 --> 00:01:27,690 ‫if you have a build that fails 37 00:01:27,690 --> 00:01:30,000 ‫or S3, whenever there's an event, for example, 38 00:01:30,000 --> 00:01:31,740 ‫when an object is uploaded, 39 00:01:31,740 --> 00:01:33,600 ‫or Trusted Advisor when you have a new finding 40 00:01:33,600 --> 00:01:35,250 ‫of security in your accounts 41 00:01:35,250 --> 00:01:38,680 ‫or as a good combo, you can combine EventBridge 42 00:01:38,680 --> 00:01:42,810 ‫and CloudTrail and actually intercept any API call made 43 00:01:42,810 --> 00:01:45,930 ‫within your AWS accounts, which is huge. 44 00:01:45,930 --> 00:01:48,510 ‫Also, as I said, you can have a schedule or a cron, 45 00:01:48,510 --> 00:01:52,888 ‫so you can say every four hours or every Monday at 8:00 am, 46 00:01:52,888 --> 00:01:54,300 ‫the first Monday of the month, 47 00:01:54,300 --> 00:01:56,580 ‫this is something you can do as well. 48 00:01:56,580 --> 00:01:59,430 ‫Then these events get sent into Amazon EventBridge 49 00:01:59,430 --> 00:02:01,170 ‫and you can set up a filter. 50 00:02:01,170 --> 00:02:04,260 ‫For example, you say, "Hey, I only want these events 51 00:02:04,260 --> 00:02:07,860 ‫for a specific bucket," for Amazon is free, for example. 52 00:02:07,860 --> 00:02:11,220 ‫Then EventBridge is going to generate adjacent document 53 00:02:11,220 --> 00:02:14,220 ‫that represents the details about your events. 54 00:02:14,220 --> 00:02:17,250 ‫So which instance, for example, gets started, 55 00:02:17,250 --> 00:02:19,050 ‫whether its ID, and so on. 56 00:02:19,050 --> 00:02:22,350 ‫A lot of information, the time, the IP, and so on. 57 00:02:22,350 --> 00:02:26,010 ‫So once this is done, then this JSON document, this event, 58 00:02:26,010 --> 00:02:29,190 ‫can be sent into so many kind of different destinations, 59 00:02:29,190 --> 00:02:31,980 ‫allowing you to do really awesome integrations. 60 00:02:31,980 --> 00:02:35,430 ‫For example, you can schedule and trigger a Lambda function, 61 00:02:35,430 --> 00:02:38,730 ‫you can schedule a batch in AWS Batch, 62 00:02:38,730 --> 00:02:41,760 ‫you can launch an ECS task for Amazon ECS, 63 00:02:41,760 --> 00:02:44,370 ‫you can send a message to SQS, to SNS, 64 00:02:44,370 --> 00:02:46,350 ‫or even to a Kinesis Data Stream, 65 00:02:46,350 --> 00:02:48,450 ‫you can, for example, start a Step Function, 66 00:02:48,450 --> 00:02:51,420 ‫you can start a CI/CD Pipeline with CodePipeline 67 00:02:51,420 --> 00:02:53,730 ‫or a build with CodeBuild so you don't actually know 68 00:02:53,730 --> 00:02:55,020 ‫all these things, of course, 69 00:02:55,020 --> 00:02:56,130 ‫these are different AWS services, 70 00:02:56,130 --> 00:02:59,130 ‫but I'm just giving you an overview what you can do 71 00:02:59,130 --> 00:03:01,920 ‫and you can also, for example, start an SSM automation 72 00:03:01,920 --> 00:03:05,640 ‫or a specific EC2 action, such as starting or stopping 73 00:03:05,640 --> 00:03:07,740 ‫or restarting an EC2 instance. 74 00:03:07,740 --> 00:03:09,960 ‫So you can see the possibilities are endless 75 00:03:09,960 --> 00:03:12,630 ‫and it really depends on what is your use case. 76 00:03:12,630 --> 00:03:15,000 ‫So Amazon EventBridge is what we call 77 00:03:15,000 --> 00:03:18,000 ‫the default event bus, which is what we just saw, 78 00:03:18,000 --> 00:03:20,640 ‫which represents services from AWS 79 00:03:20,640 --> 00:03:24,660 ‫that send their events into the default event bus, 80 00:03:24,660 --> 00:03:27,270 ‫but Amazon EventBridge has more capability. 81 00:03:27,270 --> 00:03:30,210 ‫There is something called the partner event bus 82 00:03:30,210 --> 00:03:33,810 ‫and this is AWS that has integrated with partners, 83 00:03:33,810 --> 00:03:35,670 ‫most likely they are going to be software 84 00:03:35,670 --> 00:03:38,580 ‫as a service partners and they are going 85 00:03:38,580 --> 00:03:42,930 ‫to send their events directly into your partner event bus. 86 00:03:42,930 --> 00:03:46,860 ‫So if you're using, for example, Zendesk, Datadog, Auth0, 87 00:03:46,860 --> 00:03:49,590 ‫or others, you need to check the partner list. 88 00:03:49,590 --> 00:03:50,423 ‫Then there's a chance 89 00:03:50,423 --> 00:03:52,260 ‫that they can send their events directly 90 00:03:52,260 --> 00:03:54,930 ‫into a specified partner event bus 91 00:03:54,930 --> 00:03:57,660 ‫and so you can react to changes happening outside 92 00:03:57,660 --> 00:04:01,440 ‫of AWS directly in your accounts. 93 00:04:01,440 --> 00:04:03,590 ‫Okay, and finally, there is a custom event bus 94 00:04:03,590 --> 00:04:05,580 ‫so you can create your own event buses 95 00:04:05,580 --> 00:04:08,700 ‫and then your own applications can send their own events 96 00:04:08,700 --> 00:04:11,010 ‫into a custom event bus and therefore, you have 97 00:04:11,010 --> 00:04:13,980 ‫the same capability of sending these events 98 00:04:13,980 --> 00:04:17,613 ‫to different destinations thanks to the EventBridge rules. 99 00:04:18,510 --> 00:04:21,330 ‫Also, you can access event buses, cross accounts, 100 00:04:21,330 --> 00:04:24,360 ‫using resource based policies as we'll see very soon. 101 00:04:24,360 --> 00:04:26,910 ‫You can also archive events so all of them 102 00:04:26,910 --> 00:04:29,250 ‫or just a subset event to a filter 103 00:04:29,250 --> 00:04:31,440 ‫and by archiving the events, 104 00:04:31,440 --> 00:04:33,930 ‫you can set it to be either indefinite retention 105 00:04:33,930 --> 00:04:36,390 ‫or a set period for retention, okay? 106 00:04:36,390 --> 00:04:38,790 ‫What you can do with these is that you can replay 107 00:04:38,790 --> 00:04:39,690 ‫these archived events. 108 00:04:39,690 --> 00:04:42,450 ‫For example, say there is a bug in your Lambda function 109 00:04:42,450 --> 00:04:44,610 ‫and you want to fix it, so you fixed it 110 00:04:44,610 --> 00:04:47,400 ‫and then you want to retest the event, replay it, 111 00:04:47,400 --> 00:04:49,830 ‫then you can replay these archived events, 112 00:04:49,830 --> 00:04:51,870 ‫which is super handy for debugging, 113 00:04:51,870 --> 00:04:53,460 ‫super handy for troubleshooting, 114 00:04:53,460 --> 00:04:56,193 ‫and for fixing production as well. 115 00:04:57,120 --> 00:04:58,860 ‫Now, EventBridge receives a lot of events 116 00:04:58,860 --> 00:05:00,900 ‫from different places and so therefore, 117 00:05:00,900 --> 00:05:02,610 ‫you need to understand what the events are going 118 00:05:02,610 --> 00:05:04,440 ‫to look like and remember, these events are 119 00:05:04,440 --> 00:05:06,450 ‫in this adjacent format we just saw. 120 00:05:06,450 --> 00:05:08,640 ‫So therefore, there is a Schema Registry 121 00:05:08,640 --> 00:05:11,160 ‫and the capability is that EventBridge is going 122 00:05:11,160 --> 00:05:13,050 ‫to analyze the events in your bus 123 00:05:13,050 --> 00:05:15,450 ‫and then it's going to infer the schema 124 00:05:15,450 --> 00:05:18,120 ‫and the schema out of the Schema Registry is going 125 00:05:18,120 --> 00:05:20,640 ‫to allow you to generate code for your application 126 00:05:20,640 --> 00:05:22,650 ‫that will know in advance how the data is structured 127 00:05:22,650 --> 00:05:23,790 ‫in the event bus. 128 00:05:23,790 --> 00:05:25,590 ‫For example, this is an example here 129 00:05:25,590 --> 00:05:27,750 ‫for a specific CodePipeline in action. 130 00:05:27,750 --> 00:05:30,000 ‫There's a schema and you can download 131 00:05:30,000 --> 00:05:32,730 ‫the code directly using the Orange button 132 00:05:32,730 --> 00:05:35,310 ‫and this will know directly how to infer the schema 133 00:05:35,310 --> 00:05:38,400 ‫and structure the data out of your event bus. 134 00:05:38,400 --> 00:05:39,682 ‫Also, the schemas can be versioned 135 00:05:39,682 --> 00:05:42,450 ‫so you can over time iterates between the schemas 136 00:05:42,450 --> 00:05:44,000 ‫of your application, of course. 137 00:05:45,060 --> 00:05:48,360 ‫Now, we have resource based policies for EventBridge, 138 00:05:48,360 --> 00:05:49,200 ‫what does that mean? 139 00:05:49,200 --> 00:05:51,810 ‫That means that you can manage permissions 140 00:05:51,810 --> 00:05:53,700 ‫for a specific event bus. 141 00:05:53,700 --> 00:05:54,840 ‫For example, you can say 142 00:05:54,840 --> 00:05:58,200 ‫that a specific event bus can be allowed 143 00:05:58,200 --> 00:06:02,130 ‫or denied other events from other regions or accounts 144 00:06:02,130 --> 00:06:04,500 ‫and the use case for it, for example, would be 145 00:06:04,500 --> 00:06:07,290 ‫to have a central events bus 146 00:06:07,290 --> 00:06:09,240 ‫within your AWS organization, 147 00:06:09,240 --> 00:06:12,480 ‫so a set of accounts and then all these events are going 148 00:06:12,480 --> 00:06:14,790 ‫to be aggregated, so how does that work? 149 00:06:14,790 --> 00:06:18,270 ‫Well, we have a central event bus with a specific account 150 00:06:18,270 --> 00:06:21,930 ‫and we're going to add a specific resource based policy, 151 00:06:21,930 --> 00:06:25,140 ‫allowing other accounts to send events to it 152 00:06:25,140 --> 00:06:28,350 ‫and therefore, this other account, for example, 153 00:06:28,350 --> 00:06:30,450 ‫will be able to do a put events 154 00:06:30,450 --> 00:06:34,530 ‫and send events directly into the central event bus. 155 00:06:34,530 --> 00:06:37,050 ‫So that's it, we've seen EventBridge left to right, 156 00:06:37,050 --> 00:06:38,010 ‫you know everything about it. 157 00:06:38,010 --> 00:06:40,110 ‫So remember, you can react to events happening 158 00:06:40,110 --> 00:06:41,970 ‫within your accounts, thanks to the default event bus, 159 00:06:41,970 --> 00:06:44,940 ‫but also partner events and also your own events 160 00:06:44,940 --> 00:06:46,260 ‫with custom buses, 161 00:06:46,260 --> 00:06:48,540 ‫you have the Schema Registry capability, 162 00:06:48,540 --> 00:06:50,400 ‫and then you have resource based policies, 163 00:06:50,400 --> 00:06:53,880 ‫which allow you to have a cross accounts, for example, 164 00:06:53,880 --> 00:06:56,250 ‫capability for event buses. 165 00:06:56,250 --> 00:06:57,900 ‫Okay, that's it, I hope you liked it 166 00:06:57,900 --> 00:06:59,850 ‫and I will see you in the next lecture.