View a markdown version of this page

ステップ 4. パイプラインの作成 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 4. パイプラインの作成

パイプラインを作成します。

パイプラインを論理的に定義したら、パイプラインをサポートするインフラストラクチャを作成します。このステップには、少なくとも以下の機能が必要です。

  • コード、モデルアーティファクト、トレーニングや推論の実行に使用されるデータなど、パイプラインの入出力をホストし、管理するためのストレージ。

  • モデリング、推論、およびデータの前処理と後処理を行うコンピューティング (GPU または CPU)。

  • 使用中のリソースを管理し、定期的な実行をスケジュールするオーケストレーション。たとえば、新しいデータが利用可能になったら、モデルを定期的に再トレーニングできます。

  • パイプラインモデルの精度、リソースの利用状況、トラブルシューティングをモニタリングするためのログとアラート。

AWS CloudFormation による実装

パイプラインの作成には、コードとしてインフラストラクチャをデプロイし管理する AWS サービスである AWS CloudFormation を使用しました。AWS CloudFormation テンプレートには、前のステップで Step Functions SDK を使って作成した Step Functions 定義が含まれています。このステップには、Step Functions ステートマシンと呼ばれる 管理の Step Functions インスタンスの作成が含まれます。トレーニングジョブと推論ジョブは、必要なときにのみ SageMaker AI ジョブとしてオンデマンドで実行されるため、この段階ではトレーニングと推論のためのリソースは作成されません。このステップには、Step Functions を実行したり、SageMaker AI を実行したり、Amazon S3 から読み書きしたりするための AWS Identity and Access Management (IAM) ロールの作成も含まれます。

Step Functions SDK からの出力の変更

前のセクションの CloudFormation 出力に若干の変更を加える必要がありました。単純な Python 文字列マッチングを使用して次のことを行いました。

  • CloudFormation テンプレートの Parameters セクションを作成するロジックを追加しました。これは、2 つのロールを作成し、デプロイ環境とともにパイプライン名をパラメータとして定義したいからです。このステップでは、ステップ 6 で説明したように、追加で作成するリソースやロールについても説明します。

  • デプロイプロセスの一環として動的に更新できるように、3 つのフィールドを必要な !Sub プレフィックスと引用符で再フォーマットしました。

    • ステートマシンに名前を付ける StateMachineName プロパティ。

    • ステートマシンを定義する DefinitionString プロパティ。

    • ステートマシンによって返される RoleArn プロパティ。