diff --git a/.gitignore b/.gitignore index 5ae312b..e15b2c9 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,5 @@ dmypy.json deploy/ test/ **/.DS_Store + +cdk.out diff --git a/app.py b/app.py index e2519c4..e2e73ca 100644 --- a/app.py +++ b/app.py @@ -78,7 +78,10 @@ def __init__(self, scope: Construct, id: str, **kwargs) -> None: # Creates a security group for AWS RDS sg_rds = ec2.SecurityGroup(scope=self, id='SGRDS', vpc=vpc, security_group_name='sg_rds') # Adds an ingress rule which allows resources in the VPC's CIDR to access the database. - sg_rds.add_ingress_rule(peer=ec2.Peer.ipv4('10.0.0.0/24'), connection=ec2.Port.tcp(port)) + sg_rds.add_ingress_rule( + peer=ec2.Peer.ipv4(vpc.vpc_cidr_block), + connection=ec2.Port.tcp(port) + ) database = rds.DatabaseInstance( scope=self, @@ -130,7 +133,8 @@ def __init__(self, scope: Construct, id: str, **kwargs) -> None: id='MLFLOW', service_name=service_name, cluster=cluster, - task_definition=task_definition + task_definition=task_definition, + public_load_balancer=False ) # Setup security group @@ -148,10 +152,27 @@ def __init__(self, scope: Construct, id: str, **kwargs) -> None: scale_in_cooldown=Duration.seconds(60), scale_out_cooldown=Duration.seconds(60) ) + + # ================================================== + # =================== JUMP HOST ====================== + # ================================================== + jump = ec2.Instance(self, "JumpHost", + vpc=vpc, + instance_type=ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.LARGE), + machine_image=ec2.AmazonLinuxImage( + generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX_2 + ), + block_devices=[ec2.BlockDevice( + device_name= '/dev/xvda', + volume=ec2.BlockDeviceVolume.ebs(50) + )] + ) + # ================================================== # =================== OUTPUTS ====================== # ================================================== CfnOutput(scope=self, id='LoadBalancerDNS', value=fargate_service.load_balancer.load_balancer_dns_name) + CfnOutput(scope=self, id='JumpHostInstanceID', value=jump.instance_id) app = App() diff --git a/container/Dockerfile b/container/Dockerfile index 2a46733..57d515d 100644 --- a/container/Dockerfile +++ b/container/Dockerfile @@ -1,7 +1,7 @@ FROM python:3.8.0 RUN pip install \ - mlflow==1.28.0 \ + mlflow==2.0.1 \ pymysql==1.0.2 \ boto3 && \ mkdir /mlflow/ diff --git a/lab/3_deploy_model.ipynb b/lab/3_deploy_model.ipynb index 6278cdd..ecbb265 100644 --- a/lab/3_deploy_model.ipynb +++ b/lab/3_deploy_model.ipynb @@ -20,7 +20,7 @@ "metadata": {}, "outputs": [], "source": [ - "!pip install -q mlflow==1.28.0" + "!pip install -q mlflow==1.30.0" ] }, { diff --git a/lab/source_dir/requirements.txt b/lab/source_dir/requirements.txt index c6c448b..1aa47be 100644 --- a/lab/source_dir/requirements.txt +++ b/lab/source_dir/requirements.txt @@ -1 +1 @@ -mlflow==1.28.0 +mlflow==1.30.0 diff --git a/requirements.txt b/requirements.txt index 1579fa5..838e6b6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -aws-cdk-lib==2.8.0 +aws-cdk-lib==2.47.0 constructs==10.0.34