実践 AWSデータサイエンス

―エンドツーエンドのMLOpsパイプライン実装

[cover photo]
TOPICS
Data Science
発行年月日
PRINT LENGTH
570
ISBN
978-4-87311-968-7
原書
Data Science on AWS
FORMAT
Print PDF EPUB
Ebook
4,180円
Ebookを購入する
Print
4,180円

AWSではデータサイエンス分野で利用できるさまざまなサービスが提供されています。本書では、それらのサービスを有効に使って、データの収集、分析、モデルの訓練、テスト、デプロイまでの一連のプロセスを行う方法を紹介します。対象とする事例は、ヘルスケアデータ、時系列データ、自然言語処理、画像分類、不正検出、需要予測、レコメンデーションシステムなど非常に多岐にわたります。本書の目的は、Amazon SageMakerをはじめとしたAWSの機械学習サービスの詳細を説明するだけでなく、AWSのサービスを組み合わせることで、データサイエンスとアプリケーション開発の統合を図り、開発を効率化することであり、データサイエンティスト、データアナリスト、データエンジニア、MLエンジニアはもちろん、アプリケーション開発者や管理職にとっても役に立つ一冊です。

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

正誤表

目次

はじめに

1章 AWSにおけるデータサイエンス入門
    1.1 クラウドコンピューティングのメリット
        1.1.1 俊敏性
        1.1.2 コスト削減
        1.1.3 伸縮自在性
        1.1.4 イノベーションを加速
        1.1.5 数分内のグローバル展開
        1.1.6 プロトタイプから本番稼働への円滑な移行
    1.2 データサイエンスのパイプラインとワークフロー
        1.2.1 Amazon SageMaker Pipelines
        1.2.2 AWS Step Functions Data Science SDK
        1.2.3 Kubeflow Pipelines
        1.2.4 AWSにおけるApache Airflowのマネージドワークフロー
        1.2.5 MLflow
        1.2.6 TensorFlow Extended
        1.2.7 Human-in-the-Loopワークフロー
    1.3 MLOpsのベストプラクティス
        1.3.1 運用上の優秀性
        1.3.2 セキュリティ
        1.3.3 信頼性
        1.3.4 パフォーマンス効率
        1.3.5 コスト最適化
    1.4 Amazon AIサービスとAmazon SageMakerによるAutoML
        1.4.1 AmazonのAIサービス
        1.4.2 SageMaker AutopilotによるAutoML
    1.5 AWSでのデータ取り込み、探索、準備
        1.5.1 Amazon S3とAWS Lake Formationによるデータ取り込みとデータレイク
        1.5.2 Amazon Athena、Amazon Redshift、Amazon QuickSight によるデータ分析
        1.5.3 AWS DeequとSageMaker Processing Jobによるデータ品質評価
        1.5.4 SageMaker Ground Truthによる訓練データのラベル付け
        1.5.5 AWS Glue DataBrew、SageMaker Data Wrangler、SageMaker Processing Jobによるデータ変換
    1.6 Amazon SageMakerによるモデル訓練とチューニング
        1.6.1 SageMaker TrainingとSageMaker Experimentsによるモデルの訓練
        1.6.2 組み込みアルゴリズム
        1.6.3 Bring Your Own Script(スクリプトモード)
        1.6.4 Bring Your Own Container
        1.6.5 SageMaker JumpStartによる構築済みソリューションと事前学習済みモデル
        1.6.6 SageMaker Hyper-Parameter Tuningによるモデルのチューニングと検証
    1.7 Amazon SageMakerとAWS Lambda関数によるモデルデプロイ
        1.7.1 SageMaker Endpoint
        1.7.2 SageMaker Batch Transform
        1.7.3 AWS Lambdaによるサーバーレスモデルデプロイ
    1.8 AWSでのストリーミング分析と機械学習
        1.8.1 Amazon Kinesis Streaming
        1.8.2 Amazon Managed Streaming for Apache Kafka
        1.8.3 ストリーミング予測と異常検知
    1.9 AWSインフラストラクチャとカスタムビルトハードウェア
        1.9.1 SageMaker計算インスタンスタイプ
        1.9.2 GPUとAmazonのカスタムビルト計算ハードウェア
        1.9.3 GPUに最適化されたネットワーキングとカスタムビルトのハードウェア
        1.9.4 大規模モデル訓練に最適化されたストレージオプション
    1.10 タグ、AWS Budgets、アラートによるコスト削減
    1.11 まとめ

