

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

# ステップ 4. パイプラインの作成
<a name="step4"></a>

![パイプラインを作成します。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/ml-production-ready-pipelines/images/step4.png)


 パイプラインを論理的に定義したら、パイプラインをサポートするインフラストラクチャを作成します。このステップには、少なくとも以下の機能が必要です。
+ コード、モデルアーティファクト、トレーニングや推論の実行に使用されるデータなど、パイプラインの入出力をホストし、管理するためのストレージ。
+ モデリング、推論、およびデータの前処理と後処理を行うコンピューティング (GPU または CPU)。
+ 使用中のリソースを管理し、定期的な実行をスケジュールするオーケストレーション。たとえば、新しいデータが利用可能になったら、モデルを定期的に再トレーニングできます。
+ パイプラインモデルの精度、リソースの利用状況、トラブルシューティングをモニタリングするためのログとアラート。

## AWS CloudFormation による実装
<a name="cfn"></a>

パイプラインの作成には、コードとしてインフラストラクチャをデプロイし管理する 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 からの出力の変更
<a name="modify-output"></a>

前のセクションの CloudFormation 出力に若干の変更を加える必要がありました。単純な Python 文字列マッチングを使用して次のことを行いました。
+ CloudFormation テンプレートの `Parameters` セクションを作成するロジックを追加しました。これは、2 つのロールを作成し、デプロイ環境とともにパイプライン名をパラメータとして定義したいからです。このステップでは、ステップ 6 で説明したように、追加で作成するリソースやロールについても説明します。
+ デプロイプロセスの一環として動的に更新できるように、3 つのフィールドを必要な `!Sub` プレフィックスと引用符で再フォーマットしました。
  + ステートマシンに名前を付ける `StateMachineName` プロパティ。
  + ステートマシンを定義する `DefinitionString` プロパティ。
  + ステートマシンによって返される `RoleArn` プロパティ。