Contents
1️⃣ AWS アカウントの新規作成と初期セキュリティ設定
1‑1. メール認証・クレジットカード登録手順
| 手順 | 操作内容 |
|---|---|
| 1 | AWS Management Console(https://aws.amazon.com/console/)へアクセスし、Create an AWS Account をクリック。 |
| 2 | メールアドレス・パスワードを入力 → Continue。送付された認証メールのリンクで メール認証 完了。 |
| 3 | 画面指示に従い 電話番号認証(SMS または自動音声) を実施。 |
| 4 | クレジットカード情報(VISA / Mastercard 等)と請求先住所を登録。AWS は利用料金の事前承認として 1 回だけ仮チャージしますが、Free Tier の枠内であれば課金は発生しません。 |
| 5 | アカウント作成完了後、ルートユーザーでサインインし、右上メニューの My Security Credentials → Multi‑Factor Authentication (MFA) を有効化。推奨は Virtual MFA デバイス(Google Authenticator、Authy、Microsoft Authenticator 等)です。 |
1‑2. ルートユーザーの基本セキュリティベストプラクティス
- パスワードポリシー:最低 12 文字、英字・数字・記号を必須に設定(
IAM > Account settings > Password policy)。 - MFA の有効化:ルート操作すべてで二段階認証が要求され、アカウント乗っ取りリスクを大幅に低減。
- IAM ユーザーの作成:日常的な操作は最小権限の IAM ユーザーで行い、ルートユーザーは緊急時のみ使用する方針を徹底。
2️⃣ 2025 年版 AWS Free Tier と SageMaker トライアル条件
2‑1. Free Tier の主要タイプと対象期間
| タイプ | 対象期間 | 主なサービス例 | 代表的上限 |
|---|---|---|---|
| 12 か月無料 | アカウント作成日から 12 カ月間 | EC2 t3.micro、S3 5 GB、RDS db.t3.micro 等 | サービスごとに個別設定 |
| 常に無料 | 常時利用可能(使用量が 0 のサービスは対象外) | Lambda 100 万件/月、DynamoDB 25 GB ストレージ等 | 永続的に提供されるがリソースは限定 |
| トライアル型 | サービスごとの期間限定無料(例:SageMaker) | SageMaker Notebook/Studio Lab、CodeGuru 等 | トライアル開始日から時間・容量上限あり |
2‑2. SageMaker 無料トライアルの最新上限(2025 年時点)
| 項目 | 内容 |
|---|---|
| 対象インスタンス | ml.t3.medium(Notebook、Studio Lab 共通) |
| 月間利用上限 | 250 時間/月 |
| 総利用上限 | アカウント作成日から 2 カ月間で計 500 時間まで |
| 課金開始タイミング | 上限を超えた分は従量課金が自動適用 |
| 有効化時期 | アカウント作成後すぐに Free Tier が自動付与されます(手動でのオン/オフは不要) |
⚠️ 注意点:インスタンスを 停止 (Stop) すると時間は消費されませんが、Running 状態のままだと上限に早く到達します。必ず作業完了後は
StopまたはDeleteを実施してください。
2‑3. 対応リージョン(2025 年版)
以下は SageMaker Free Tier が利用可能な パブリックリージョン の一覧です。GovCloud、China(北京・宁夏)リージョン、および一部の新規ベータリージョンは除外されます。
| 大陸 | リージョンコード | 正式名称 |
|---|---|---|
| 北米 | us-east-1 |
米国東部(バージニア北部) |
us-west-2 |
米国西部(オレゴン) | |
| ヨーロッパ | eu-central-1 |
欧州(フランクフルト) |
eu-west-1 |
欧州(アイルランド) | |
| アジア‑太平洋 | ap-northeast-1 |
アジアパシフィック(東京) |
ap-northeast-2 |
アジアパシフィック(ソウル) | |
ap-southeast-1 |
アジアパシフィック(シンガポール) | |
ap-southeast-2 |
アジアパシフィック(シドニー) | |
| 中東・アフリカ | me-south-1 |
中東(バーレーン) |
af-south-1 |
アフリカ(ケープタウン) |
公式情報確認:リージョンの追加・除外は随時行われます。最新の対応一覧は AWS Region Table (https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)をご参照ください。
3️⃣ SageMaker 環境構築 – Notebook インスタンスと IAM ロール
3‑1. Notebook インスタンス作成手順
| 手順 | 操作 |
|---|---|
| 1 | コンソール左上の検索バーで SageMaker → Notebook instances を選択。 |
| 2 | Create notebook instance ボタンをクリックし、以下を入力: • Instance name(例: ml-notebook-demo)• Instance type: ml.t3.medium(Free Tier 対象)• IAM role:後述のカスタムロールを選択 • VPC:デフォルト VPC のままで OK。必要に応じてサブネット・セキュリティグループを設定 |
| 3 | Create notebook instance を確定し、ステータスが InService になるのを待つ(数分)。 |
| 4 | インスタンス名横の Open JupyterLab をクリックしてノートブック画面へアクセス。 |
Studio Lab の利用は完全無料でサインアップだけで完了します(https://aws.amazon.com/jp/sagemaker/studio-lab/)。ただし Free Tier の使用量としてはカウントされませんので、課金リスク管理が不要です。
3‑2. 最小権限 IAM ロールの作成
- IAM コンソール →
Roles→Create role - Trusted entity type に AWS service を選択し、サービス一覧から SageMaker を指定。
- 次へ進み、以下のポリシー JSON を貼り付けてカスタムロールを作成。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::YOUR_BUCKET_NAME", // ← 自分のバケット名に置き換えてください "arn:aws:s3:::YOUR_BUCKET_NAME/*" // ← バケット内オブジェクト全体へのアクセス許可 ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] } |
📌 ポリシー記述に関する注意点
YOUR_BUCKET_NAMEは ご自身で作成した S3 バケット名 に必ず置き換えてください。例:my-company-sagemaker-data- バケット ARN をハードコードせず、環境変数や CloudFormation のパラメータ化を検討すると再利用性が向上します。
cloudwatch:*とlogs:*は Notebook 実行時のモニタリングとデバッグに必要な最小権限です。
4️⃣ コスト超過防止 – Billing アラート・自動停止スクリプト
4‑1. 無料枠超過を検知する予算(Budget)設定
| 手順 | 操作 |
|---|---|
| 1 | コンソール左メニュー Billing → Budgets に遷移。 |
| 2 | Create budget → Cost budget を選択し、以下を入力: • Budget name: SageMaker Free Tier Guard• Period:Monthly(毎月リセット) • Amount: 0 USD (無料枠超過時に即通知) |
| 3 | Configure alerts で Alert threshold を 100 % に設定し、SNS topic(例:sagemaker-budget-alert)へメールアドレスを登録。 |
使用時間ベースの予算
- 同じ画面で Usage budget を作成し、サービス名
Amazon SageMaker Notebookの 使用時間 に対して月 250 h(Free Tier 上限)を上限として設定します。 - 「Report」タブで Monthly report を有効にすると、CSV が自動送信されるため、実際の消費時間がすぐに確認できます。
4‑2. 自動停止スクリプト(Python + Boto3)
以下は CloudWatch アラームや EventBridge から呼び出せるシンプルな Lambda 関数例です。Free Tier の上限に近づいたら自動で Notebook を停止します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import os import boto3 import datetime # 環境変数で対象リージョン・インスタンス名リストを渡すことが推奨 REGION = os.getenv('AWS_REGION', 'us-east-1') NOTEBOOK_TAG_KEY = os.getenv('NB_TAG_KEY', 'Owner') NOTEBOOK_TAG_VALUE = os.getenv('NB_TAG_VAL', 'my-team') sagemaker = boto3.client('sagemaker', region_name=REGION) cloudwatch = boto3.client('cloudwatch', region_name=REGION) def lambda_handler(event, context): # 1. InService の Notebook を取得 resp = sagemaker.list_notebook_instances( StatusEquals='InService', MaxResults=100 ) for nb in resp.get('NotebookInstances', []): # タグで絞り込み(任意) tags = sagemaker.list_tags(ResourceArn=nb['NotebookInstanceArn']) if any(t['Key'] == NOTEBOOK_TAG_KEY and t['Value'] == NOTEBOOK_TAG_VALUE for t in tags.get('Tags', [])): # 2. CloudWatch の使用時間メトリクスを取得 metric = cloudwatch.get_metric_statistics( Namespace='AWS/SageMaker', MetricName='NotebookInstanceRunningTime', Dimensions=[{'Name': 'NotebookInstanceName', 'Value': nb['NotebookInstanceName']}], StartTime=datetime.datetime.utcnow() - datetime.timedelta(days=1), EndTime=datetime.datetime.utcnow(), Period=86400, Statistics=['Sum'] ) hours_used = sum(dp['Sum'] for dp in metric.get('Datapoints', [])) / 3600 # 3. 上限 (250 h) 超過判定 → 停止 if hours_used >= 250: print(f"Stopping {nb['NotebookInstanceName']} (used {hours_used:.1f}h)") sagemaker.stop_notebook_instance(NotebookInstanceName=nb['NotebookInstanceName']) return {'status': 'complete'} |
- デプロイ方法:
AWS Lambda→Create function(Python 3.11)→ 上記コード貼り付け、必要な IAM ポリシー (AmazonSageMakerFullAccessとCloudWatchReadOnlyAccess) をロールにアタッチ。 - スケジュール:EventBridge の cron(0 /6 * * ? )(6 時間ごと)で実行すると、余計な時間消費を防げます。
5️⃣ ハンズオンサンプルノートブック & トライアル終了後の移行手順
5‑1. Iris データセットで学習する最小構成例
前提:S3 バケット
YOUR_BUCKET_NAMEにiris.csv(ヘッダー付き)をアップロード済み。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import pandas as pd from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import accuracy_score # 1️⃣ データ取得 df = pd.read_csv('s3://YOUR_BUCKET_NAME/iris.csv') # 2️⃣ 前処理 X = df.drop(columns='species') y = df['species'] # 3️⃣ 訓練 / テスト分割 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42 ) # 4️⃣ モデル学習(GradientBoosting は軽量で SageMaker の無料枠でも十分実行可能) model = GradientBoostingClassifier() model.fit(X_train, y_train) # 5️⃣ 評価 pred = model.predict(X_test) print('Accuracy:', accuracy_score(y_test, pred)) |
- 実行後は Billing > Cost Explorer →
Amazon SageMaker Notebookの使用時間を確認。500 h 未満であれば無料枠の範囲です。
5‑2. トライアル終了前チェックリスト
| 項目 | 実施期限 | 手順・ツール |
|---|---|---|
| インスタンス停止/削除 | 終了 7 日前 | コンソール → Notebook instances → Stop / Delete |
| データバックアップ | 終了 5 日前 | aws s3 sync s3://YOUR_BUCKET_NAME/ local-backup/ |
| 使用状況レポート取得 | 終了 3 日前 | Billing > Cost Explorer → CSV ダウンロード |
| 有料プランへの移行計画策定 | 終了直前 | 必要インスタンスサイズ・予算を見積もり、ml.m5.large 等へ変更手順をドキュメント化 |
有料利用開始の流れ
- Notebook インスタンス一覧から対象を選択し Instance type ドロップダウンで
ml.m5.largeなど希望サイズに変更。 - 設定保存 → 再起動(
Stop→Start)。 - Cost Explorer のシミュレーション画面で月額予測を確認し、予算オーバーが見込まれる場合は追加の Savings Plans や Reserved Instances を検討。
6️⃣ まとめ(要点)
| 項目 | キーポイント |
|---|---|
| アカウント作成 | メール認証 → クレジットカード登録 → Virtual MFA デバイス 設定で完了。ルートユーザーは最小限に利用。 |
| Free Tier の構造 | 12か月無料・常に無料・トライアル型の 3 種類があり、SageMaker は ml.t3.medium が月 250 h(計 500 h)まで無料。最新上限は公式サイトで必ず確認。 |
| 対応リージョン | 米国東部 (N. Virginia)・米国西部 (Oregon)・欧州 (Frankfurt, Ireland)・アジア‑パシフィック(東京、ソウル、シンガポール、シドニー)・中東(バーレーン)・アフリカ(ケープタウン)。GovCloud・China は除外。 |
| IAM ロール | 最小権限で S3 (自分のバケット) と CloudWatch/Logs のみ許可。バケット名は環境に合わせて必ず置換。 |
| コスト管理 | Budget(0 USD)と使用時間予算を設定し、SNS で即時通知。Lambda+EventBridge による自動停止スクリプトで超過リスクを低減。 |
| ハンズオン | Iris データセットで GradientBoosting を学習 → Cost Explorer で実際の使用時間を確認。 |
| トライアル終了対策 | 停止・バックアップ・レポート取得・有料プラン移行計画の 4 カステップを期限付きで実施すれば、スムーズに本格利用へシフト可能。 |
📚 参考リンク
| 内容 | URL |
|---|---|
| AWS Free Tier 公式ページ | https://aws.amazon.com/jp/free/ |
| SageMaker 料金・無料枠情報 | https://aws.amazon.com/jp/sagemaker/pricing/ |
| IAM ロール作成手順(公式) | https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_create_for-service.html |
| Virtual MFA デバイス設定ガイド | https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-sec-cred-types.html#aws-mfa |
| AWS Region Table(最新リージョン一覧) | https://aws.amazon.com/about-aws/global-infrastructure/regions_az/ |
以上が 2025 年版 の AWS アカウント作成から SageMaker Free Tier 活用、そしてトライアル終了後の有料移行までを網羅した実践的ガイドです。安全に、かつコスト意識を持って機械学習環境を構築・運用してください 🚀