Creating project from scratched to implement the MLOPs with Deployment on AWS
- Update config.yaml
- Update schema.yaml #schema of your data
- Update params.yaml
- Update the entity
- Update the configuration manager in src config
- Update the components
- Update the pipeline
- Update the main.py
- Update the app.py
Clone the repository
https://github.com/AM-Ankitgit/MLOPS_with_AWS_Deployment.git
conda create -n venv python=3.8 -y
conda activate mlproj
pip install -r requirements.txt
# Finally run the following command
python app.py
Now,
open up you local host and port
- mlflow ui
mlflow tracking url (this url is created by dagshub)
for windows user set url and you can see the dashboard of mlflow
set MLFLOW_TRACKING_URI=https://dagshub.com/AM-Ankitgit/MLOPS_with_AWS_Deployment.mlflow
set MLFLOW_TRACKING_USERNAME=AM-Ankitgit
set MLFLOW_TRACKING_PASSWORD=9a0cfdb8c9f9890d8d9e80455ae5918fcb9f4cb6
import dagshub
dagshub.init(repo_owner='AM-Ankitgit', repo_name='MLOPS_with_AWS_Deployment', mlflow=True)
# example script :
import mlflow
with mlflow.start_run():
mlflow.log_param('parameter name', 'value')
mlflow.log_metric('metric name', 1)
Run this to export as env variables:
export MLFLOW_TRACKING_URI=https://dagshub.com/entbappy/End-to-end-Machine-Learning-Project-with-MLflow.mlflow
export MLFLOW_TRACKING_USERNAME=entbappy
export MLFLOW_TRACKING_PASSWORD=6824692c47a369aa6f9eac5b10041d5c8edbcef0
#with specific access
1. EC2 access : It is virtual machine
2. ECR: Elastic Container registry to save your docker image in aws
#Description: About the deployment
1. Build docker image of the source code
2. Push your docker image to ECR
3. Launch Your EC2
4. Pull Your image from ECR in EC2
5. Lauch your docker image in EC2
# Name of Policy:
1. AmazonEC2ContainerRegistryFullAccess
2. AmazonEC2FullAccess
- Save the URI: 322848076327.dkr.ecr.us-east-1.amazonaws.com/mlproject
open the ec2 terminal
#optinal
sudo apt-get update -y
sudo apt-get upgrade
#required
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker ubuntu
newgrp docker
# check your docker is installed
docker --version
setting>actions>runner>new self hosted runner> choose os> then run command one by one
![alt text](image.png)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION = us-east-1
AWS_ECR_LOGIN_URI = demo>> 566373416292.dkr.ecr.ap-south-1.amazonaws.com
ECR_REPOSITORY_NAME = mlproj
ECR_REPOSITORY_NAME diamond
MLflow
- Its Production Grade
- Trace all of your expriements
- Logging & tagging your model