├── .env.example ├── .envrc ├── .github └── workflows │ ├── deploy-mlops-handson.yml │ └── test-mlops-handson.yml ├── .gitignore ├── Dockerfile ├── Makefile ├── README.md ├── analyse.ipynb ├── docker-compose.yaml ├── imgs ├── ml_pipeline_architecture.png └── predict_server_architecture.png ├── infra ├── .terraform-version ├── main.tf └── modules │ ├── alb │ ├── main.tf │ ├── output.tf │ └── variables.tf │ ├── ecr │ ├── main.tf │ └── output.tf │ ├── ecs │ ├── container_definitions │ │ ├── ml_pipeline.json │ │ └── predict_api.json │ ├── main.tf │ ├── output.tf │ └── variables.tf │ ├── iam │ ├── main.tf │ └── output.tf │ ├── network │ ├── main.tf │ ├── output.tf │ └── variables.tf │ ├── s3 │ ├── main.tf │ ├── output.tf │ └── variables.tf │ └── stepfunctions │ ├── definition │ └── execute_ml_pipeline.json │ ├── main.tf │ └── variables.tf ├── ml ├── __init__.py ├── aws │ ├── __init__.py │ └── controller.py ├── dataset │ ├── __init__.py │ ├── data_loader.py │ └── data_model.py ├── logger │ ├── __init__.py │ └── logging_utils.py ├── main.py ├── model │ ├── __init__.py │ ├── base_model.py │ ├── models.py │ ├── sgd_classifier_ctr_model.py │ └── sgd_classifier_ctr_optuna_model.py ├── path │ ├── __init__.py │ └── path_utils.py └── preprocessor │ ├── __init__.py │ ├── base_preprocessor.py │ └── ctr_model_preprocessor.py ├── poetry.lock ├── predictor ├── __init__.py ├── app.py ├── request.py ├── routers.py └── setup.py ├── pyproject.toml ├── tests ├── __init__.py ├── ml │ ├── __init__.py │ ├── aws │ │ ├── __init__.py │ │ └── test_controller.py │ ├── dataset │ │ ├── __init__.py │ │ ├── test_data_loader.py │ │ └── test_data_model.py │ ├── logger │ │ ├── __init__.py │ │ └── test_logging_util.py │ ├── model │ │ ├── __init__.py │ │ ├── test_base_model.py │ │ ├── test_models.py │ │ ├── test_sgd_classifier_ctr_model.py │ │ └── test_sgd_classifier_ctr_optuna_model.py │ ├── path │ │ ├── __init__.py │ │ └── test_path_utils.py │ └── preprocessor │ │ ├── __init__.py │ │ ├── test_base_preprocessor.py │ │ └── test_ctr_model_preprocessor.py └── predictor │ ├── __init__.py │ ├── test_request.py │ ├── test_routers.py │ └── test_setup.py └── train_data.zip /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/.env.example -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | dotenv 2 | -------------------------------------------------------------------------------- /.github/workflows/deploy-mlops-handson.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/.github/workflows/deploy-mlops-handson.yml -------------------------------------------------------------------------------- /.github/workflows/test-mlops-handson.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/.github/workflows/test-mlops-handson.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/Dockerfile -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/README.md -------------------------------------------------------------------------------- /analyse.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/analyse.ipynb -------------------------------------------------------------------------------- /docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/docker-compose.yaml -------------------------------------------------------------------------------- /imgs/ml_pipeline_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/imgs/ml_pipeline_architecture.png -------------------------------------------------------------------------------- /imgs/predict_server_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/imgs/predict_server_architecture.png -------------------------------------------------------------------------------- /infra/.terraform-version: -------------------------------------------------------------------------------- 1 | 1.4.5 2 | -------------------------------------------------------------------------------- /infra/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/main.tf -------------------------------------------------------------------------------- /infra/modules/alb/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/alb/main.tf -------------------------------------------------------------------------------- /infra/modules/alb/output.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/alb/output.tf -------------------------------------------------------------------------------- /infra/modules/alb/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/alb/variables.tf -------------------------------------------------------------------------------- /infra/modules/ecr/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/ecr/main.tf -------------------------------------------------------------------------------- /infra/modules/ecr/output.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/ecr/output.tf -------------------------------------------------------------------------------- /infra/modules/ecs/container_definitions/ml_pipeline.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/ecs/container_definitions/ml_pipeline.json -------------------------------------------------------------------------------- /infra/modules/ecs/container_definitions/predict_api.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/ecs/container_definitions/predict_api.json -------------------------------------------------------------------------------- /infra/modules/ecs/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/ecs/main.tf -------------------------------------------------------------------------------- /infra/modules/ecs/output.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/ecs/output.tf -------------------------------------------------------------------------------- /infra/modules/ecs/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/ecs/variables.tf -------------------------------------------------------------------------------- /infra/modules/iam/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/iam/main.tf -------------------------------------------------------------------------------- /infra/modules/iam/output.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/iam/output.tf -------------------------------------------------------------------------------- /infra/modules/network/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/network/main.tf -------------------------------------------------------------------------------- /infra/modules/network/output.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/network/output.tf -------------------------------------------------------------------------------- /infra/modules/network/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/network/variables.tf -------------------------------------------------------------------------------- /infra/modules/s3/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/s3/main.tf -------------------------------------------------------------------------------- /infra/modules/s3/output.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/s3/output.tf -------------------------------------------------------------------------------- /infra/modules/s3/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/s3/variables.tf -------------------------------------------------------------------------------- /infra/modules/stepfunctions/definition/execute_ml_pipeline.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/stepfunctions/definition/execute_ml_pipeline.json -------------------------------------------------------------------------------- /infra/modules/stepfunctions/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/stepfunctions/main.tf -------------------------------------------------------------------------------- /infra/modules/stepfunctions/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/infra/modules/stepfunctions/variables.tf -------------------------------------------------------------------------------- /ml/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ml/aws/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ml/aws/controller.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/aws/controller.py -------------------------------------------------------------------------------- /ml/dataset/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/dataset/__init__.py -------------------------------------------------------------------------------- /ml/dataset/data_loader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/dataset/data_loader.py -------------------------------------------------------------------------------- /ml/dataset/data_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/dataset/data_model.py -------------------------------------------------------------------------------- /ml/logger/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ml/logger/logging_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/logger/logging_utils.py -------------------------------------------------------------------------------- /ml/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/main.py -------------------------------------------------------------------------------- /ml/model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/model/__init__.py -------------------------------------------------------------------------------- /ml/model/base_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/model/base_model.py -------------------------------------------------------------------------------- /ml/model/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/model/models.py -------------------------------------------------------------------------------- /ml/model/sgd_classifier_ctr_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/model/sgd_classifier_ctr_model.py -------------------------------------------------------------------------------- /ml/model/sgd_classifier_ctr_optuna_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/model/sgd_classifier_ctr_optuna_model.py -------------------------------------------------------------------------------- /ml/path/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ml/path/path_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/path/path_utils.py -------------------------------------------------------------------------------- /ml/preprocessor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/preprocessor/__init__.py -------------------------------------------------------------------------------- /ml/preprocessor/base_preprocessor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/preprocessor/base_preprocessor.py -------------------------------------------------------------------------------- /ml/preprocessor/ctr_model_preprocessor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/ml/preprocessor/ctr_model_preprocessor.py -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/poetry.lock -------------------------------------------------------------------------------- /predictor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /predictor/app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/predictor/app.py -------------------------------------------------------------------------------- /predictor/request.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/predictor/request.py -------------------------------------------------------------------------------- /predictor/routers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/predictor/routers.py -------------------------------------------------------------------------------- /predictor/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/predictor/setup.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/pyproject.toml -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ml/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ml/aws/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ml/aws/test_controller.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/aws/test_controller.py -------------------------------------------------------------------------------- /tests/ml/dataset/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ml/dataset/test_data_loader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/dataset/test_data_loader.py -------------------------------------------------------------------------------- /tests/ml/dataset/test_data_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/dataset/test_data_model.py -------------------------------------------------------------------------------- /tests/ml/logger/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ml/logger/test_logging_util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/logger/test_logging_util.py -------------------------------------------------------------------------------- /tests/ml/model/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ml/model/test_base_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/model/test_base_model.py -------------------------------------------------------------------------------- /tests/ml/model/test_models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/model/test_models.py -------------------------------------------------------------------------------- /tests/ml/model/test_sgd_classifier_ctr_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/model/test_sgd_classifier_ctr_model.py -------------------------------------------------------------------------------- /tests/ml/model/test_sgd_classifier_ctr_optuna_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/model/test_sgd_classifier_ctr_optuna_model.py -------------------------------------------------------------------------------- /tests/ml/path/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ml/path/test_path_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/path/test_path_utils.py -------------------------------------------------------------------------------- /tests/ml/preprocessor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ml/preprocessor/test_base_preprocessor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/preprocessor/test_base_preprocessor.py -------------------------------------------------------------------------------- /tests/ml/preprocessor/test_ctr_model_preprocessor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/ml/preprocessor/test_ctr_model_preprocessor.py -------------------------------------------------------------------------------- /tests/predictor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/predictor/test_request.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/predictor/test_request.py -------------------------------------------------------------------------------- /tests/predictor/test_routers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/predictor/test_routers.py -------------------------------------------------------------------------------- /tests/predictor/test_setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/tests/predictor/test_setup.py -------------------------------------------------------------------------------- /train_data.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nsakki55/aws-mlops-handson/HEAD/train_data.zip --------------------------------------------------------------------------------