The AWS Free Tier provides customers the ability to explore and try out AWS services free of charge up to specified limits for each service. The Free Tier is comprised of three different types of offerings, a 12-month Free Tier, an Always Free offer, and short term trials.
1 - Logical Architectual Diagram in Lucid Charts
2 - Conceptual Diagram in Lucid Charts
We'll be using the AWS CLI often in this bootcamp, so we'll proceed to installing this account.
- We are going to install the AWS CLI when our Gitpod enviroment lanuches.
- We are are going to set AWS CLI to use partial autoprompt mode to make it easier to debug CLI commands.
- The bash commands we are using are the same as the [AWS CLI Install Instructions]https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
Update our .gitpod.yml
to include the following task.
tasks:
- name: aws-cli
env:
AWS_CLI_AUTO_PROMPT: on-partial
init: |
cd /workspace
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
cd $THEIA_WORKSPACE_ROOT
We'll also run these commands indivually to perform the install manually
- Go to (IAM Users Console](https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/users) and create a new user
Enable console access
for the user- Create a new
Admin
Group and applyAdministratorAccess
- Create the user and go find and click into the user
- Click on
Security Credentials
andCreate Access Key
- Choose AWS CLI Access
- Download the CSV with the credentials
aws sts get-caller-identity
You should see something like this:
{
"UserId": "UserId-number",
"Account": "AccountID",
"Arn": "arn:aws:iam::AccountID:user/username-you-created"
}
We will set these credentials for the current bash terminal
export AWS_ACCESS_KEY_ID=""
export AWS_SECRET_ACCESS_KEY=""
export AWS_DEFAULT_REGION=us-east-1
these commands set variables temporary
We'll tell Gitpod to remember these credentials if we relaunch our workspaces
gp env AWS_ACCESS_KEY_ID=""
gp env AWS_SECRET_ACCESS_KEY=""
gp env AWS_DEFAULT_REGION=us-east-1
We need to turn on Billing Alerts to recieve alerts...
- In your Root Account go to the Billing Page
- Under
Billing Preferences
ChooseReceive Billing Alerts
- Save Preferences
- We need an SNS topic before we create an alarm.
- The SNS topic is what will delivery us an alert when we get overbilled
- aws sns create-topic
We'll create a SNS Topic
aws sns create-topic --name billing-alarm
which will return a TopicARN
We'll create a subscription supply the TopicARN and our Email
aws sns subscribe \
--topic-arn TopicARN \
--protocol email \
--notification-endpoint your@email.com
Check your email and confirm the subscription
- aws cloudwatch put-metric-alarm
- Create an Alarm via AWS CLI
- We need to update the configuration json script with the TopicARN we generated earlier
- We are just a json file because --metrics is is required for expressions and so its easier to us a JSON file.
aws cloudwatch put-metric-alarm --cli-input-json file://aws/json/alarm_config.json
Get your AWS Account ID
aws sts get-caller-identity --query Account --output text
- Supply your AWS Account ID
- Update the json files
- This is another case with AWS CLI its just much easier to json files due to lots of nested json
aws budgets create-budget \
--account-id AccountID \
--budget file://aws/json/budget.json \
--notifications-with-subscribers file://aws/json/budget-notifications-with-subscribers.json