2章 データサイエンスのユースケース
    2.1 あらゆる産業分野にわたるイノベーション
    2.2 パーソナライズされた商品レコメンデーション
        2.2.1 Amazon Personalizeによる商品レコメンデーション
        2.2.2 Amazon SageMakerとTensorFlowによるレコメンデーションの生成
        2.2.3 Amazon SageMakerとApache Sparkによるレコメンデーションの生成
    2.3 Amazon Rekognitionによる不適切なビデオの検出
    2.4 需要予測
        2.4.1 Amazon Forecastによるエネルギー消費の予測
        2.4.2 Amazon ForecastによるAmazon EC2インスタンスの需要予測
    2.5 Amazon Fraud Detectorによるフェイクアカウントの特定
    2.6 Amazon Macieによるプライバシー漏洩検知の有効化
    2.7 会話デバイスと音声アシスタント
        2.7.1 Amazon Lexによる音声認識
        2.7.2 Amazon Pollyによる音声読み上げ変換
        2.7.3 Amazon Transcribeによる音声からテキストの変換
    2.8 テキスト分析と自然言語処理
        2.8.1 Amazon Translateによる言語翻訳
        2.8.2 Amazon Comprehendによるカスタマーサポートメッセージの分類
        2.8.3 Amazon TextractとAmazon Comprehendを使って履歴書から詳細を抽出する
    2.9 コグニティブ検索と自然言語理解
    2.10 インテリジェントなカスタマーサポートセンター
    2.11 産業用AIサービスと予知保全
    2.12 AWS IoTとAmazon SageMakerによるホームオートメーション
    2.13 ヘルスケア文書から医療情報を抽出
    2.14 自己最適化するインテリジェントなクラウドインフラストラクチャ
        2.14.1 Amazon EC2の予測Auto Scaling
        2.14.2 データストリームの異常検知
    2.15 認知と予測の能力を備えたビジネスインテリジェンス
        2.15.1 Amazon QuickSightを使って自然言語の質問をする
        2.15.2 Amazon Redshiftを使ってSageMakerモデルを訓練し呼び出す
        2.15.3 Amazon Aurora SQLデータベースからAmazon ComprehendとSageMakerモデルを呼び出す
        2.15.4 Amazon AthenaからSageMakerモデルを呼び出す
        2.15.5 Amazon Neptuneを使いグラフデータで予測する
    2.16 次世代のAIとML開発者を教育する
        2.16.1 AWS DeepLensを使ってコンピュータビジョンモデルを作る
        2.16.2 AWS DeepRacerを使って強化学習を学ぶ
        2.16.3 AWS DeepComposerを使ってGANを理解する
    2.17 量子コンピューティングを使って自然界のオペレーティングシステムをプログラムする
        2.17.1 量子ビット対デジタルビット
        2.17.2 量子超越性と量子コンピューティング時代
        2.17.3 暗号を破る
        2.17.4 分子シミュレーションと創薬
        2.17.5 物流と金融の最適化
        2.17.6 量子機械学習とAI
        2.17.7 Amazon Braketによる量子コンピュータのプログラミング
        2.17.8 AWS量子コンピューティングセンター
    2.18 コスト削減とパフォーマンス向上
        2.18.1 CodeGuru Reviewerによる自動コードレビュー
        2.18.2 CodeGuru Profilerによるアプリケーションのパフォーマンスの向上
        2.18.3 DevOps Guruによるアプリケーションの可用性の向上
    2.19 まとめ

3章 自動化された機械学習(AutoML)
    3.1 SageMaker Autopilotによる自動化された機械学習
    3.2 SageMaker Autopilotによる実験を記録
    3.3 SageMaker Autopilotを使用したテキスト分類器の訓練とデプロイ
        3.3.1 SageMaker Autopilot UIによる訓練とデプロイ
        3.3.2 SageMaker Autopilot Python SDKによるモデルの訓練とデプロイ
        3.3.3 Amazon AthenaとSageMaker Autopilotによる予測
        3.3.4 Amazon Redshift MLとSageMaker Autopilotによる訓練と予測
    3.4 Amazon Comprehendによる自動化された機械学習
        3.4.1 Amazon Comprehendの組み込みモデルによる予測
        3.4.2 Amazon Comprehend UIによるカスタムモデルの訓練とデプロイ
        3.4.3 Amazon Comprehend Python SDKによるカスタムモデルの訓練とデプロイ
    3.5 まとめ

