AWS Developer: Migrating Your Applications to the Cloud

Migrating applications to the cloud can be a bit daunting and it isn't always easy to see where to start and what needs to be done. In this course, you'll learn about different migration strategies and how to make the most of the AWS Cloud.
Course info
Level
Intermediate
Updated
Apr 3, 2018
Duration
2h 43m
Table of contents
Description
Course info
Level
Intermediate
Updated
Apr 3, 2018
Duration
2h 43m
Description

Migrating applications to the cloud can be a bit daunting and it is not always easy to see where to start and what needs to be done. In this course, AWS Developer: Migrating Your Applications to the Cloud, you will learn about the different migration strategies at your disposal and how to make the most of the AWS Cloud, without having to rewrite your entire application. First, you will learn how to build applications for autoscaling, which is one of the most important promises of the cloud. Next, you will explore some of AWS' managed services and see how their almost infinite scale can help your applications. Finally, you will discover how these managed services can also reduce maintenance overhead and simplify your architecture. When you're finished with this course, you'll be comfortable planning a cloud migration of your own and how to take advantage of many of AWSí managed services.

About the author
About the author

Fabien has been in the web development industry for over eight years, all of them working with Microsoft technologies. More recently, he has been busy building microservices in .Net and is passionate about continuous delivery and automation.

More from the author
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone. My name Fabien Ruffin, and welcome to my course, AWS Developer: Migrating Your Applications to the Cloud. Migrating your business to the cloud can be quite challenging, and there is a lot to think about to make a migration successful, and more importantly, make the most of what cloud computing has to offer. In this course, we are going to look into what strategies we have at our disposal to give our migrations the best chance of success and see how AWS's managed services can greatly improve our application's architecture by going through practical examples. Some of the major topics that we will cover include storing application data in S3, migrating application logs to CloudWatch logs, centralizing session state management with DynamoDB, centralizing our caching layer with Redis and ElastiCache, message queuing with SQS, and sending emails with SES. By the end of this course, you'll be comfortable planning a cloud migration of your own and how to take advantage of many of AWS's managed services. This will allow your applications to gracefully scale out and in based on your workloads, which is one of the cloud's biggest promises. Before beginning this course, I recommend being familiar with the basics of AWS. The beginner courses in the Pluralsight library can quickly get you up to speed. I hope you'll join me on this journey to learn how to migrate your applications to AWS with the course AWS Developer: Migrating Your Applications to the Cloud at Pluralsight.

Overview
Hi, I'm Fabien Ruffin, and welcome to my course, AWS Developer: Migrating Your Applications to the Cloud. In this first module, we are going to talk about the challenges of migrating applications to the cloud and see what is so different about running applications in the cloud and especially with Amazon Web Services. Migrating your business to the cloud may sound like a daunting task, but it doesn't have to be that way. To that end, we'll talk about a few of the strategies you can use to make your migration as smooth as possible. During this course, we will migrate a couple of applications from a traditional data center environment to AWS, and I'm going to spend some time at the end of the module going through simple applications to highlight a few of the challenges we're going to solve by modifying our applications to make the most out of AWS.

Logging to CloudWatch Logs
In this module, we will look at how we can migrate our application logs from files on our application servers to Amazon CloudWatch Logs as a centralized location to store and analyze our logs. So what is CloudWatch Logs exactly? Well, CloudWatch Logs lets you monitor and troubleshoot your systems and applications using your existing system, application, and custom log files. Log data can be stored and accessed for as long as you need using highly durable, low-cost storage, and there are a few reasons to do this. First of all, as mentioned in the overview module, application servers can come and go in a cloud environment. This could be due to hardware failure or scale out and scale in events. Either way, you can't rely on your logs to always be available if they are stored as files on the application servers, so taking them out makes a lot of sense. You also won't have to worry about filling up hard drives, which is always a good thing. If you are running your application in a clustered environment on multiple servers, then analyzing logs can become very painful if you have to constantly jump from one server to the other to see what is going on. By using a centralized solution such as CloudWatch Logs, the logs from all the instances of your application are in one place in the same stream making them easier to analyze. With CloudWatch Logs, you can also set alarms when specific phrases, values, or patterns are written to your logs or when specific event frequency crosses a threshold. These alarms can then trigger notifications and automated actions, which is very useful. I'll show you how to do that later in this module. Okay, now that we understand more about CloudWatch Logs and what it is for, let's jump into the AWS console and get started.

Sending Emails with SES
Sending emails reliably, as easy as it sounds, is a very complicated problem to solve. Email, in its current form, has been around for well over 20 years, and as you can imagine, back then it was very difficult to imagine how it could be used and abused as it is today. So there are a lot of quirks and imperfections to deal with as a lot of technological legacy has been building up for so long. Email being as ubiquitous as it is today is also the main delivery mechanism for all sorts of nefarious stuff on the internet. A generally accepted statistic is that roughly 80 to 90% of all emails are in fact spam, and email service providers continuously fight to block them. This means that it is increasingly difficult to keep a good email reputation and ensure that your emails will hit your users' inbox instead of being caught by a spam filter. So, for these reasons, maintaining email servers is probably the last thing you want to do as it can be very time consuming and quite difficult to get right. But, as usual, AWS has got our back here and offers a service to take care of reliably sending emails for us. Amazon's Simple Email Service, or SES, is an email sending service designed to deliver emails in a very reliable and cost-effective way. As with all AWS services, you usually interact with SES via its web API and one of the SDKs, but SES also supports sending emails over an SMTP interface, which makes it really easy to integrate into existing applications and third-party software. SES also allows you to receive incoming emails into an S3 bucket and integrate them with other AWS services such as AWS Lambda or SNS. But in this module, we will focus on sending emails only. Let's get started.