Amazon Web Services ブログ

Category: AWS Step Functions

AWS Step Functions コールバックを利用した外部システム連携

Shared Delivery Teams で Sr. Cloud App Architect を務める Zach Abrahamson による記事です。 AWS Step Functions を使用すると、複数の AWS サービスを調整してサーバーレスワークフローに落とし込めるため、アプリケーションの開発と更新を迅速に行うことができます。Step Functions を使用すると、AWS Lambda や Amazon ECS のようなサービスを機能豊富なアプリケーションに統合するワークフローを設計および実行できます。

Read More

Operating Lambda: イベント駆動型アーキテクチャを理解する – Part 1

Operating Lambda シリーズでは、AWS Lambda ベースのアプリケーションに関わる開発者、アーキテクト、システム管理者向けの重要なトピックについて説明します。この3部構成のシリーズでは、イベント駆動型アーキテクチャと、それがどのようにサーバーレスアプリケーションと関連しているかについて説明します。 Part 1 では、イベント駆動型パラダイムの利点と、それがスループット、スケール、拡張性をどのように改善できるかについて説明します。また同時にアプリケーションの複雑性とコードの総量を削減する点についても説明します。 イベント駆動型アーキテクチャは現代の組織で一般的に利用される、複雑なシステムの構築に伴う課題に対処するのに役立つため人気が高まっています。このアプローチはマイクロサービスの利用を促進します。マイクロサービスは、小さく、狭い領域の機能セットを実行する特殊なサービスです。適切に設計された Lambdaベースのアプリケーションは、マイクロサービスアーキテクチャの原則と互換性があります。   Lambda はイベント駆動パラダイムにどのように適合するか Lambda は、イベントに応じてカスタムコードを実行するオンデマンドのコンピュートサービスです。ほとんどの AWS サービスはイベントを生成し、その多くは Lambda のイベントソースとして機能します。Lambda では、コードはコードデプロイメントパッケージに格納され、イベントハンドラが含まれています。コードへのすべての相互作用は Lambda API を介して行われ、サービスの外部から関数を直接実行することはありません。Lambda 関数の主な目的は、イベントを処理することです。

Read More

AWS Step FunctionsとAmazon EKSの統合のご紹介

元の記事:https://aws.amazon.com/blogs/containers/introducing-aws-step-functions-integration-with-amazon-eks/ 本投稿は Romain Jourdanによる記事を翻訳したものです。 私がAWSに入社してからこれが初めてのAWS Container Blogへの投稿となりますが、サーバーレスとKubernetesという2つのテクノロジの融合、具体的にはAWS Step FunctionsとAmazon Elastic Kubernetes Serviceの統合についてお話しできることにこの上なく興奮しています。

Read More

AWS Step Functions が、「Choice」ステートの更新、コンテキストオブジェクトへのグローバルアクセス、動的タイムアウト、結果選択、および Amazon States Languages への組み込み関数を追加

デベロッパーは AWS Step Functions を使用して、AWS Lambda、AWS Fargate、Amazon SageMaker などのサービスをリッチアプリケーションに接続するワークフローを設計および実行できます。ワークフローは一連のステップで構成され、1 つのステップの出力が次のステップの入力になります。AWS Step Functions を使用すると、アプリケーションの開発がより直感的になります。これにより、デベロッパーは AWS Lambda 関数や、ステートレスで開発されたコンテナ上の関数などの一連の関数を使って各アプリケーションを設定できます。 本日、Amazon States Language (ASL) を更新することで AWS Step Functions を強化したことを発表します。ASL は JSON ベースの構造化言語で、作業を実行できるステートマシンと状態の集合 (Task 状態) を定義し、次にどのステートに移行するかを決定し (Choice 状態)、エラー時に実行を停止します(Fail 状態)。今日のアップデートにより、シンプルなワークフローアプリケーションを作成し、ステートマシン定義内の柔軟性を高め、Lambda 呼び出しを減らし、状態の移行を減らしてコストを節約することができます。 AWS Step Functions マネジメントコンソールにアクセスすると、定義ステップの下に新しいコードスニペットが表示されます。 Choice 状態の更新 Choice 状態は、基本的にステートマシンにブランチロジックを追加します。このアップデートでは、新しい演算子が複数追加され、選択の幅が広がりました。これにより、演算子が既存の定義を単純化したり、ステートマシン定義内で動的な動作を追加したりできます。 比較演算子 – 以下の値のテストをサポートします。 IsNull – Null IsString – 文字列 IsNumeric – 数値 […]

