Learn Amazon cloud principles and explore how a simple application deployment process on AWS works with this AWS developer tutorial for beginners.
Key AWS concepts for developers
The Amazon Web Services cloud is a complex ecosystem of tools and services. Developers who want to get started developing and deploying applications on AWS don’t need to know everything about the platform, but they should understand the following core concepts.
APIs
APIs are essential to cloud-based applications; they serve as the glue that connects the many services and apps.
The majority of cloud services include a cloud API that allows your applications to interface with them. You’d generally use the S3 API to move data into or out of an Amazon Simple Storage Service (S3) storage bucket, for example. There are alternative ways to communicate with S3, but the API is the preferred method for applications. Other AWS application development operations, such as assigning an IP address or creating a snapshot of an Amazon Elastic Compute Cloud (EC2) virtual machine, can be accomplished with APIs.
Networking
Most cloud-based applications interface with the network using a cloud load balancer. Load balancers accept incoming traffic from the internet and forward it to internal applications or individual services running within your cloud environment. They also route outbound traffic to its destination.
Load balancers are not strictly required — it’s possible to deploy an application to the cloud without one — but for security and performance reasons, a load balancer helps separate your application from the internet.
Understand load balancing
You can also link your cloud-based resources to a private network by configuring a VPN, such as AWS VPN. You can utilize Amazon VPC, a virtual network that you build, in addition to a VPN, to make connecting private resources in a cloud environment easier.
Essential AWS services and tools developers need to know
• AWS provides over 200 cloud services. Developers don’t need to be experts in all of them, but they should be familiar with the following Amazon cloud services:
• • Elastic Compute Cloud (Amazon) (EC2). As part of AWS’ standard compute service, you can choose from a variety of virtual machine configurations, including Linux and Windows, each with its own set of virtual hardware resources. After you’ve chosen your instances, you may start them up and use them to host applications.
• • Simple Storage Service (Amazon) (S3). The AWS object storage service allows you to store any sort of unstructured data and then access it as needed.
• • Relational Database Service (Amazon) (RDS). Amazon RDS can create and maintain databases with a range of database engines, including MySQL, Microsoft SQL, and PostgreSQL, among others.
• • Elastic Load Balancing on Amazon (ELB). Several types of load balancers are available through Amazon ELB. Each load balancer type is designed for a specific set of scenarios. If you’re new to AWS and are installing conventional web applications, the Application Load Balancer (ALB) option on ELB is likely to be your first choice.
• • Elastic Kubernetes Service by Amazon (EKS). One approach to build up a Kubernetes cluster and deploy container-based apps is to use this managed Kubernetes service. Other container services offered by AWS include Amazon Elastic Container Service (ECS), AWS Fargate, and self-managed Kubernetes clusters powered by EC2 instances. However, EKS is the most straightforward alternative for those who are already familiar with Kubernetes, but ECS may be the more straightforward option if you are new to containers in general.
• • The Amazon CloudWatch service. CloudWatch is the most basic monitoring tool for Amazon Web Services (AWS) services. It gives you a fast overview of the health and condition of AWS services, but it’s not enough for advanced monitoring.
• AWS Lambda. Developers use serverless computing to host applications as serverless functions rather than in containers or virtual machines.
• AWS Auto Scaling. With this service, you define rules about how your applications scale by increasing the number of application instances or resource allocations assigned to applications. AWS Auto Scaling manages applications automatically based on the parameters you set.
Elastic Beanstalk deployment on AWS
Elastic Beanstalk is one of the simplest ways to deploy an app if you’re a newbie developer getting started with AWS. The majority of the configuration and setup necessary to create a basic web application in the AWS cloud is automated with this AWS PaaS tool.
To use Beanstalk to deploy an AWS application, follow these steps:
1. In Beanstalk, create a new application. This isn’t the same as developing the application code; you should do that independently, outside of Beanstalk, but it is the same as generating a new application instance for Beanstalk to handle.
2. Follow these steps to deploy an AWS application with Beanstalk:
1. In Beanstalk, create a new application. This isn’t the same as developing the application code; you should do that independently, outside of Beanstalk, but it is the same as generating a new application instance for Beanstalk to handle.
2. Choose your application’s setup. Beanstalk provides pre-configured settings for hosting applications written in the majority of popular web programming languages.
Upload your application as a Zip file to Beanstalk.
Configure your application’s environment, networking, and access choices. The defaults are usually sufficient for small apps, but when working with production apps, you’ll want to understand the security and performance implications of these options.
To run the app, click the launch button.
The application is available at the URL you specified when setting it in Elastic Beanstalk once it has been launched. The program is hosted on an Amazon EC2 instance, which Beanstalk automatically configures based on the configuration choices selected during the application deployment process.