concrete.ml.deployment.deploy_to_aws.md
module concrete.ml.deployment.deploy_to_aws
concrete.ml.deployment.deploy_to_awsMethods to deploy a client/server to AWS.
It takes as input a folder with: - client.zip - server.zip - processing.json
It spawns a AWS EC2 instance with proper security groups. Then SSHs to it to rsync the files and update Python dependencies. It then launches the server.
Global Variables
DATE_FORMAT
DEFAULT_CML_AMI_ID
function create_instance
create_instancecreate_instance(
instance_type: str = 'c5.large',
open_port=5000,
instance_name: Optional[str] = None,
verbose: bool = False,
region_name: Optional[str] = None,
ami_id='ami-0d7427e883fa00ff3'
) → Dict[str, Any]Create a EC2 instance.
Arguments:
instance_type(str): the type of AWS EC2 instance.open_port(int): the port to open.instance_name(Optional[str]): the name to use for AWS created objectsverbose(bool): show logs or notregion_name(Optional[str]): AWS regionami_id(str): AMI to use
Returns:
Dict[str, Any]: some information about the newly created instance. - ip - private_key - instance_id - key_path - ip_address - port
function deploy_to_aws
deploy_to_awsdeploy_to_aws(
instance_metadata: Dict[str, Any],
path_to_model: Path,
number_of_ssh_retries: int = -1,
wait_bar: bool = False,
verbose: bool = False
)Deploy a model to a EC2 AWS instance.
Arguments:
instance_metadata(Dict[str, Any]): the metadata of AWS EC2 instance created using AWSInstance or create_instancepath_to_model(Path): the path to the serialized modelnumber_of_ssh_retries(int): the number of ssh retries (-1 is no limit)wait_bar(bool): whether to show a wait bar when waiting for ssh connection to be availableverbose(bool): whether to show a logs
Returns: instance_metadata (Dict[str, Any])
Raises:
RuntimeError: if launching the server crashed
function wait_instance_termination
wait_instance_terminationwait_instance_termination(instance_id: str, region_name: Optional[str] = None)Wait for AWS EC2 instance termination.
Arguments:
instance_id(str): the id of the AWS EC2 instance to terminate.region_name(Optional[str]): AWS region (Optional)
function terminate_instance
terminate_instanceterminate_instance(instance_id: str, region_name: Optional[str] = None)Terminate a AWS EC2 instance.
Arguments:
instance_id(str): the id of the AWS EC2 instance to terminate.region_name(Optional[str]): AWS region (Optional)
function delete_security_group
delete_security_groupdelete_security_group(security_group_id: str, region_name: Optional[str] = None)Terminate a AWS EC2 instance.
Arguments:
security_group_id(str): the id of the AWS EC2 instance to terminate.region_name(Optional[str]): AWS region (Optional)
function main
mainmain(
path_to_model: Path,
port: int = 5000,
instance_type: str = 'c5.large',
instance_name: Optional[str] = None,
verbose: bool = False,
wait_bar: bool = False,
terminate_on_shutdown: bool = True
)Deploy a model.
Arguments:
path_to_model(Path): path to serialized model to serve.port(int): port to use.instance_type(str): type of AWS EC2 instance to use.instance_name(Optional[str]): the name to use for AWS created objectsverbose(bool): show logs or notwait_bar(bool): show progress bar when waiting for ssh connectionterminate_on_shutdown(bool): terminate instance when script is over
class AWSInstance
AWSInstanceAWSInstance.
Context manager for AWS instance that supports ssh and http over one port.
method __init__
__init____init__(
instance_type: str = 'c5.large',
open_port=5000,
instance_name: Optional[str] = None,
verbose: bool = False,
terminate_on_shutdown: bool = True,
region_name: Optional[str] = None,
ami_id: str = 'ami-0d7427e883fa00ff3'
)Last updated
Was this helpful?