4章 クラウドへのデータの取り込み
    4.1 データレイク
        4.1.1 S3データレイクにデータをインポート
        4.1.2 データセットの記述
    4.2 Amazon Athenaを使ってAmazon S3データレイクにクエリを出す
        4.2.1 AWSコンソールからAthenaにアクセスする
        4.2.2 AthenaテーブルとしてS3データを登録する
        4.2.3 AWS Glue Crawlerを利用して新たなデータが到着するたびにAthenaテーブルを更新する
        4.2.4 AthenaにおけるParquetベースのテーブルの生成
    4.3 AWS Glue Crawlerを用いて新しいデータを継続的に取り込む
    4.4 Amazon Redshift Spectrumによるレイクハウスの構築
        4.4.1 Amazon RedshiftデータをS3データレイクにParquetとしてエクスポートする
        4.4.2 Amazon Redshiftクラスター間におけるデータ共有
    4.5 Amazon AthenaとAmazon Redshiftのどちらを選択するか
    4.6 コスト削減とパフォーマンス向上
        4.6.1 S3 Intelligent-Tiering
        4.6.2 Parquetパーティションと圧縮
        4.6.3 Amazon Redshiftのテーブル設計と圧縮
        4.6.4 ブルームフィルタを用いたクエリパフォーマンスの向上
        4.6.5 Amazon Redshift Spectrumのマテリアライズドビュー
    4.7 まとめ

5章 データセットを探索
    5.1 AWSのデータ探索ツール
    5.2 SageMaker Studioによるデータレイクの可視化
        5.2.1 SageMaker Studioによるデータセット可視化の準備
        5.2.2 SageMaker StudioにおけるAthenaクエリの実行
        5.2.3 AthenaとSageMakerを使ってデータセットを深く調べる
    5.3 データウェアハウスにおけるクエリ実行
        5.3.1 SageMaker StudioからサンプルのAmazon Redshiftクエリを実行する
        5.3.2 Amazon RedshiftとSageMakerを使ってデータセットを深く調べる
    5.4 Amazon QuickSightを使ってダッシュボードを作る
    5.5 Amazon SageMakerとApache Sparkを使ってデータ品質の問題を検出する
        5.5.1 SageMaker Processing Job
        5.5.2 DeequとApache Sparkによるデータセット分析
    5.6 データセットのバイアス検出
        5.6.1 SageMaker Data Wranglerによるバイアスレポートの生成と可視化
        5.6.2 SageMaker Clarify Processing Jobによるバイアス検出
        5.6.3 オープンソースのSageMaker Clarifyを使ってカスタムスクリプトにバイアス検出を統合する
        5.6.4 データのバランスを取ってデータバイアスを軽減する
    5.7 SageMaker Clarifyを使ってさまざまな種類のドリフトを検出する
    5.8 AWS Glue DataBrewによるデータ分析
    5.9 コスト削減とパフォーマンス向上
        5.9.1 センシティブでないAthenaクエリ結果に共有S3バケットを使う
        5.9.2 HyperLogLogによるカウント近似
        5.9.3 Amazon RedshiftのAQUAを使ってデータウェアハウスを動的にスケールする
        5.9.4 QuickSight SPICEによるダッシュボードのパフォーマンス向上
    5.10 まとめ

6章 モデル訓練のためのデータセットの準備
    6.1 特徴量選択と特徴量エンジニアリングを行う
        6.1.1 特徴量重要度に基づいて訓練に用いる特徴量を選択
        6.1.2 モデルの精度を向上させるためのデータセットのバランス調整
        6.1.3 データセットを訓練、検証、テストセットに分割
        6.1.4 生テキストをBERT埋め込みに変換
        6.1.5 特徴量とラベルを最適化されたTensorFlowファイルフォーマットに変換
    6.2 SageMaker Processing Jobを使って特徴量エンジニアリングをスケールする
        6.2.1 scikit-learnとTensorFlowを用いた変換
        6.2.2 Apache SparkとTensorFlowを用いた変換
    6.3 SageMaker Feature Storeを通じて特徴量を共有する
        6.3.1 SageMaker Feature Storeへ特徴量を取り込む
        6.3.2 SageMaker Feature Storeから特徴量を取り出す
    6.4 SageMaker Data Wranglerによるデータの取り込みと変換
    6.5 Amazon SageMakerによるアーティファクトと実験リネージの追跡
        6.5.1 リネージ追跡の概念を理解する
        6.5.2 特徴量エンジニアリングジョブのリネージの表示
        6.5.3 SageMaker Experiments APIを理解する
    6.6 AWS Glue DataBrewによるデータの取り込みと変換
    6.7 まとめ

