/aws

A collection of bash shell scripts for automating various tasks with Amazon Web Services using the AWS CLI and jq.

Primary LanguageShellApache License 2.0Apache-2.0

AWS

A collection of bash shell scripts for automating various tasks with Amazon Web Services using the AWS CLI and jq.

Build Status

Table of contents

Why

Why does this project exist?

This repository is intended to make some of the more difficult DevOps tasks commonly required to maintain complex hosting infrastructure in AWS simple, quick and easy. This is my attempt to automate and expedite difficult, repetitive, tedious and time consuming processes into a simple shell script that gets the job done as cleanly as possible. These scripts were developed out of frustration in clicking around on the same things over and over again in the web console every day, week, month when they could easly be done in seconds in a script that uses the AWS CLI. I've tried to keep everything applicable to as many use cases across regions and across as many different AWS accounts as possible. I run many of these scripts myself, mostly on a Mac or in Linux and do periodic usability and bug checking, making updates for any changes to the CLI. I hope this collection of tools helps you too, and if you use these please hit the Star/Fork button and if you have any suggestions please open an Issue or PR!

Getting Started

What is the AWS Command Line Interface?

The AWS CLI is an open source tool built on top of the AWS SDK for Python (Boto) that provides commands for interacting with AWS services.

Installing the AWS Command Line Interface

Requirements:

  • Python 2 version 2.6.5+ or Python 3 version 3.3+
  • macOS, Linux, or Unix

If you already have pip and a supported version of Python, you can install the AWS CLI with the following command:

$ pip install awscli --upgrade --user

Configuring the AWS CLI

For general use, the aws configure command is the fastest way to set up your AWS CLI installation.

$ aws configure

The AWS CLI will prompt you for four pieces of information. AWS Access Key ID and AWS Secret Access Key are your account credentials.

Named Profiles

The AWS CLI supports named profiles stored in the config and credentials files. You can configure additional profiles by using aws configure with the --profile option or by adding entries to the config and credentials files.

$ aws configure --profile example

What is jq?

jq is a lightweight and flexible command-line JSON processor.

Installing jq

OS X: Use Homebrew to install jq:

$ brew install jq

Linux: jq is in the official Amazon Linux AMI, Debian and Ubuntu repositories.

Amazon Linux AMI, RHEL, CentOS:

$ sudo yum install jq

Debian/Ubuntu:

$ sudo apt-get install jq

Tools included in this repo:

cloudfront

CloudFront

cloudwatch

CloudWatch

ec2

EC2

elastic beanstalk

Elastic Beanstalk

iam

IAM

route53

Route53

s3

S3

vpc

VPC

waf

WAF

other tools

Other Tools

Bugs and feature requests

Have a bug or a feature request? The issue tracker is the preferred channel for bug reports, feature requests and submitting pull requests. If your problem or idea is not addressed yet, please open a new issue.

Creator

Shawn Woodford

Copyright and License

Code and Documentation Copyright 2012-2018 Shawn Woodford. Code released under the Apache License 2.0.