Skip to main content

Daily use alternate AWS CLI

Project description

## What?

An alternate easy to use AWS cli, for some specific jobs.

It basically provides functions that I need frequently.

## Install
```bash
pip install eyws
```

## Permissions Required

**list-costs** and **email-costs** require you to enable Cost Explorer first on the console and give following permissions:

```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ce:GetReservationUtilization",
"ce:GetDimensionValues",
"ce:GetCostAndUsage",
"ce:GetTags"
],
"Resource": "*"
}
]
}
```
AWSConfigRoleForOrganizations is optional for appending organization information to usage costs.

```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "organizations:DescribeOrganization",
"Resource": "*"
}
]
}
```

Keep in mind that each paginated Cost Explorer API request will cost you $0.01 ([Learn more](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-explorer-what-is.html)).

**list-instances**, **list-zones**, **list-regions**, **list-images**, **list-key-pairs**, **list-sec-groups** require:

```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeRegions",
"ec2:DescribeImages",
"ec2:DescribeKeyPairs",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}
```

## Usage
```bash
Usage: eyws <action> [options]

<action> can be:
create-instances
stop-instances
terminate-instances
list-instances
list-zones
list-regions
list-images
list-sec-groups
list-costs
list-key-pairs
list-costs
email-costs
install-docker

Options:
--version show program's version number and exit
-h, --help Show this help message and exit
-p PROFILE, --profile=PROFILE
aws profile to use (~/.aws/config) (default=default
profile)
-c Instance Count, --count=Instance Count
Number of instances to launch (default=1)
-n Name Tag, --name=Name Tag
Append a name tag to instances
-t Instance Type, --instance-type=Instance Type
Type of instances to launch (default=t2.micro)
-r Region, --region=Region
EC2 region to list and launch instances in
(default=.aws/config)
-z Zone, --zone=Zone Availability zone to list and launch instances in
(default=random when launching instances)
-a Ami, --ami=Ami AMI ID to use (default=ami-de8fb135)
-k KEY_PAIR, --key-pair=KEY_PAIR
Key pair name to use on instances
-i IDENTITY, --identity=IDENTITY
SSH private key file to connect to instances
-u USER, --user=USER SSH user to connect as to instances
-e Size, --ebs-vol-size=Size
EBS volume size in GB to attach each instance
(default=8)
--ebs-vol-type=Volume Type
Volume type to attach (default=gp2)
types=[('standard', 'Magnetic'), ('io1', 'Provisioned
IOPS SSD'), ('gp2', 'General Purpose SSD'), ('sc1',
'Cold HDD'), ('st1', 'Throughput Optimized HDD')]
--ebs-delete=Delete On Termination
Delete volume on termination (default=True)
--ebs-vol-name=EBS_VOL_NAME
Volume name (default=/dev/sda1)
--iops=IOPS IOPS. Not supported for volume type gp2 (default=100)
-s Security Group Name, --sec-group=Security Group Name
Security Group name to use for launching instances
--instance-id=instance Id
instance id to start/stop/destroy/install
--days=DAYS Usage cost charged since <days> days
--months=MONTHS Months to check costs for. 1 means current month.
(default=1)
--ignore-service-usage
Do not display costs for each service type
--emails=EMAILS Comma separated (without space) email addresses to notify i.e.
can@x.com,b@y.com
--template=TEMPLATE Jinja template file
--smtp-host=SMTP_HOST
SMTP host to use for sending emails
--smtp-port=SMTP_PORT
SMTP port to use for sending emails
--smtp-from=SMTP_FROM
Sender email address
--dry-run Dry run operations
--install-docker Install Docker on instances
--do-not-wait Do not wait until instances are fully up and running
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eyws-1.0.0b5.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

eyws-1.0.0b5-py2.py3-none-any.whl (18.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file eyws-1.0.0b5.tar.gz.

File metadata

  • Download URL: eyws-1.0.0b5.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0

File hashes

Hashes for eyws-1.0.0b5.tar.gz
Algorithm Hash digest
SHA256 19baf25046baa6ce7ea5e5db0ec6eb140d40cd6fcfc3cee305a2d160bc08c365
MD5 c7fcc46530cf0ce621f73bbf66b65f9e
BLAKE2b-256 4d45a1db48431de2682690fbdb5f7c348ff65253277fbce94235a4af956d60e5

See more details on using hashes here.

File details

Details for the file eyws-1.0.0b5-py2.py3-none-any.whl.

File metadata

  • Download URL: eyws-1.0.0b5-py2.py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0

File hashes

Hashes for eyws-1.0.0b5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 39e172f78984aca795a355e16ea918dddfeadb978841c526badebb06fd930373
MD5 4408057de582541067c947e239fe331a
BLAKE2b-256 1984c7553558701d9c9eb6e3084a8cda2babdabf400f4eeda34a34b2471198fa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page