7章 最初のモデル訓練
    7.1 SageMakerインフラストラクチャの理解
        7.1.1 SageMakerコンテナの導入
        7.1.2 コンピューティングとネットワークの分離による可用性の向上
    7.2 SageMaker JumpStartによる事前学習済みBERTモデルのデプロイ
    7.3 SageMakerモデルの開発
        7.3.1 組み込みアルゴリズム
        7.3.2 Bring Your Own Script
        7.3.3 Bring Your Own Container
    7.4 自然言語処理の略史
    7.5 BERT Transformerアーキテクチャ
    7.6 BERTをゼロから訓練する
        7.6.1 マスクした言語モデル
        7.6.2 次文予測
    7.7 事前学習済みBERTモデルのファインチューニング
    7.8 訓練スクリプトを作る
        7.8.1 訓練、検証、テストデータセット分割をセットアップ
        7.8.2 カスタム分類器モデルのセットアップ
        7.8.3 モデルの訓練と検証
        7.8.4 モデルを保存する
    7.9 SageMaker Notebookから訓練スクリプトを起動する
        7.9.1 取り込んで監視するための指標を定義
        7.9.2 アルゴリズムのハイパーパラメータを設定
        7.9.3 インスタンスタイプとインスタンス数の選択
        7.9.4 ノートブックですべてをまとめる
        7.9.5 S3から訓練したモデルをダウンロードして検査する
        7.9.6 SageMaker Training Jobの実験リネージを表示
        7.9.7 SageMaker Training Jobのアーティファクトリネージを表示
    7.10 モデルを評価する
        7.10.1 ノートブックからアドホック予測を実行
        7.10.2 混同行列による分類器の分析
        7.10.3 TensorBoardによるニューラルネットワークの可視化
        7.10.4 SageMaker Studioによる指標の監視
        7.10.5 CloudWatch Metricsで指標を監視
    7.11 SageMaker Debuggerによるモデル訓練のデバッグとプロファイル
        7.11.1 SageMaker Debuggerのルールとアクションによる問題の検出と解決
        7.11.2 訓練ジョブのプロファイル
    7.12 モデル予測の解釈と説明
    7.13 モデルバイアスの検出と予測の説明
        7.13.1 SageMaker Clarify Processing Jobによるバイアスの検出
        7.13.2 SageMaker ClarifyとSHAPによる特徴量の寄与度と重要度の計算
    7.14 BERTのその他の訓練オプション
        7.14.1 TensorFlowのBERTモデルをPyTorchに変換
        7.14.2 SageMakerを使ってPyTorchのBERTモデルを訓練する
        7.14.3 SageMakerを使ってApache MXNetのBERTモデルを訓練する
        7.14.4 PyTorchとAWS Deep Java Libraryを使ってBERTモデルを訓練する
    7.15 コスト削減とパフォーマンス向上
        7.15.1 小さいノートブックインスタンスを使う
        7.15.2 モデル訓練スクリプトをノートブックでローカルにテストする
        7.15.3 SageMaker Debuggerを使って訓練ジョブのプロファイルを取る
        7.15.4 事前学習済みモデルから始める
        7.15.5 16ビット半精度とbfloat16を使う
        7.15.6 混合32ビット全精度と16ビット半精度
        7.15.7 量子化
        7.15.8 訓練に最適化されたハードウェアを使う
        7.15.9 スポットインスタンスとチェックポイント
        7.15.10 SageMaker Debuggerの早期停止ルール
    7.16 まとめ