Read More

Amazon EventBridge パートナーとしての日本の SaaS ベンダーのご紹介

Amazon EventBridge をご存知でしょうか? EventBridge は、独自のアプリケーション、SaaS および AWSのサービスから発行されるイベントをタイムリーにトリガーできるようにするサーバーレスなイベントバス機能として 2019年に発表されました。CloudWatch Events の拡張として作られており、AWSサービスからのシステムイベントも受信できますが、一番の特徴は、サードパーティの SaaS からイベント発行していただけるような仕様になっていることです(こちらもご覧ください)。 上図の左下あたりにある [SaaS Apps] として対応いただいたアプリケーションをご利用いただくと、SaaS 側で発生したイベントを SaaS 利用ユーザー側の AWS アカウント(SaaS アプリケーションとは異なる環境)へ EventBridge を経由してイベント通知することができるようになります。これによって、利用ユーザー環境で AWS Lambda の関数で追加の処理を起動したり、Kinesis/SQS/SNS にメッセージを飛ばしたり、Step Functions のフローを起動するなどの Push 型処理を簡単に実現できるようになります。つまり、SaaS がサーバーレスアプリケーションのトリガーとしてサーバーレス環境と融合することになるのです。 直近で BlackBelt セミナーも実施しましたので、EventBridge というサービス自体を理解したい方はこちらをぜひご覧ください。

Read More

モダンアプリケーション開発ホワイトペーパー(日本語改定版)が公開されました

皆さん、こんにちは! モダンアプリケーション開発スペシャリスト ソリューションアーキテクトの福井です。 私が執筆したモダンアプリケーション開発のホワイトペーパー(日本語版)がAWSホワイトペーパーサイトで公開されましたので、その内容を紹介させて頂きます。このホワイトペーパーは、以前こちらのブログで紹介させて頂いたModern Application Development on AWS(英語版)の日本語版になります。   ホワイトペーパーの内容 公開されたホワイトペーパードキュメントは、「AWS モダンアプリケーション開発 – AWS におけるクラウドネイティブ モダンアプリケーション開発と設計パターン」(日本語版)というタイトルの51ページのドキュメントで、 はじめに モダンアプリケーション開発 モダンアプリケーションの設計パターン AWSでのCI/CD まとめ の各章から構成されています。各章の簡単なご紹介は下記の通りです。

Read More

Amazon Redshift 用の AWS Step Functions を使用した ETL プロセスのオーケストレーション

現在のデータレイクは、大量の情報を使用可能なデータに変換する抽出、変換、ロード (ETL) 操作をベースとしています。この記事では、AWS Step Functions、AWS Lambda、AWS Batch を緩やかに結合して Amazon Redshift クラスターをターゲットにする ETLオーケストレーションプロセスの実装について詳しく説明します。 Amazon Redshift はカラムナストレージを使用するため、便利な ANSI SQL クエリを使用した迅速な分析的インサイトに最適です。Amazon Redshift クラスターを数分ですばやく増減して、エンドユーザーレポートとデータウェアハウスへのタイムリーなデータ更新の両方の厳しいワークロードに対応することができます。 AWS Step Functions を使用すると、拡張性に優れた繰り返し可能なワークフローを簡単に開発および使用できます。Step Functions によって、個々の Lambda 関数から自動化ワークフローを構築できます。各関数は個別のタスクを実行し、ワークフローのコンポーネントを迅速かつシームレスに開発、テスト、変更することを可能にします。 ETL プロセスは、データウェアハウスをソースシステムから更新し、未加工データをより簡単に使用できる形式に編成します。大半の組織は、ETL をバッチとして、またはリアルタイムの取り込みプロセスの一部として実行し、データウェアハウスを最新の状態に保ち、タイムリーな分析を提供します。完全に自動化されたスケーラビリティの高い ETL プロセスにより、通常の ETL パイプラインの管理に投入する必要がある運用上の労力を最小限に抑えることができます。また、データウェアハウスのタイムリーで正確な更新も保証されます。このプロセスをカスタマイズして、データを任意のデータウェアハウスまたはデータレイクに更新することができます。 また、この記事では、TPC-DS データセットを更新するためにワンクリックでサンプル ETL プロセス全体を開始する AWS CloudFormation テンプレートも提供しています。テンプレートへのリンクは、AWS CloudFormation を使用してワークフロー全体を設定するセクションにあります。 アーキテクチャの概要 次の図は、ETL ワークフローのオーケストレーションに関連するさまざまなコンポーネントのアーキテクチャの概要を示しています。このワークフローは Step Functions を使用して Amazon S3 からソースデータを取得し、Amazon Redshift データウェアハウスを更新します。 […]

