type
status
date
slug
summary
tags
category
icon
password
书籍
 

理論

AWS Step Functionsとエラーハンドリング

AWS Step Functionsは、複数のAWSサービスを統合し、ワークフローを構築するためのサービスです。これを使って、順次実行される複数のタスク(例:AWS Lambda関数)を管理できます。しかし、実行中にエラーが発生することがあり、これに対処するために効果的なエラーハンドリングの設計が重要です。

エラーハンドリングの重要性

  1. 再試行(Retry): Step Functionsでは、タスクが失敗した場合に再試行を行う設定が可能です。再試行回数や間隔を調整することで、ネットワークの問題や一時的なサービス障害に対応できます。
  1. キャッチ(Catch): タスクが失敗した際に、どのように処理を続けるかを指定するためのフィールドです。Catchを使用することで、エラーが発生した場合に特定のタスク(例:通知の送信)に遷移させることができます。これにより、エラーが発生した際に必要なアクション(通知やリトライ)を自動化できます。
  1. SNSによる通知: 失敗時に通知を送るために、AWS SNS(Simple Notification Service)を利用することが一般的です。SNSトピックを作成し、エラーが発生した場合にそのトピックにメッセージを送ることができます。これにより、管理者やチームメンバーが即座に失敗を認識でき、迅速に対応が可能になります。

ベストプラクティス

  1. エラーハンドリングを統一する: すべてのタスクで一貫したエラーハンドリングを設定することが重要です。失敗した場合に通知が送信されるように、CatchRetryフィールドを設定します。
  1. 通知を活用する: エラーが発生した場合、SNSを使って通知を送信し、管理者や関係者に即座に知らせるようにします。これにより、再訓練やワークフローが失敗したことに気づくのが遅れることを防げます。
  1. エラータイプを適切に設定する: ErrorEqualsフィールドに指定するエラータイプ(例えば、States.ALL)を適切に設定して、すべてのエラーに対して対応できるようにします。States.Runtimeはランタイムエラーに特化しているため、すべてのエラーを対象にする場合はStates.ALLを使用する方が汎用的です。

結論

AWS Step Functionsを使用する際には、エラー発生時に適切に対応できるように設計することが重要です。失敗通知をSNSで送るように設定し、ワークフローの停止を未然に防ぐためのエラーハンドリング(Catch)や再試行(Retry)を適切に活用することで、システムの健全性を保つことができます。

実践

一問道場

質問 #277
トピック 1
ある会社が、AWS Step Functionsを使用して機械学習モデルの夜間再訓練を自動化しています。このワークフローは、複数のAWS Lambdaステップで構成されています。各ステップはさまざまな理由で失敗する可能性があり、いずれの失敗も全体のワークフローの失敗を引き起こします。
レビューの結果、再訓練が何晩も連続して失敗していたことが判明しましたが、会社はその失敗に気づいていませんでした。ソリューションアーキテクトは、再訓練プロセス内でのすべてのタイプの失敗に対して通知が送信されるようにワークフローを改善する必要があります。
この要件を満たすためにソリューションアーキテクトが取るべき手順の組み合わせはどれですか?(3つ選んでください。)
A. Amazon Simple Notification Service (Amazon SNS) トピックを作成し、チームのメールリストをターゲットにした「Email」タイプのサブスクリプションを作成する。
B. 「Email」という名前のタスクを作成し、入力引数をSNSトピックに転送する。
C. 「ErrorEquals":["States.ALL"]」および「Next":"Email"というステートメントを持つ、すべてのTask、Map、およびParallelステートにCatchフィールドを追加する。
D. Amazon Simple Email Service (Amazon SES) に新しいメールアドレスを追加し、そのメールアドレスを確認する。
E. 「Email」という名前のタスクを作成し、入力引数をSESメールアドレスに転送する。
F. 「ErrorEquals":["States.Runtime"]」および「Next":"Email"というステートメントを持つ、すべてのTask、Map、およびParallelステートにCatchフィールドを追加する。

解説

この問題では、AWS Step Functionsを使用して機械学習モデルの夜間再訓練を自動化しているワークフローに対して、失敗通知を送信する方法を考える必要があります。ソリューションアーキテクトは、再訓練プロセス内で発生する可能性のあるすべての失敗に対して通知を送信する必要があります。

各選択肢の解説:

A. Amazon SNSトピックを作成し、チームのメールリストをターゲットにした「Email」タイプのサブスクリプションを作成する。

  • 正解: Amazon SNSを使って通知を送信する方法は、AWS Step Functionsで失敗した場合に通知を送るための標準的な手段です。SNSトピックを作成し、それに「Email」サブスクリプションを設定することで、ワークフロー内でエラーが発生した際に、メールで通知を受け取ることができます。

B. 「Email」という名前のタスクを作成し、入力引数をSNSトピックに転送する。

  • 正解: 「Email」という名前のタスクを作成して、失敗時に入力引数(エラー内容やステータス)をSNSトピックに転送することで、エラーの詳細を通知できます。このタスクは、エラーが発生した際に実行され、SNSトピックにメッセージを送信します。

C. 「ErrorEquals":["States.ALL"]」および「Next":"Email"というステートメントを持つ、すべてのTask、Map、およびParallelステートにCatchフィールドを追加する。

  • 正解: Catchフィールドは、AWS Step Functionsのステートが失敗した場合に、どのステートに遷移するかを指定するために使用されます。「ErrorEquals":["States.ALL"]」はすべてのエラーにマッチするため、エラーが発生した際に「Email」タスクに遷移するように設定することができます。この設定により、すべてのエラーに対して通知が送信されます。

D. Amazon SESに新しいメールアドレスを追加し、そのメールアドレスを確認する。

  • 誤り: Amazon SES(Simple Email Service)はメールの送信に使われますが、SNSによる通知の送信には使用しません。SNSで通知を送信するには、SESではなくSNSの設定が必要です。SESは送信メールの設定に関するもので、通知のためには関係ありません。

E. 「Email」という名前のタスクを作成し、入力引数をSESメールアドレスに転送する。

  • 誤り: SESを直接使用して通知を送るのは適切ではありません。AWS Step Functionsでは、SNSを使用して通知を送る方が一般的です。SESは通知を送信するための適切な選択肢ではありません。

F. 「ErrorEquals":["States.Runtime"]」および「Next":"Email"というステートメントを持つ、すべてのTask、Map、およびParallelステートにCatchフィールドを追加する。

  • 誤り: 「States.Runtime」エラーはランタイムエラーに特化していますが、すべてのエラータイプをカバーするわけではありません。「States.ALL」の方が包括的にすべてのエラーを捕まえるため、通知を送るためには「States.ALL」が適しています。

結論:

正しい手順は、SNS通知を設定し、失敗時に「Email」タスクを呼び出し、すべてのエラーをキャッチして通知する設定を行うことです。
したがって、正解は A, B, C です。
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
278-AWS SAP AWS 「理論・実践・一問道場」アウトバウンドResolver276-AWS SAP AWS 「理論・実践・一問道場」SQS可視性タイムアウト
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
第1回:イントロダクション
2025-4-21
TOKYO自習島
2025-4-21
第1回:イントロダクション
2025-4-18
第1回:オリエンテーション/意思決定と会計情報
2025-4-18
建物業法の基本と免許-59問
2025-4-10
宅建士过去问速刷:小南小白陪你拿证-001
2025-4-7
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享我在 IT・MBA・不动产中介 等领域的学习与实践经验,并推动 线上线下学习会 的自主开展。

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!