8章 大規模なモデルの訓練と最適化
    8.1 最適なモデルハイパーパラメータを自動的に見つける
        8.1.1 ハイパーパラメータの範囲の設定
        8.1.2 ハイパーパラメータチューニングジョブの実行
        8.1.3 チューニングジョブで得られた最適なハイパーパラメータを分析
        8.1.4 SageMaker Tuning Jobの実験リネージを表示
    8.2 追加のSageMakerハイパーパラメータチューニングジョブにウォームスタートを使う
        8.2.1 ウォームスタートを用いてHPTジョブを実行
        8.2.2 ウォームスタートチューニングジョブで得られた最適なハイパーパラメータの分析
    8.3 SageMakerによる分散訓練のスケールアウト
        8.3.1 分散通信戦略の選択
        8.3.2 並列化戦略の選択
        8.3.3 分散ファイルシステムの選択
        8.3.4 分散訓練ジョブの起動
    8.4 コスト削減とパフォーマンス向上
        8.4.1 妥当なハイパーパラメータ範囲から始める
        8.4.2 ShardedByS3Keyによるデータのシャーディング
        8.4.3 Pipeモードを使ってデータをオンザフライで流す
        8.4.4 拡張ネットワーキングを有効にする
    8.5 まとめ

9章 モデルを本番環境にデプロイ
    9.1 リアルタイム予測とバッチ予測の選択
    9.2 SageMaker Endpointによるリアルタイム予測
        9.2.1 SageMaker Python SDKによるモデルのデプロイ
        9.2.2 実験のモデルデプロイを追跡
        9.2.3 デプロイしたモデルの実験リネージを分析
        9.2.4 SageMaker Python SDKを使った予測の呼び出し
        9.2.5 HTTP POSTによる予測の呼び出し
        9.2.6 推論パイプラインの作成
        9.2.7 SQLとグラフベースのクエリからSageMakerモデルを呼び出す
    9.3 Amazon CloudWatchを使用したSageMaker Endpointのオートスケーリング
        9.3.1 AWS提供の指標を使ってスケーリングポリシーを定義する
        9.3.2 カスタム指標を使ってスケーリングポリシーを定義する
        9.3.3 クールダウン期間を用いた応答性のチューニング
        9.3.4 自動スケールポリシー
    9.4 新しいモデルや更新したモデルをデプロイするための戦略
        9.4.1 カナリアロールアウトのためのトラフィック分割
        9.4.2 ブルー/グリーンデプロイのためのトラフィックの移行
    9.5 新しいモデルのテストと比較
        9.5.1 モデルバリアントを比較するためにA/Bテストを実施
        9.5.2 多腕バンディットテストによる強化学習
    9.6 モデル性能を監視してドリフトを検出する
        9.6.1 データキャプチャーの有効化
        9.6.2 ベースラインとドリフトを理解する
    9.7 デプロイしたSageMaker Endpointのデータ品質を監視
        9.7.1 データ品質を測定するためのベースラインの作成
        9.7.2 データ品質監視ジョブをスケジュール
        9.7.3 データ品質監視結果の検査
    9.8 デプロイしたSageMaker Endpointのモデル品質を監視
        9.8.1 モデル品質を測定するためのベースラインの作成
        9.8.2 モデル品質監視ジョブをスケジュール
        9.8.3 モデル品質の監視結果を検査
    9.9 デプロイしたSageMaker Endpointのバイアスドリフトを監視
        9.9.1 バイアス検出のためのベースラインの作成
        9.9.2 バイアス/ドリフト監視ジョブをスケジュール
        9.9.3 バイアス/ドリフト監視結果を検査
    9.10 デプロイしたSageMaker Endpointの特徴量寄与度ドリフトを監視
        9.10.1 特徴量寄与度を監視するベースラインの作成
        9.10.2 特徴量寄与度のドリフト監視ジョブをスケジュール
        9.10.3 特徴量寄与度のドリフト監視結果を検査
    9.11 SageMaker Batch Transformによるバッチ予測の実行
        9.11.1 インスタンスタイプを選択
        9.11.2 入力データをセットアップ
        9.11.3 SageMaker Batch Transformの設定をチューニング
        9.11.4 SageMaker Batch Transform Jobを準備する
        9.11.5 SageMaker Batch Transform Jobを実行
        9.11.6 バッチ予測のレビュー
    9.12 AWS Lambda関数とAmazon API Gateway
    9.13 エッジでのモデルの最適化と管理
    9.14 TorchServeによるPyTorchモデルのデプロイ
    9.15 AWS Deep Java Libraryを用いたTensorFlow BERTの推論
    9.16 コスト削減とパフォーマンス向上
        9.16.1 未使用エンドポイントの削除と低使用率クラスターのスケールイン
        9.16.2 複数のモデルを1つのコンテナにデプロイする
        9.16.3 GPU ベースのElastic Inference Acceleratorをアタッチする
        9.16.4 SageMaker NeoとTensorFlow Liteを使って訓練したモデルを最適化する
        9.16.5 推論に最適化されたハードウェアの使用
    9.17 まとめ

