5 Ways to Create and Manage AWS Resources

ways to create and manage aws resources
Sharing is Caring:

Dear Reader, In this post, I am going to share 5 ways to create and manage AWS resources with you.

I am sure you already know few of them or even all of them. But there is no harm in brushing up.

What say?

Let’s go … 🙂

Background

As soon as you get started with AWS, you are presented with a simple yet vast console where you experiment and learn and get familiar with AWS services.

And you wonder, what next?

Hold your breath my friend, console is just the beginning as we have got long way to go.

Ways to Create and Manage AWS Resources

Having to work with AWS services in your day to day work, It’s always good to know various ways in which you can interact with them.

But before we get into that, let me tell you something !!!

Although, there are many different ways to create and manage resources in AWS. Under the hood, they all call the API only to perform an action.

In other words, In AWS, everything under the hood is an API call and you can invoke or call these APIs to provision, configure, and manage your AWS resources.

Let’s come back to original point to list here the most obvious ways to create and manage various resources.

  1. AWS Console
  2. AWS CLI
  3. AWS SDK
  4. AWS CloudFormation
  5. Terraform by HashiCorp

Lets elaborate each of them with pros and cons.

1. AWS Console

AWS Console is probably the easiest way to create and manage resources on AWS. You can browse various services using console and experiment with them.

In a matter of seconds you can create an S3 bucket , launch an EC2 instance or create a DynamoDB table using console.

To be honest it will give you a taste of AWS and idea of what you can do.

Pros:

  • AWS Console will help you build your knowledge of the various AWS services as a learner
  • Good to do POC or creating a test environments.
  • Great for viewing AWS bills, monitoring or taking account level insights

Cons:

  • Not good for production scale due to manual creation of all the resource
  • for example It’s very difficult to perform a set of steps to create an EC2 instance and repeat it multiple times through console again and again.

That’s where AWS CLI comes to our rescue.

2. AWS CLI

AWS CLI or Command Line Interface is an amazing unified tool from AWS which lets you create and manage resources from one place.

As the name says, you do it all from the command line either manually or automating the API calls through scripts.

All you need is to install and configure CLI in your PC and you can control multiple services from one single tool from your own PC.

for example you can copy a local file into an s3 bucket using below command.

aws s3 cp index.html s3://web-bucket

Now that’s cool. Right?

Pros:

  • Let’s you create and manage all the AWS services from a single unified tool from your own computer.
  • Helps you automate your infrastructure using scripts
  • Less susceptible to human errors due to scripted actions
  • Available for users on Windows, macOS, and Linux. 
  • You can get output in various formats for ex JSON

Cons:

  • For advanced things it becomes difficult to find proper command due to lack of extensive documentation.

3. AWS SDK

AWS SDK or Software Development Kit is another option for accessing and managing AWS services.

It allows you to interact with AWS resources through your favorite programming languages.

SDKs enable you to use AWS services with your existing applications or create entirely new applications that will run on AWS.

Currently AWS SDK supported following Programming languages.

  • Java
  • JavaScript
  • Python
  • Ruby
  • .Net
  • C++
  • Go
  • Node.js
  • PHP

Pros:

  • SDK makes it easier for you to use AWS services through an API designed for your programming language or platform.
  • Low level details are abstracted from you to make developing on AWS an easier process.
  • SDK’s are developer friendly and easy to use with lots of documentation around.

Cons:

  • None

4. AWS CloudFormation

AWS CloudFormation lets you treat your infrastructure as code. In other words, you can build your environment by writing code instead of using the console to provision resources.

  • CloudFormation is a tool/service by AWS which allows you to create/manage your entire AWS infrastructure as a code.
  • CloudFormation makes it possible to replicate an application environment easily with a few clicks.
  • You tell what you need in a declarative way in a template and CloudFormation creates them in correct order.
  • You can use YAML or JSON while describing our resources.

Pros:

  • Using CloudFormation will make your stack reproducible, iterable and you can also integrate it into a CI/CD pipeline.
  • If you have the template for a DynamoDB table, you can create the same table in different region or multiple environment such as dev, staging, test and Prod within minutes.
  • While creating tables for learning purpose,deleting the stack will clean up all the table and you don’t need to do clean up manually.
  • It determines the right operations to perform when managing your stack and rolls back changes automatically if it detects errors.
  • CloudFormation is AWS-focused, and AWS-native and new features are quickly added.
  • Good at handling secrets as It never stores them

Cons:

  • The only con I find is that, at times It becomes very difficult to find proper template to implement something complex/less common scenarios.
  • It is AWS specific and you can use it to provision a resource on any other cloud provider

5. Terraform

Terraform is an Infrastructure as a code tool similar to CloudFormation from Hashicorp.

It allows you to create, update and version your infrastructure as a code.

Supports HashiCorp Configuration Language (HCL) as well as JSON

Terraform can provision and manage infrastructure for various cloud providers such as Amazon Web ServicesMicrosoft AzureIBM CloudGoogle Cloud Platform, DigitalOcean etc.

Pros:

  • Similar to CloudFormation and additionally supports a lot of cloud providers
  • Helps you automate infrastructure
  • Makes your infrastructure reproducible
  • Chances of you being familiar with this is more
  • Handling existing resources is better supported in Terraform as of now.

Cons:

  • May not support all AWS functionality
  • Doesn’t support auto rollback to previous state in case of error

Conclusion

In this post, we saw 5 different options to create and manage AWS infrastructure.

  • You can start with console to learn about various services
  • CLI can be used to automate tasks using scrips
  • AWS SDK helps developer interact with AWS in their favorite language
  • CloudFormation as an IAAC tool can help you create an manage your infra using code
  • Terraform is similar to CloudFormation and supports multiple cloud providers

Do let me know in comment what’s your favorite among all.

Enjoyed the content?

Subscribe to our newsletter below to get awesome AWS learning materials delivered straight to your inbox.

Subscribe to our newsletter below to get awesome AWS learning materials delivered straight to your inbox.

If you liked the post,don’t forget to motivate me by-

Suggested Read:

Sharing is Caring:

3 thoughts on “5 Ways to Create and Manage AWS Resources

  1. This Lil article of yours is quite informative for a newbie like me to start off with. Keep up the good work Preeti

Leave a Reply

Your email address will not be published. Required fields are marked *