2020-12-27
"Cloud computing" plays a vital role in the creation of software products and services. It's also one of the most highly sought-after skills in the tech industry.
In fact, most of the projects on this site will require cloud interaction of some sort—particularly with AWS's serverless products.
To use AWS in these projects, we'll need to set up an account, the CLI, and the SDK.
If you don't already have an account then sign up here.
Once you are signed up, you should be able to log in to the AWS Console. It might look overwhelming if you're seeing for the first time.
The AWS CLI is a command-line application that lets you interact with your AWS account from the terminal. It's available on all platforms.
If you are a proficient Python user, you can just install it with pip
.
pip install awscli
Otherwise, check out the official instructions.
Once installed, you should be able to run this command from the terminal to see its version.
aws --version
The CLI will access your AWS account via an "IAM user." You can create one from the Users page in your IAM console.
Once the user is created, you'll need to generate access keys (passwords, essentially) for it.
Your access keys should look something like this:
Access key ID: AKIAIOSFODNN7EXAMPLE
Secret access key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Next you need to configure the CLI so that it can access your AWS account via the IAM user.
Basically, just run this command and paste in your access keys.
aws configure
Additionally, you'll also be asked for a default region and default output format.
You may leave them empty—but generally I like to use:
Default region name [None]: us-east-1
Default output format [None]: json
Once configured, the AWS CLI saves the credentials and region/format profiles to your computer. They are typically in these locations:
~/.aws/credentials
~/.aws/config
You can open them up and edit them if you like or just run aws configure
again to change them.
Now you should be able to use your CLI to access AWS. For example, I should be able to see the S3 buckets I have in us-east-1
:
aws s3 ls
2020-12-09 22:36:32 blog.pixegami.com
2020-12-27 00:04:52 cloud-archiver.5dac84a54677.archivetest
Generally, everything that can be done in the console can also be done in the CLI. Check out the full reference guide here.
Finally, to use AWS directly from your application code, you need to download the SDK for the language you work with.
The SDKs can be configured in different ways as well, but by default it usually uses the same profiles and credentials stored by your aws configure
.
You're all set to start using AWS.
When we bring "the cloud" into a project, it's usually because there's some capability we'd like to add.
And there's many viable solutions to choose from—Azure, Google Cloud, Firebase, Digital Ocean.
So why could you choose AWS over any of these alternatives? From a new user's perspective:
Largest marketshare (at 30%) which roughly translates to lots of community resources and job opportunities.
Most services available (175+) which means more tools at your disposal, well-integrated under one umbrella.
On the flip-side, the biggest drawback is its upfront complexity.
Personally though, the reason I use AWS is because it's the technology I'm most familiar with.
It's cheaper. Most cloud "getting started" guides will show you how to spin up a server—a mercenary rented computer that stays online 24/7 to do your bidding.
But for most of my projects, I'm going utilize technology that doesn't require a hosted server. In particular:
Service | Purpose |
---|---|
S3 | File storage |
DynamoDB | Database |
Lambda | Compute engine |
Their on-demand pricing means the cost scales with usage. There is a free tier, and it only begins to cost money if usage exceeds a certain amount.
For small projects with light traffic, this usually translates to monthly costs of less than a dollar (if not completely free).
In comparison, the price of hosting a server typically starts at $5.00 per month.