10章 パイプラインとMLOps
    10.1 機械学習オペレーション
    10.2 ソフトウェアパイプライン
    10.3 機械学習パイプライン
        10.3.1 効果的な機械学習パイプラインのコンポーネント
        10.3.2 効果的な機械学習パイプラインのステップ
    10.4 SageMaker Pipelinesによるパイプラインオーケストレーション
        10.4.1 パイプラインのリネージを追跡するための実験の作成
        10.4.2 パイプラインステップを定義
        10.4.3 パイプラインのパラメータを設定
        10.4.4 パイプラインの作成
        10.4.5 Python SDKによるパイプラインの開始
        10.4.6 SageMaker Studio UIによるパイプラインの開始
        10.4.7 モデルをステージングおよび本番環境用に承認
        10.4.8 パイプラインのアーティファクトのリネージを確認
        10.4.9 パイプラインの実験リネージを確認
    10.5 SageMaker Pipelinesによる自動化
        10.5.1 コードのコミット時のGitOpsトリガー
        10.5.2 新しいデータの到着時のS3トリガー
        10.5.3 時間ベースのスケジュールトリガー
        10.5.4 統計的ドリフトトリガー
    10.6 その他のパイプラインのオプション
        10.6.1 AWS Step FunctionsとデータサイエンスSDK
        10.6.2 Kubeflow Pipelines
        10.6.3 Apache Airflow
        10.6.4 MLflow
        10.6.5 TensorFlow Extended
    10.7 Human-in-the-Loopワークフロー
        10.7.1 Amazon A2Iによるモデル精度の改善
        10.7.2 SageMaker Ground Truthによるアクティブラーニングのフィードバックループ
    10.8 コスト削減とパフォーマンス向上
        10.8.1 パイプラインステップをキャッシュする
        10.8.2 より安価なスポットインスタンスの使用
    10.9 まとめ

11章 ストリーミング分析と機械学習
    11.1 オンライン学習対オフライン学習
    11.2 ストリーミングアプリケーション
    11.3 ストリーミングデータのウィンドウクエリ
        11.3.1 ずらしウィンドウ
        11.3.2 タンブリングウィンドウ
        11.3.3 スライディングウィンドウ
    11.4 AWSにおけるストリーミング分析と機械学習
    11.5 Amazon Kinesis、AWS Lambda、Amazon SageMakerによるリアルタイムの商品レビュー分類
    11.6 Amazon Kinesis Data Firehoseを使用したストリーミングデータの取り込みの実装
        11.6.1 SageMaker Endpointを呼び出すLambda関数の作成
        11.6.2 Kinesis Data Firehoseの配信ストリームの作成
        11.6.3 メッセージをストリームに入れる
    11.7 ストリーミング分析によるリアルタイムの商品レビューの要約
    11.8 Amazon Kinesis Data Analyticsをセットアップ
        11.8.1 Kinesis Data Streamを作成してカスタムアプリケーションにデータを配信
        11.8.2 Amazon SNS経由で通知を送信するAWS Lambda関数の作成
        11.8.3 Amazon CloudWatchに指標を配信するAWS Lambda関数の作成
        11.8.4 Kinesis Data Analyticsでストリーミングデータを変換
        11.8.5 アプリケーション内ストリームとポンプを理解する
    11.9 Amazon Kinesis Data Analyticsアプリケーション
        11.9.1 平均星評価を計算する
        11.9.2 ストリーミングデータの異常を検知する
        11.9.3 ストリーミングデータの近似カウントを計算する
        11.9.4 Kinesis Data Analyticsアプリケーションの作成
        11.9.5 Kinesis Data Analyticsアプリケーションを開始する
        11.9.6 ストリームにメッセージを流す
    11.10 Apache Kafka、AWS Lambda、Amazon SageMakerによる商品レビューの分類
    11.11 コスト削減とパフォーマンス向上
        11.11.1 メッセージの集約
        11.11.2 Kinesis Data FirehoseとKinesis Data Streamsの比較を考える
        11.11.3 Kinesis Data Streamsの拡張ファンアウトを有効にする
    11.12 まとめ

