5 Ways to Create and Manage AWS Resources
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 a few of them or even all of them. But there is no harm in brushing things up one more time.
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 a long way to go.
Don’t want to miss any posts from us? join us on our Facebook group, and follow us on Facebook, Twitter, LinkedIn, and Instagram. You can also subscribe to our newsletter below to not miss any updates from us.
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 the original point to list here the most obvious ways to create and manage various resources.
- AWS Console
- AWS CLI
- AWS SDK
- AWS CloudFormation
- Terraform by HashiCorp
Let’s elaborate on 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 the 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 the console.
To be honest it will give you a taste of AWS and an 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 create a test environment.
- Great for viewing AWS bills, monitoring or taking account-level insights
Cons:
- Not good for production scale due to the 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 the 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 by automating the API calls through scripts.
All you need is to install and configure CLI on 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 the below command.
aws s3 cp index.html s3://web-bucket
Now that’s cool. Right?
Pros:
- Lets 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 a lack of extensive documentation.
Related: How to Install and Configure AWS CLI on Your System
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 favourite 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 is supported by the 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.
- SDKs 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 the correct order.
- You can use YAML or JSON while describing our resources.
Pros:
- Using CloudFormation will make your stack reproducible, and 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 a different region or multiple environments such as dev, staging, test and Prod within minutes.
- While creating tables for learning purposes, deleting the stack will clean up all the tables 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 a proper template to implement something complex/less common scenarios.
- It is AWS-specific and you can’t use it to provide 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 Services, Microsoft Azure, IBM Cloud, Google Cloud Platform, DigitalOcean etc.
Pros:
- Similar to CloudFormation and additionally supports a lot of cloud providers
- Helps you automate infrastructure
- Makes your infrastructure reproducible
- The chances of you being familiar with this are more
- Handling existing resources is better supported in Terraform as of now.
Cons:
- It may not support all AWS functionality
- Doesn’t support an auto rollback to the previous state in case of an error
Related: How to Get Started With Terraform on AWS in Right Way
Conclusion
In this post, we saw 5 different options to create and manage AWS infrastructure.
- You can start with a console to learn about various services
- CLI can be used to automate tasks using scripts
- AWS SDK helps developers interact with AWS in their favourite language
- CloudFormation as an IAAC tool can help you create and manage your infra using code
- Terraform is similar to CloudFormation and supports multiple cloud providers
Do let me know in the comment what’s your favourite among all.
Enjoyed the content?
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-
- Adding a comment below on what you liked and what can be improved.
- Follow us on
- Share this post with your friends
5 thoughts on “5 Ways to Create and Manage AWS Resources”
This is a very informative article for everyone starting with AWS, thank you.
Could I mention a small correction please?
The line with the text “It is AWS specific and you can use it to provide a resource on any other cloud provider” needs to be replaced by this text “It is AWS specific and you cannot use it to provide a resource on any other cloud provider”
Thank you Stratos. Thanks for pointing it out. Have updated the article now.
This Lil article of yours is quite informative for a newbie like me to start off with. Keep up the good work Preeti
Thank you so much Raghu for your kind words 🙂
Thank you Raghu, Reviews like this keeps us motivated to write more and more. Thank you so much