はじめに
Amazon SageMakerを触ってみようと思い、AWSのチュートリアルを触ってみた。
そのときに詰まったポイントなどを簡単にまとめています。
チュートリアル
チュートリアルはこちら。
https://aws.amazon.com/jp/getting-started/tutorials/build-train-deploy-machine-learning-model-sagemaker/#
コードをコピペするだけなので、よく分からないうちにものが完成します。笑
10分程度で終わりますし、とりあえず雰囲気は掴めますが、詳細はあまり期待しない方で良さそうです。
詰まったポイント① リージョン
チュートリアルの3c.に書かれている以下のプログラム、
「東京」リージョンで実行するとエラーになりました。
リージョンを「オレゴン」に変えて実施したところ、エラーになりませんでした。
なんでだろう?
# import libraries
import boto3, re, sys, math, json, os, sagemaker, urllib.request
from sagemaker import get_execution_role
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from IPython.display import Image
from IPython.display import display
from time import gmtime, strftime
from sagemaker.predictor import csv_serializer
# Define IAM role
role = get_execution_role()
prefix = 'sagemaker/DEMO-xgboost-dm'
containers = {'us-west-2': '433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest',
'us-east-1': '811284229777.dkr.ecr.us-east-1.amazonaws.com/xgboost:latest',
'us-east-2': '825641698319.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest',
'eu-west-1': '685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest'} # each region has its XGBoost container
my_region = boto3.session.Session().region_name # set the region of the instance
print("Success - the MySageMakerInstance is in the " + my_region + " region. You will use the " + containers[my_region] + " container for your SageMaker endpoint.")
#詰まったポイント② バケット名
3d.に書かれているコード。
bucket_name = 'your_s3_bucket_name' # <--- change this variable to a unique name for your bucket
上記のバケット名を修正する必要があったので、
bucket_name = 'SageMakerXXXX' # <--- change this variable to a unique name for your bucket
としたら、エラーになりました↓
S3 error: An error occurred (InvalidBucketName) when calling the CreateBucket operation: The specified bucket is not valid.
原因は、S3バケットの命名規則。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/BucketRestrictions.html
- 大文字またはアンダースコアをバケット名に含めることはできません。
- 2018 年 3 月 1 日、世界中のすべての AWS リージョンで使用されている命名規則と一致するように、米国東部(バージニア北部) リージョンの S3 バケットの命名規則を更新しました。現在 Amazon S3 では、大文字やアンダースコアを含むバケット名の作成がサポートされていません。
バケット名を SageMakerXXXX
→ sagemakerXXX
に修正したところ、
S3 bucket created successfully
となりました。