Building Applications Using Elastic Beanstalk

Elastic Beanstalk is a service by Amazon Web Services that makes standing up and maintaining web applications easier and more convenient. This course helps you understand how Elastic Beanstalk works and how you can use it to build your application.
Course info
Rating
(50)
Level
Intermediate
Updated
Nov 14, 2016
Duration
1h 36m
Table of contents
Description
Course info
Rating
(50)
Level
Intermediate
Updated
Nov 14, 2016
Duration
1h 36m
Description

Operating scalable web applications on Amazon Web Services requires significant knowledge and expertise. Elastic Beanstalk streamlines this process and removes the tedium and potential for problems. In this course, Building Applications Using Elastic Beanstalk, you'll learn how to launch web applications using Elastic Beanstalk. First, you'll learn how to manage, deploy, and scale your applications using Elastic Beanstalk. Next, you'll discover how to configure Elastic Beanstalk and make the best use of the capabilities Elastic Beanstalk provides for your applications. Finally, you'll explore the fundamental techniques required to use Elastic Beanstalk and manage applications running in Elastic Beanstalk. When you're finished with this course, you'll be able to use Elastic Beanstalk to its full potential in order to help you operate your applications.

About the author
About the author

Lee Atchison is the Principal Cloud Architect and Advocate at New Relic, where he’s been working for four years as a Principal Engineer and Architect. Lee has 28 years of industry experience, including seven years at AWS and Amazon.com. Lee is the author of the book “Architecting for Scale”, published by O’Reilly Media.

Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hello, my name is Lee Atchison, and welcome to my course, Building Applications Using Elastic Beanstalk. I worked at Amazon and AWS for seven years and was a senior manager that developed Elastic Beanstalk. This gives me a unique perspective on what Elastic Beanstalk can and cannot do to help you operate and maintain your web applications and services. In this course, we'll provide an introduction to Elastic Beanstalk, we'll learn the terminology used, and we'll explore the architecture and what makes up an Elastic Beanstalk application and environment. We'll deploy a sample application using Elastic Beanstalk. We'll explore how to setup and configure Elastic Beanstalk to meet the individual needs of your application, and we'll learn the various type of environments and how to use 'em. We'll learn about the Elastic Beanstalk command line tool and how to use it as well. Finally, we'll learn how to attach, configure, and use data stores with your Elastic Beanstalk environments. We'll demonstrate how Elastic Beanstalk can launch an RDS instance automatically. We'll talk about when you should and, most importantly, when you should not use this technique to create and manage your data stores. By the end of the course, you'll be able to make an informed decision about whether Elastic Beanstalk can be used to manage your service or application, even know how to deploy your application and manage it using Elastic Beanstalk. Before beginning this course, you should be generally familiar with AWS and the base services it provides, such as EC2 services for compute and S3 for file storage.

Building Applications Using Elastic Beanstalk
Hello, my name is Lee Atchinson, and welcome to the course, Building Applications Using Elastic Beanstalk. The first module in this course is Creating a Basic Elastic Beanstalk Application. In this module we will learn what Elastic Beanstalk is, and what you can use it for. We will build and launch our first sample application, then we will analyze the components that make up an Elastic Beanstalk environment and how they work together. We will learn the terminology involved in using Elastic Beanstalk. Finally, we'll show the process of deploying an updated application, demonstrating how easy it is to maintain an application using Elastic Beanstalk.

Elastic Beanstalk Architecture Part 1
Hello, my name is Lee Atchison, and welcome to Elastic Beanstalk Architecture Part One. This is the second module in the course, Building Applications Using Elastic Beanstalk. This module is the first of two modules describing various aspects of the Elastic Beanstalk architecture. In part one of this architecture series, we will examine the structure of an Elastic Beanstalk environment, the AWS components that make up the environment, and how they work together, and how they can be identified. We will create multiple environments from a single application for different types of application environments, such as production, staging, and development. We'll also show how multiple environments of multiple applications can be used together to create higher level applications. Multiple Environments for Different Purposes. In the first module in this course, we discussed the terminology involved in describing the different aspects of an Elastic Beanstalk application. We learned what an application was, what an application version was, and what an environment was. We also learned how environments had configurations, and ran specific versions of the application software. When you create an application, you upload different versions of your application, making them available to be deployed to one or more environments. Each environment is a complete running instance of the specific application version you are using. Each environment is independent. They use different AWS resources, and they operate autonomous of each other.