12章 AWSにおける安全なデータサイエンス
    12.1 AWSとお客様の責任共有モデル
    12.2 AWS Identity and Access Managementを適用
        12.2.1 IAMユーザー
        12.2.2 IAMポリシー
        12.2.3 IAMユーザーロール
        12.2.4 IAMサービスロール
        12.2.5 IAMロールの条件キーを指定する
        12.2.6 多要素認証を有効にする
        12.2.7 IAMロールとポリシーによる最小権限アクセス
        12.2.8 リソースベースのIAMポリシー
        12.2.9 アイデンティティベースのIAMポリシー
    12.3 コンピューティングとネットワーク環境を分離
        12.3.1 仮想プライベートクラウド
        12.3.2 VPCエンドポイントとPrivateLink
        12.3.3 VPCエンドポイントポリシーによるAthena APIの制限
    12.4 Amazon S3データアクセスをセキュアにする
        12.4.1 S3バケットポリシーによるVPCエンドポイントの要求
        12.4.2 VPCエンドポイントポリシーによるS3バケットのS3 APIの制限
        12.4.3 S3バケットポリシーを使ってS3バケットのアクセスを特定のVPCに制限する
        12.4.4 S3バケットポリシーによるS3 APIの制限
        12.4.5 IAMロールポリシーによるS3データのアクセス制限
        12.4.6 IAMロールポリシーを使ってS3バケットのアクセスを特定のVPCに制限する
        12.4.7 S3アクセスポイントによるS3データのアクセス制限
    12.5 保管時暗号化
        12.5.1 AWS KMSキーを作成
        12.5.2 訓練中のAmazon EBSボリュームを暗号化
        12.5.3 訓練後にS3にアップロードしたモデルを暗号化
        12.5.4 AWS KMSによる暗号化キーを格納
        12.5.5 アップロードされたS3オブジェクトにS3暗号化を強制する
        12.5.6 SageMakerジョブで保管時暗号化を強制する
        12.5.7 SageMakerノートブックで保管時暗号化を強制する
        12.5.8 SageMaker Studioで保管時暗号化を強制する
    12.6 転送時暗号化
        12.6.1 KMSによる転送時におけるポスト量子TLS暗号化
        12.6.2 訓練クラスターコンテナ間のトラフィックの暗号化
        12.6.3 SageMakerジョブのコンテナ間暗号化を強制する
    12.7 SageMakerノートブックインスタンスの保護
        12.7.1 SageMakerノートブックの内側でルートアクセスを拒否
        12.7.2 SageMakerノートブックのインターネットアクセスを無効にする
    12.8 SageMaker Studioの保護
        12.8.1 SageMaker StudioにVPCを要求する
        12.8.2 SageMaker Studioの認証
    12.9 SageMakerのジョブとモデルの保護
        12.9.1 SageMakerのジョブにVPCを要求
        12.9.2 SageMakerのジョブにネットワーク分離を要求
    12.10 AWS Lake Formationによる保護
    12.11 AWS Secrets Managerによるデータベース認証情報の保護
    12.12 ガバナンス
        12.12.1 AWS Control TowerによるセキュアなマルチアカウントAWS環境の構築
        12.12.2 AWS Organizationsによるアカウントの管理
        12.12.3 SCPによるアカウントレベルのパーミッションの強制
        12.12.4 マルチアカウントのモデルデプロイを実装
    12.13 監査可能性
        12.13.1 リソースのタグ付け
        12.13.2 アクティビティのログとイベントの収集
        12.13.3 ユーザーアクティビティとAPIコールを追跡
    12.14 コスト削減とパフォーマンス向上
        12.14.1 コスト管理のためのインスタンスタイプの制限
        12.14.2 タグ付けされていないリソースを隔離または削除する
        12.14.3 S3バケットKMSキーを使用してコストを削減し、パフォーマンスを向上させる
    12.15 まとめ

訳者あとがき
索引