2020-03-29 08:40:31 -07:00
|
|
|
#!/usr/bin/env python3
|
2020-03-29 08:39:51 -07:00
|
|
|
"""
|
|
|
|
Start a number of AVA nodes on Amazon EC2
|
|
|
|
"""
|
2020-03-10 12:20:34 -07:00
|
|
|
|
2020-03-29 08:39:51 -07:00
|
|
|
import boto3
|
2020-03-10 12:20:34 -07:00
|
|
|
|
|
|
|
|
2020-04-18 20:45:18 -07:00
|
|
|
bootstapNode = "Cascade-Bootstrap"
|
|
|
|
fullNode = "Cascade-Node"
|
2020-03-10 12:20:34 -07:00
|
|
|
|
|
|
|
|
2020-03-29 08:39:51 -07:00
|
|
|
def runInstances(ec2, num: int, name: str):
|
2020-03-10 12:20:34 -07:00
|
|
|
if num > 0:
|
|
|
|
ec2.run_instances(
|
2020-04-18 20:45:18 -07:00
|
|
|
ImageId="ami-0c088c21fbcdb8a48",
|
2020-03-10 12:20:34 -07:00
|
|
|
InstanceType="c5.large",
|
|
|
|
MaxCount=num,
|
|
|
|
MinCount=num,
|
|
|
|
SubnetId="subnet-0c80cf240e54118c8",
|
|
|
|
TagSpecifications=[
|
|
|
|
{"ResourceType": "instance", "Tags": [{"Key": "Name", "Value": name}]}
|
|
|
|
],
|
|
|
|
SecurityGroupIds=["sg-0d6172e416170b426"],
|
|
|
|
KeyName="stephen_ava",
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
2020-03-29 08:39:51 -07:00
|
|
|
import argparse
|
|
|
|
|
2020-04-18 20:45:18 -07:00
|
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
|
|
parser.add_argument("numBootstraps", type=int)
|
|
|
|
parser.add_argument("numNodes", type=int)
|
2020-03-29 08:39:51 -07:00
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
ec2 = boto3.client("ec2")
|
|
|
|
runInstances(ec2, args.numBootstraps, bootstapNode)
|
|
|
|
runInstances(ec2, args.numNodes, fullNode)
|
2020-03-10 12:20:34 -07:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|