Simple CLI / module to create/start/stop EC2 instances
Project description
# ec2.py
> Simple CLI / module to create/start/stop EC2 instances. > Originally created to spin up instances to compile Python extensions for AWS Lambda projects.
Pypi Link: https://pypi.python.org/pypi/ec2.py
Features:
Single command creation of security key and instance
Idempotent, repeated calls do not result in multiple instances
Waits for AWS tasks to complete and provides confirmation.
Supports:
AWS Profiles
Instance type specification
Key generation
Start/stop/terminate Instances
## Notes
By design, the application binds instance creation to a key file (custom name can be specified). This allows enhanced security around managing the life cycle of an instance, but requires creation of more than one keyfile for multiple instances.
## Installation
- Install:
pip install ec2.py –upgrade
## Setup
- Configure AWS Credentials: aws configure
Install AWS CLI: pip install –upgrade –user awscli
## Usage
ec2 - Creates a new AWS instance of t2.nano, and a new Key ec2.py if either do not exist. If these already exist, will start the instance if stopped.
ec2 -s - Stop the instance. If one does not exist, will create a key and new instance.
ec2 -r - Remove the instance (terminates) and delete the key.
ec2 -i - Print the public dns name. Allows calling from another bash script.
ec2 -i -v - Print the instance type, ami image, public ip address, public dns name.
ec2 -p myProfile -k myKey -t t2.medium - Use a custom profile, key name and instance type.
ec2 -h - Help
## SSH to a created instance:
Make sure the pem key has chmod 0600, example: chmod 600 ec2.py.pem
Make sure the security group for the instance has port 22 connectivity allowed.
Get the Public DNS name for the instance: ec2 -i
Connect: ssh ec2-user@DNS_NAME -i ec2.py.pem
## Developer Setup
- Install VirtualEnvWrapper
sudo pip install virtualenvwrapper –upgrade
echo “source /usr/local/bin/virtualenvwrapper.sh” >> ~/.bashrc”
- Create / switch to Virtual Env
mkvirtualenv ec2 or workon ec2
- Setup
make setup
## AMI Info
AMI used: amzn-ami-hvm-2016.03.3.x86_64-gp2 (ami-6869aa05)
Selected based on compatability with AWS Lambda environment
## Articles
http://www.perrygeo.com/running-python-with-compiled-code-on-aws-lambda.html
https://markn.ca/2015/10/python-extension-modules-in-aws-lambda/
## Links
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
Built Distribution
File details
Details for the file ec2.py-0.1.4.tar.gz
.
File metadata
- Download URL: ec2.py-0.1.4.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ea0325a34508b4037b23a5f4c037d13232736e605119b19f859ddf722750417 |
|
MD5 | ecafa70056e6dd08d9efce61c71d3bee |
|
BLAKE2b-256 | 55fe111b942177190e016c40477d80331f8d31eb5ee70be68ac28313fba47a38 |
File details
Details for the file ec2.py-0.1.4-py2-none-any.whl
.
File metadata
- Download URL: ec2.py-0.1.4-py2-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4084255e87d064a2bf6deca4d9a69a74211ee4c132e40fb077f40e5ef49ca9d9 |
|
MD5 | 700a214bdf48fe98b803619eb6dfddc7 |
|
BLAKE2b-256 | b819e4172916ee708bf242bddcb9f7ad9ae4a7850e731bd7ff9d05b35fbf4521 |