AWS SageMaker Example

This is the source code for the Medium article https://medium.com/weareservian/machine-learning-on-aws-sagemaker-53e1a5e218d9

Before successfully running this code, you may need to fill in your personal configurations (e.g. S3 bucket name)

Pre-requisite

  • Python3
  • AWS SDK
  • Docker
  • Terraform (optional)

Setup AWS resources

By default AWS region ap-southeast-2 is used. Change terraform config if necessary

export AWS_DEFAULT_REGION=ap-southeast-2
cd terraform
terraform init # for the first time
terraform apply
terraform output --json > ../sagemaker/cloud_config.json
cd ..

Generate Demo data

python data/generate.py --output data/data.csv

Test in local environment

python sagemaker/jobsubmit.py --local

Invocate Local endpoint

curl --location --request POST '127.0.0.1:8080/invocations' \
     --header 'Content-Type: application/json' \
     --data-raw '[[1,2,3,4,5,6,7,8,19,10],[1,2,3,4,5,6,7,8,9,10]]'

Upload data to s3 bucket

aws s3 cp data/data.csv s3://$(cd terraform && terraform output s3bucket | tr -d '"')/

Submit to AWS cloud

python sagemaker/jobsubmit.py

Invocate Remote endpoint

python sagemaker/invoke.py

Clean up Cloud environment

cd terraform
terraform destroy
cd ..