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 ..