Configuring Elastic Beanstalk
Hello, my name is Lee Atchison, and welcome to Configuring Elastic Beanstalk. This is the fourth module in the course Building Application Using Elastic Beanstalk. In this module we will look at how to change the configuration of an Elastic Beanstalk environment. We will talk about single server environments versus auto-scaled load balanced environment. We will also talk about background-only environments. Next, we will go over different deployment options available to Elastic Beanstalk environments. And we'll discuss language platforms. Finally, we'll talk about various ways configuration options can be specified and associated with your environment. Single server environments. In the second module in this course, we talked about the difference between a typical, load balanced, auto-scaled Elastic Beanstalk environment and a single-instance environment. A load balanced, auto-scaled Elastic Beanstalk environment uses any number of EC2 instances, from one to many hundreds or thousands, all situated behind an Elastic Load Balancer. The load balancer distributes the incoming traffic to one of the many EC2 instances for processing. A single-instance environment removes the load balancer, and replaces it with a single EC2 instance with a well-known public IP address. This can dramatically reduce the cost of running small environments. You can easily switch an environment from one model to the other at any point in time.

Command Line Tool
Hello, my name is Lee Atchinson. Welcome to Elastic Beanstalk Command Line Tool. This is the fifth module in the course, Building Applications Using Elastic Beanstalk. In this module, we will examine the Elastic Beanstalk command line tool and how it can be used to manage Elastic Beanstalk applications and environments. The Elastic Beanstalk command line tool is a tool that can be downloaded to your local computer or any server. It can be used to perform most of the possible operations to Elastic Beanstalk from the command line without needing a browser or using the aws Console. This is useful both as a way of performing some operations quicker and more conveniently, but ultimately they can be used to create automated scripts and deployment pipelines. After setting up the command line tool, we will show how some simple things we've done in the AWS Console, in other modules in this course, can be done from the command line. We will talk about uploading source as application versions to Elastic Beanstalk. Next we'll take a look at how to manage environments using the command line tool. Finally, we'll show how we can use what we've learned to create simple automated scripts to perform operations, such as deploying new versions of your application. And talk about how these techniques can be used in creating a continuous deployment pipeline. In this module, we will use the Elastic Beanstalk command line tool on a Mac OS X system. The command line tool itself works nearly identical in a Linux system, and it also works in Windows systems as well.

Data Storage and Elastic Beanstalk
Hello, my name is Lee Atchison, and welcome to Data Storage and Elastic Beanstalk. This is the sixth and final module in the course, Building Applications Using Elastic Beanstalk. In this module, we will look at how to add data storage technologies to Elastic Beanstalk environments. Elastic Beanstalk environments are inherently stateless. This is because the environment is composed of individual EC2 servers, and those servers can be launched and terminated regularly during the life of the environment. Additionally, you can terminate and restart entire environments without any problems. Whenever you terminate an EC2 instance, all the data stored in that instance is lost forever. Whenever you terminate an Elastic Beanstalk environment, all state information and configuration information associated with that environment is also lost. The net result is that you cannot depend on any native EC2 storage mechanisms, such as local disk storage, for persistent storage of service environment data. Instead, you must use an external data storage technique to persist any data your environment requires. There are many different data storage options available for your use within AWS. In this module, we'll discuss the various types of storage options available on AWS. We'll talk about how to manage data storage configuration information and how that information can be used to support multiple data stores in multiple environments. We'll talk about how to store credentials for accessing data storage mechanisms in AWS. Finally, we'll talk about how all these data storage techniques can be used for other AWS resources as well, such as Simple Email Service, Simple Notification Service, or Simple Queue Service.