AH
All projects

AWS Platform CLI

  • Python
  • Boto3
  • AWS
  • EC2
  • S3
  • Route 53
GitHub

The problem

Managing cloud resources through the AWS console is slow and repetitive, and resources created ad hoc are easy to lose track of once several exist side by side.

The goal

Build one command-line interface over the core AWS services, with consistent ownership and project tagging so every resource the tool creates stays identifiable and manageable.

The architecture

  • Python CLI with a subcommand per AWS service
  • Boto3 clients for EC2 — Elastic Compute Cloud
  • Boto3 clients for S3 — Simple Storage Service
  • Route 53 DNS record management
  • Ownership and project tags applied to created resources
  • Restrictions limiting which resources the CLI may act on
$ python main.py ec2 list

INSTANCE   aviv-test-1
STATE      running
REGION     us-east-1
AWS Platform CLI representative terminal output

My approach

Cover the core lifecycle operations for each service behind one consistent command structure, and make tagging and restrictions part of resource creation rather than an afterthought.

Implementation

  • Subcommand structure per AWS service with argument parsing
  • Resource creation and listing flows for EC2, S3 and Route 53
  • Ownership / project tagging applied at creation time
  • Restrictions so operations only affect resources the tool manages

GitHub