The following article is based on the Lunch & Learn presentation, AWS, by David Vasquez.
Cloud computing has changed the software development game for a number of companies by allowing them to bring products to the market faster, save costs, innovate more efficiently, and scale rapidly and securely, among other things. Cloud computing refers to the process of running workloads and storing and accessing data on the internet. Amazon Web Services (AWS) is a cloud computing platform with seemingless endless supply of services and products that are used together to create sophisticated, scalable applications.
The world of software is moving at breakneck speed and it's impossible to keep up unless you have a good command of the tools that allow software development to occur in an agile manner. AWS is a tool that allows users to effectively apply best practices in software development, and is very well known by most, if not all, software development engineers.
In this article, we'll cover the following themes:
- Advantages to using cloud infrastructure services
- Basic concepts of AWS
The Advantages of Cloud Infrastructure
Using a cloud infrastructure provider greatly accelerates the initial stage of any project. It allows the realization of concept tests in an agile way and if the clients decide to deploy the application in this platform, it can minimize the disparities between the development and production environments. It also encourages the use of best practices such as infrastructure as code and the design of a resilient architecture.
One of the best things about AWS is the ease in which any engineer can implement infrastructures that would otherwise take months to put together by people with advanced technical skills.
What other advantages are there to utilizing cloud infrastructure services?
- 24/7 Availability
- Fault Tolerant
- Disaster Recovery
- Pay-as-you-go Pricing
[READ MORE: Containers & Cloud Computing at .Net Conference CO]
Basic Concepts of AWS
AWS can be overwhelming for those not familiar with the structure of how things work or the huge variety of services and products offered. A helpful trick is to understand the basic concepts and how they fit together. Let's start by defining the most commonly used elements of the system:
- VPC (Virtual Private Cloud) - Isolated segment of the cloud which you have defined and in which you can launch AWS resources
- Instance - Virtual machine
- Internet Gateway - Connects a network to the internet
- Subnet - Specific segment of the network within the VPC, instances are attached to the subnet.
Now, understanding how these elements interact is important to being able to utilize the cloud effectively. Take a look at the following diagram:
You can create an account and provision the basic elements for free using only the AWS web interface (Amazon Console), just create the components in the order we described them, grab the public IP for your new virtual machine and you're ready to go.
Keep in mind that this is about as simple as it gets with AWS, one VPA and one subnet. More complex and interactive architectures can be built using the tools and the services available. For more information about AWS, Amazon has put together extensive documentation about all of their services, including a glossary of terms, video tutorials, classes, and so much more. Visit here: https://aws.amazon.com/es/documentation/