Provisioning of AWS resources

Volodymyr Rudyi

5 min read
Provisioning of AWS resources

With Amazon Web Services (AWS), your organization can enhance business agility and, at the same time, maintain the appropriate governance control. AWS offers efficient provisioning and orchestration solutions that help provision resources consistently and repeatedly. In turn, that allows scaling your company sustainably. 

After getting to know some AWS resources better and analyzing the AWS global infrastructure, you may have a critical question. How do you interact with AWS services? The answer is using an application programming interface (API). It means that specific predefined ways to interact with necessary AWS services exist. 

Thus, you may invoke or call such APIs for provisioning, configuring, and managing your AWS resources. For instance, you may launch an EC2 instance, or your organization may create the AWS Lambda function, but these requests are different. After all, they require different API calls to Amazon Web Services. 

In this blog post, we will describe the ways used for creating requests to send to AWS APIs, which allows provisioning and managing AWS resources. That includes:

  • AWS Management Console
  • AWS Command Line Interface (CLI)
  • AWS Software Development Kits (SDKs)
  • AWS Elastic Beanstalk
  • AWS CloudFormation
  • AWS Cloud Development Kit (AWS CDK)

AWS Management Console

The AWS Management Console serves as a web-based interface used to access and manage AWS services. It allows quickly accessing recently used services and searching for other ones using names, keywords, or acronyms. Also, the AWS Management Console involves wizards and automated workflows, which makes the process of carrying out tasks more simplified. 

Amazon Web Services offers a console mobile app that enables you to perform different tasks. For example, with this application, you can build out test environments, monitor resources, view alarms, access billing data, or deal with many other non-technical resources. Also, the AWS Console mobile app allows multiple identities to remain logged in simultaneously. That makes the AWS Management Console a priority place to get started and learn about the AWS services. 

But after you start working in a production-type environment, your organization will not want to depend on the point and click style. Such a style is provided by the AWS Management Console for creating and managing AWS resources. For instance, to create an Amazon EC2 instance, you have to click through different screens, set all the desired configurations, and then launch it. Therefore, if you plan to launch another EC2 instance in the future, you will be required to return to the console and repeat the mentioned steps. 

Ultimately, by having humans perform this type of manual provisioning, your company will open itself up to significant potential errors. It may be quite easy to forget about monitoring a checkbox or misspell something if conducting all tasks manually. 

AWS Command Line Interface (AWS CLI)

Implementing tools that allow scripting or programming the API calls may become an efficient approach to solving the problem of the human factor. One of such tools is the AWS Command Line Interface. The CLI enables your organization to make API requests thanks to the terminal on your machine, which helps save time significantly. Of course, this approach is different from the visual navigation style offered by the AWS Management Console. 

The AWS CLI allows automating the actions performed by your services and apps via scripts. It means that you have to write necessary commands via the CLI for making actions scriptable and repeatable. For example, you can use the AWS Command Line Interface for launching an EC2 instance. Thus, if you plan to launch another one later, you just need to perform the pre-written command again. That helps avoid potential human errors. Also, such scripts may run automatically depending on a schedule or can be triggered by other processes. 

Finally, users can install the AWS CLI on the following operating systems: Windows, macOS, and Linux. 

AWS Software Development Kits (SDKs)

Automation is incredibly critical for deploying the cloud over time successfully and predictably. Therefore, another efficient option to access and manage AWS services is called the software development kits. The SDKs make using AWS services much easier thanks to an API designed for a programming language or a platform you work with. They allow your organization to use AWS services with your current applications or build entirely new ones that will run on Amazon Web Services.

The good news is that AWS provides the appropriate documentation, along with sample code for all supported programming languages. That may help you start working with SDKs. Among the supported programming languages are C++, Java, .NET, etc. 

AWS Elastic Beanstalk

This service allows provisioning Amazon EC2-based environments. With AWS Elastic Beanstalk, you do not need to click around the console or write different commands for building out the network, EC2 instances, or Elastic Load Balancers. Instead, you may provide a certain service with your application code and the specific configuration you desire. In turn, the AWS Elastic Beanstalk takes this information and creates a relevant environment for you. Also, it helps save environment configurations easier, so you can deploy them again with no effort. 

Therefore, AWS Elastic Beanstalk brings significant convenience since your organization does not need to provision and manage all of the necessary pieces separately. Besides, the service still provides you with visibility and control over the basic resources. That allows focusing on your business application rather than infrastructure. 

AWS CloudFormation

AWS Cloud Formation is a popular service widely used for creating automated and repeatable documents. This infrastructure as code (IaC) tool allows defining various AWS resources in a declarative manner thanks to JSON and YAML text-based documents. Such documents are called CloudFormation templates. A relevant declarative format helps you determine what your organization wants, and, in turn, the CloudFormation engine takes responsibility for the details on calling APIs. That allows getting the desired thing built out. 

Fortunately, AWS CloudFormation is not limited only to EC2-based solutions. Also, it supports numerous AWS resources, including storage, databases, analytics, and so on. After defining your resources in a relevant CloudFormation template, the tool will analyze this template and start provisioning all the identified resources in parallel. 

Lastly, AWS CloudFormation involves managing each call to the backend APIs for your company. The particular service allows running the same template in different accounts or different regions, which means creating identical environments through them. That helps reduce the potential for human error because such a process is fully automated. 

AWS Cloud Development Kit (AWS CDK)

Provisioning cloud applications may often become a challenging task that requires performing manual actions, writing custom scripts, maintaining templates, or learning domain-specific languages. AWS Cloud Development Kit uses familiarity and expressive power of programming languages to model applications. This open-source framework provides high-level components (also known as constructs) that allow preconfiguring cloud resources with proven defaults. Thus, you can create cloud applications easily. 

After all, the AWS CDK provisions cloud resources safely and repeatedly through AWS CloudFormation. With a particular framework, you can build and share the custom constructs that incorporate your organization’s needs and help you speed up new projects. 

The bottom line

Below, there is a brief recap of the ways used to provision and manage AWS resources:

  • The AWS Management Console is a perfect option for learning and providing users with a proper visual. But you have to remember that it serves as a manual tool. 
  • The AWS Command Line Interface (AWS CLI) is great for scripting your interactions with Amazon Web Services using the terminal. 
  • AWS Software Development Kits (SDKs) are used to write programs for interacting with Amazon Web Services. 
  • The AWS Elastic Beanstalk is a PaaS (platform as a service) offering of Amazon Web Services that can automatically provision required resources and services based on the application specification file provided.
  • AWS CloudFormation is an IaC tool; it is the recommended modern way of provisioning AWS resources in a declarative manner.
  • The AWS Cloud Development Kit (AWS CDK) is an open-source software development framework that allows defining cloud application resources thanks to familiar programming languages.

How AgileVision can help 

As an official AWS Consulting Partner, AgileVision has helped companies provision and manage their AWS resources. Are you considering implementing new AWS products and services to meet your specific business requirements or need advice on your current ones?