

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

# Step Functions ワークフローのユースケースを確認する
<a name="use-cases"></a>

を使用するとAWS Step Functions、時間の経過とともに状態を管理し、受信データに基づいて意思決定を行い、エラーや例外を処理するワークフローを構築できます。

**Topics**
+ [データ処理](#use-cases-data-processing)
+ [機械学習](#use-cases-machine-learning)
+ [マイクロサービスのオーケストレーション](#use-cases-orchestration)
+ [IT およびセキュリティのオートメーション](#use-cases-security-automation)

## データ処理
<a name="use-cases-data-processing"></a>

多様なソースからのデータのボリュームが増加するにつれて、組織はこのデータを迅速に処理して、情報に基づいたビジネス上の決定を迅速に下す必要があります。大規模なデータを処理するには、モバイルデバイス、アプリケーション、衛星、マーケティングと販売、運用データ保存、インフラストラクチャなどから受け取る情報管理のためにリソースを伸縮自在にプロビジョンする必要があります。

水平スケーリングおよび耐障害性ワークフローにより、Step Functions では何百万もの同時実行を操作できます。`Parallel ワークフローの状態` ステートでの並列実行を使用して、データをより迅速に処理できます。または、`Map 状態のワークフロー` 状態の動的並列処理を使用して、Amazon S3 バケットなどのデータストア内で大きなデータセットを繰り返し実行することもできます。Step Functions を使用すると、複雑なエラー処理プロセスの管理をすることなく、失敗した実行の再試行や、エラーを処理する特定の方法を選択できます。

Step Functions は、バッチ処理[AWS Batch](connect-batch.md)、ビッグデータ処理用の [Amazon EMR](connect-emr.md)、データ準備[AWS Glue](connect-glue.md)用の Amazon EMR、データ分析用の [Athena](connect-athena.md)、コンピューティング用の AWSなど、 が提供する他のデータ処理サービスと直接統合[AWS Lambda](connect-lambda.md)されます。

顧客が Step Functions を使用して達成するデータ処理ワークフローのタイプの例を次に示します。

**ファイル、動画、およびイメージ処理**
+ 動画ファイルを収集し、携帯電話、ラップトップ、テレビなど、表示されるデバイスに最適な他のサイズや解像度に変換します。
+ ユーザーがアップロードした大量の写真のコレクションを撮り、サムネイルやさまざまな解像度の画像に変換して、ユーザーのウェブサイトに表示できます。
+ CSV ファイルなどの半構造化データを取得し、それを請求書などの非構造化データと結合して、ビジネスステークホルダーに毎月送信されるビジネスレポートを作成します。
+ 衛星から収集された地球観測データを取得し、それを互いに合う形式に変換し、地球上で収集された他のデータソースを追加してインサイトを高めます。
+ 製品のさまざまな輸送モードから輸送ログを取得し、モンテカルロシミュレーションを使用して最適化を求め、商品の出荷に関して頼りにされている組織や人にレポートを送り返します。

**座標抽出、変換、ロード (ETL) ジョブ:**
+ を使用して、一連のデータ準備ステップを通じて販売機会レコードをマーケティングメトリクスデータセットと組み合わせAWS Glue、組織全体で使用できるビジネスインテリジェンスレポートを作成します。
+ ビッグデータ処理のために Amazon EMR クラスターを作成、スタート、終了します。

**Batch 処理およびハイパフォーマンスコンピューティング (HPC) ワークロード:**
+ 生の全ゲノム配列をバリアントコールで処理するゲノム二次解析パイプラインを構築します。生ファイルをリファレンスシーケンスに整列させ、動的並列処理を使用して、指定された染色体リストのバリアントを呼び出します。
+ さまざまな電気化学物質を使用してさまざまなレイアウトをシミュレーションして、次のモバイルデバイスやその他の電子機器の生産効率を見出します。さまざまなシミュレーションを通じてワークロードの大規模なバッチ処理を実行し、最適な設計を実現します。

## 機械学習
<a name="use-cases-machine-learning"></a>

機械学習により、組織は収集したデータを迅速に分析してパターンを特定し、最小限の人間の介入で意思決定を行うことができます。機械学習は、*トレーニングデータ*と呼ばれる初期データセットから始まります。トレーニングデータは、機械学習モデルの予測精度を高めるのに役立ち、モデルが学習する基礎となります。トレーニング済みモデルがビジネスニーズを満たすほど正確であると見なされたら、モデルを本番環境にデプロイできます。「[GitHub の AWS Step Functions データサイエンスプロジェクト](https://github.com/aws/aws-step-functions-data-science-sdk-python)」は、Amazon SageMaker AI と Step Functions を使用してデータを前処理し、モデルをトレーニングし、パブリッシュするワークフローを提供するオープンソースライブラリです。

既存のデータセットを前処理することは、組織が頻繁にトレーニングデータを作成する方法です。この処理メソッドは、イメージ内のオブジェクトにラベルを付けたり、テキストに注釈を付けたり、音声を処理したりするなど、情報を追加します。使用できるデータを前処理するにはAWS Glue、または Jupyter Notebook で実行される SageMaker AI ノートブックインスタンスを作成できます。データの準備ができたら、アクセスできるように Amazon S3 にアップロードできます。機械学習モデルのトレーニング時に、各モデルのパラメータを調整して、精度を向上できます。

Step Functions を使用すると、SageMaker AI でエンドツーエンドの機械学習ワークフローをオーケストレーションできます。これらのワークフローには、データの前処理、後処理、特徴エンジニアリング、データ検証、およびモデル評価が含まれます。モデルを本番環境にデプロイしたら、新しいアプローチを改良してテストし、ビジネス成果を継続的に改善できます。本番環境に対応したワークフローを Python で直接作成できるだけでなく、 Step Functions データサイエンス SDK を使って、新しいオプションでそのワークフロー経験をコピーし、洗練されたワークフローを実稼働環境に配置することもできます。

お客様が Step Functions を使用する機械学習ワークフローには、次のようなものがあります。

**不正検出**
+ 信用詐欺などの不正取引を特定し、防止します。
+ トレーニング済みの機械学習モデルを使用して、アカウントの乗っ取りを検出して防止します。
+ 偽アカウントの作成など、プロモーション上の不正使用を特定して、すぐにアクションを起こすことができます。

**パーソナライゼーションとレコメンデーション**
+ 関心を引き付けると予測される内容に基づいて、ターゲットを絞った顧客に製品をレコメンデーションします。
+ 顧客がアカウントを無料利用枠から有料サブスクリプションにアップグレードするかどうかを予測します。

**データエンリッチメント**
+ データエンリッチメントを前処理の一部として使用して、より正確な機械学習モデルのためのより良いトレーニングデータを提供します。
+ テキストとオーディオの抜粋に注釈を付けて、皮肉やスラングなどの構文情報を追加します。
+ イメージ内の追加のオブジェクトにラベル付けをし、オブジェクトがリンゴ、バスケットボール、岩、動物であるかどうかなど、モデルの学習に必要な重要な情報を提供します。

## マイクロサービスのオーケストレーション
<a name="use-cases-orchestration"></a>

Step Functions には、マイクロサービスのワークフローを管理するためのオプションが用意されています。

マイクロサービスアーキテクチャは、アプリケーションを疎結合サービスに分割します。スケーラビリティの向上、耐障害性の向上、市場投入までの時間の短縮などの利点があります。各マイクロサービスは独立しているため、アプリケーション全体をスケールすることなく、単一のサービスまたは関数を簡単にスケールアップできます。個々のサービスは疎結合されているため、独立したチームはアプリケーション全体を理解する必要なしに、単一のビジネスプロセスに集中できます。

また、マイクロサービスでは、ビジネスニーズに合った個々のコンポーネントが用意されているため、ワークフロー全体を書き直すことなく柔軟に選択できます。さまざまなチームが、選択したプログラミング言語とフレームワークを使用してマイクロサービスを操作できます。

長時間稼働するワークフローでは、コンテナで実行されているアプリケーションをオーケストレートする AWS Fargate 統合機能がある Standard ワークフローを使用できます。即時対応が必要な、短期間の大量のワークフローの場合、[同期 Express ワークフロー](choosing-workflow-type.md#concepts-express-synchronous)が理想的です。1 つの例は、ウェブベースのアプリケーションまたはモバイルアプリケーションです。このアプリケーションでは、レスポンスを返す前に一連のステップを完了する必要があります。Amazon API Gateway から同期 Express ワークフローを直接トリガーでき、ワークフローが完了するかタイムアウトするまで接続は開いたままになります。ただちに応答を必要としない短期間のワークフローの場合、Step Functions は非同期　Express ワークフローを提供します。

Step Functions を使用するいくつかの API オーケストレーションの例を次に示します。

**同期ワークフローまたはリアルタイムワークフロー**
+ 従業員の姓の更新など、レコード内の値を変更し、変更をすぐに表示します。
+ 項目の追加、削除、数量の変更など、チェックアウト中に注文を更新し、すぐに更新したカートを顧客に表示します。
+ クイック処理ジョブを実行し、結果をすぐにリクエスタに戻します。

**コンテナオーケストレーション**
+ Amazon Elastic Kubernetes Service を使用する Kubernetes または Fargate を使用する Amazon Elastic Container Service (ECS) でジョブを実行し、同じワークフローの一部として Amazon SNS で通知を送信するなど、他の AWSサービスと統合します。

## IT およびセキュリティのオートメーション
<a name="use-cases-security-automation"></a>

Step Functions を使用すると、ワークフローのエラーに対して自動的にスケーリングして対応するワークフローを作成できます。ワークフローは、自動的に[失敗したタスクを再試行](concepts-error-handling.md#error-handling-retrying-after-an-error)し、[エクスポネンシャルバックオフ](concepts-error-handling.md#error-handling-examples)を使用してエラーを処理できます。

エラー処理は、IT オートメーションシナリオにおいて、ソフトウェアのアップグレードとパッチ適用、脆弱性に対処するためのセキュリティ更新プログラムのデプロイ、インフラストラクチャの選択、データの同期、サポートチケットのルーティングなど、ますます複雑で時間のかかる操作の管理に不可欠です。反復的で時間のかかるタスクのオートメーションにより、組織は日常業務を迅速かつ一貫性を持たせながら大規模に完了できます。運用上の需要を満たしながら、機能開発、複雑なサポートリクエスト、イノベーションなどの戦略的取り組みに重点を置くことができます。

例えば大幅なクレジット引き上げを承認するなど、ワークフローを進めるために人による介入が必要な場合、Step Functions で分岐ロジックを定義して、制限額内のリクエストは自動的に承認し、制限額を超えるリクエストには人間による承認を求めるようにできます。人による承認が必要な場合、Step Functions を使用すると、ワークフローを一時停止し、応答を待ち、応答を受信した後にワークフローを続行できます。

オートメーションワークフローの例には、以下が含まれます。

**IT オートメーション**
+ 開いている SSH ポート、ディスク容量の不足、Amazon S3 バケットへのパブリックアクセスの許可などのインシデントを自動修復します。
+ AWS CloudFormationStackSets のデプロイを自動化します。

**セキュリティオートメーション**
+ ユーザーおよびユーザーアクセスキーが公開されているシナリオへの応答を自動化します。
+ アクションを特定の ARN に制限するなど、ポリシーアクションに従って、セキュリティインシデントレスポンスを自動修正します。
+ 受信後数秒以内にフィッシングメールについて従業員に警告します。

**[Human Approval]** (ヒューマン承認)
+ 機械学習モデルトレーニングを自動化し、更新されたモデルをデプロイする前にデータサイエンティストからモデルの承認を取得します。
+ 感情分析に基づいて顧客フィードバックのルーティングを自動化し、否定的なコメントをすばやくエスカレーションしてレビューできるようにします。