This module runs Mlflow on AWS Fargate as a load-balanced Elastic Container Service.
By default, uses Elastic File System for backend storage and S3 for artifact storage. Optionally, a Relational Database Storage instance can be used for metadata.
vpc-id: The VPC-ID that the ECS cluster will be created in.subnet-ids: The subnets that the Fargate task will use.ecr-repository-name: The name of the ECR repository to pull the image from.artifacts-bucket-name: Name of the artifacts store bucket
ecs-cluster-name: Name of the ECS cluster.service-name: Name of the service.task-cpu-units: The number of cpu units used by the Fargate task.task-memory-limit-mb: The amount (in MiB) of memory used by the Fargate task.lb-access-logs-bucket-name: Name of the bucket to store load balancer access logslb-access-logs-bucket-prefix: Prefix for load balancer access logsrds-hostname: Endpoint address of the RDS instancerds-port: Port of the RDS instancerds-credentials-secret-arn: RDS database credentials stored in SecretsManagerrds-security-group-id: Security group of the RDS instance- needed so that an inbound rule can be created to grant Fargate access to the database
efs-removal-policy: EFS removal policy.RETAINby default. Allowed values:RETAIN,DESTROY.
name: mlflow-fargate
path: modules/mlflow/mlflow-fargate
parameters:
- name: vpc-id
valueFrom:
moduleMetadata:
group: networking
name: networking
key: VpcId
- name: subnet-ids
valueFrom:
moduleMetadata:
group: networking
name: networking
key: PrivateSubnetIds
- name: ecr-repository-name
valueFrom:
moduleMetadata:
group: storage
name: ecr-mlflow
key: EcrRepositoryName
- name: artifacts-bucket-name
valueFrom:
moduleMetadata:
group: storage
name: buckets
key: ArtifactsBucketName
- name: rds-hostname
valueFrom:
moduleMetadata:
group: database
name: mlflow-mysql
key: DatabaseHostname
- name: rds-credentials-secret-arn
valueFrom:
moduleMetadata:
group: database
name: mlflow-mysql
key: CredentialsSecretArnECSClusterName: Name of the ECS cluster.ServiceName: Name of the service.LoadBalancerDNSName: Load balancer DNS name.LoadBalancerAccessLogsBucketArn: Load balancer access logs bucket arnEFSFileSystemId: EFS file system id.
{
"ECSClusterName": "mlops-mlops-mlflow-mlflow-fargate-EcsCluster97242B84-xxxxxxxxxxxx",
"ServiceName": "mlops-mlops-mlflow-mlflow-fargate-MlflowLBServiceEBACC043-xxxxxxxxxxxx",
"LoadBalancerDNSName": "xxxxxxxxxxxx.elb.us-east-1.amazonaws.com",
"LoadBalancerAccessLogsBucketArn": "arn:aws:s3:::xxxxxxxxxxxx",
"EFSFileSystemId": "fs-xxxxxxxxxxx",
}
