Apache Storm deploy on EC2 made easy.
- boto3
- pyyaml
- An AWS account :-)
- An AWS Access Key
- An AMI for launching EC2 instances including Java 7 and Python 2.6.6
- A default VPC, with a default subnet and a default Security Group
- (A bunch of Security Groups for the Storm cluster: you can easily setup them
using
setup-security-groups.py
)
Create a config.yaml
configuration file starting from config.example.yaml
.
If you need to setup required Security Groups: prepare your configuration file entering all required settings (keep example data for the Storm cluster security groups). Then, run:
python setup-security-groups.py
and paste generated lines into config.yaml
.
Here is a list of supported configuration options:
region_name
: AWS region to useaws_access_key_id
: ID of your AWS Access Keyaws_secret_access_key
: your AWS secret Access Keykey_pair
: EC2 keypair to usedefault_vpc
: ID of your default VPCdefault_vpc_security_group
: ID of default security group in the VPCsecurity_groups_zk
: list of Security Group to use on ZooKeeper node(s)security_groups_ni
: list of Security Group to use on Nimbus node(s)security_groups_sv
: list of Security Group to use on Supervisor node(s)security_groups_ui
: list of Security Group to use on UI node(s)supervisors
: (optional) number of Supervisor nodes to run (default=1)slots
: (optional) number of workers to run on each Supervisor node (default=4)default_ami_id
: ID of default AMI use for launched instancesnimbus_ami_id
: (optional) ID of specific AMI to use for Nimbus instance(s)supervisor_ami_id
: (optional) ID of specific AMI to use for Supervisor instance(s)ui_ami_id
: (optional) ID of specific AMI to use for UI instance(s)zookeeper_ami_id
: (optional) ID of specific AMI to use for ZooKeeper instance(s)default_instance_type
: (optional) instance type to use for launched instancesnimbus_instance_type
: (optional) instance type to use for Nimbus instance(s)supervisor_instance_type
: (optional) instance type to use for Supervisor instance(s)ui_instance_type
: (optional) instance type to use for UI instance(s)zookeeper_instance_type
: (optional) instance type to use for ZooKeeper instance(s)
python teacup-storm.py