Read More

AWS Step Functions と AWS Glue を使用して Amazon DynamoDB テーブルを Amazon S3 にエクスポートする方法

従来の AWS のやり方で、AWS Glue チームが DynamoDB テーブルからネイティブに読み取る AWS Glue クローラおよび AWS Glue ETL ジョブの機能をリリースしたときは、AWS ビッグデータブログで Goodreads はどのように Amazon DynamoDB テーブルを Amazon S3 にオフロードし、Amazon Athena を使用してクエリを実行するのかを公開してから一週間も経っていませんでした。おかげで私はかなりわくわくしていました。コードがより少ないということは、バグもより少ないことを意味します。元のアーキテクチャは少なくとも 18 か月前からあり、作業を少し加えると大幅に簡素化できます。 データパイプラインのリファクタリング 前回のブログ投稿で概説した AWS Data Pipeline アーキテクチャは、現在まだ 2 年が経っていません。致命的な開発者エラーが発生した場合に Amazon DynamoDB データを Amazon S3 にバックアップする方法としてデータパイプラインを使用しました。ただし、DynamoDB のポイントインタイムリカバリでは、より優れたネイティブの災害復旧メカニズムを備えています。さらに、データパイプラインでは、一時的であってもクラスターに関連付けられた操作を保持しています。クラスターで Amazon EMR の最新リリースに対応して、未解決のバグを軽減することが共通の課題です。もう 1 つの課題は、DynamoDB テーブルごとに EMR クラスターをスピンアップする際の非効率性です。 私は一歩後退して、次の反復で必要な機能を一覧表示することにしました。 EMR の代わりに AWS Glue […]

Read More

[AWS Black Belt Online Seminar] AWS Step Functions 資料及び QA 公開

先日 (2019/5/22) 開催しました AWS Black Belt Online Seminar「AWS Step Functions」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20190522 AWS Black Belt Online Seminar AWS Step Functions from Amazon Web Services Japan AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. DynamoDBから取得したデータにちょっとした加工を行おうとした場合は、結局Lambdaが必要になりますか? A. はい、DynamoDB から取得したデータに対して何らかの加工を行う場合は、Lambda をはじめとする他のサービスと Step Functions を連携させることをご検討ください。たとえば、Step Functions の Task State にて、DynamoDB の getItem を呼び出し、得られたデータを続く Task State にて、Lambda へ入力するといったワークフローが考えられます。 Q. ASL の記述には漢字は使えるのでしょうか? A. はい、Comment フィールドの内容や、State […]

Read More

新発表 – AWS Step Functions が コンピュート、データベース、メッセージング、アナリティクス、機械学習 のサービスと統合

AWS Step Functions はアプリケーション開発者のためのフルマネージドなワークフローサービスです。各アクティビティの接続と整理を、信頼性があり繰り返し可能な形で、ビジネスロジックとワークフローロジックを分離しながら、高レベルの設計と作業で実現できます。ワークフロー(ステートマシンと言います)を設計、テストした後、スケーラブルにデプロイして10,000から100,000もの処理を独立かつ同時に実行することができます。Step Functions は各ワークフローの状態を追跡し、モニタリングやロギングもシンプルにします。詳しくは 「サーバーレスワークフローを作成する」 のチュートリアルをお試しください。

Read More