gecko/scripts/aws/create.py

44 lines
1.0 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Start a number of AVA nodes on Amazon EC2
"""
import boto3
bootstapNode = "Cascade-Bootstrap"
fullNode = "Cascade-Node"
def runInstances(ec2, num: int, name: str):
if num > 0:
ec2.run_instances(
ImageId="ami-0c088c21fbcdb8a48",
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():
import argparse
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("numBootstraps", type=int)
parser.add_argument("numNodes", type=int)
args = parser.parse_args()
ec2 = boto3.client("ec2")
runInstances(ec2, args.numBootstraps, bootstapNode)
runInstances(ec2, args.numNodes, fullNode)
if __name__ == "__main__":
main()