作成日
2022/07/27最終更新
2024/12/15記事区分
一般公開Step Functions
- Lambda 関数を組み合せてワークフロー化するサービスです。What is AWS Step Functions?
- JSON でステートマシンを記述します。
- サンプルワークフローが多数 AWS 上に公開されています。
- 人間の承認フローを組込むこともできます。
- Lambda Task
- Activity Task
- Service Task → サポートされている AWS サービスへの接続。
- Lambda、AWS Batch、ECS task、
- DynamoDB、
- SQS、SNS、等 との統合も可能です。Call other AWS services
- 注意: AWS Mechanical Turk はサポートされていません。
- Wait Task
- Lambda 関数単体と比較して、タイムアウトが 1 年と長く確保できます。Quotas
- Step Function (ステートマシン) から Step Function (別のステートマシン) を trigger することもできます。
- Simple Workflow Service (AWS SWF)
- Step Functions 以前から存在する、別のサービスです。
- EC2 インスタンス上でワークフローを実行します。
- 人間の承認フローを組込むこともできます。
- AWS Mechanical Turk が必要な場合は SWF を利用します。Amazon SWF FAQs
- Standard ワークフローと Express ワークフローがあります。Standard vs. Express Workflows
SQS
- 最大メッセージサイズは 256 KB です。Now Send Payloads up to 2GB with Amazon SQS
- サイズが大きくなる場合は S3 へのポインタを利用します。
- SQS FIFO
- 通常の SQS では FIFO が保証されないのに対し、SQS FIFO は保証します。
- メッセージスループット
- Standard queue が事実上無制限であるのに対し、FIFO queue は、API メソッド毎に 300 API call/秒 の制限があります。
- メッセージをバッチ処理する batching 機能を使うことで、例えば 8 メッセージをバッチ処理すれば 8 * 300 で 2400 メッセージ/秒 のスループットとなります。Quotas related to messages
- 冪等性 (Idempotency) は SQS 利用者側で担保します。
- 例: SQS を polling する consumer が DynamoDB にデータを追加する際は、Insert ではなく Upsert を利用するようにします。
- Lambda Event Source Mapping で SQS queue を polling できます。
- メッセージの visibility について
- delay queues
- 0-15分 で指定できます。
- queue に送信された後、DelaySeconds の間、consumer からは invisible となります。Amazon SQS delay queues
- visibility timeout
- SQS は consume されたメッセージを自動的に削除しません。
- queue から consume された後、visibility timeout の間、queue から receive できなくなります。
- visibility timeout の間に、consumer が明示的に削除する必要があります。Amazon SQS visibility timeout
- message timer
- delay queues と同様に、0-15分 で指定できます。
- queue に送信された後、DelaySeconds の間、consumer からは invisible となります。
- delay queues が queue 全体に対する設定であるのに対し、message timer は、メッセージ毎に設定されます。Amazon SQS message timers
- delay queues
- dead-letter queue (DLQ)
- ある queue における target として設定し、queue で正常に consume されなかったメッセージの通知先として利用されます。Amazon SQS dead-letter queues
Amazon MQ
- Amazon MQ What is Amazon MQ?
- オープンソース Apache ActiveMQ、Rabbit MQ 等の AWS マネージドサービスです。
- 補足: サーバレスではありません。RDS のようにインスタンスが起動されます。Instance types
- オンプレミスで稼働する ActiveMQ 利用アプリケーションを SQS 向けに改修することなく AWS 移行できます。(re-platform)
- オープンソース Apache ActiveMQ、Rabbit MQ 等の AWS マネージドサービスです。
SNS
- SNS topic の subscriber は、message をフィルタリング (Filter Policy) して取得できます。Amazon SNS message filtering
- Direct Publish
- Using Amazon SNS for application-to-person (A2P) messaging
- モバイル端末に対して SMS や push 通知を送信できます。
- SNS Access Policy (resource-based policy) を設定できます。
- SNS topic と SQS queue を 1:N で接続することで、Fan Out 構成を実現できます。
- SNS topic が push 型として SQS queue に書き込みます。
- SQS queue 側の access policy で write を許可しておく必要があります。
- S3 event 通知先として指定できる宛先は一つだけです。
- 上記 fan out 構成で SNS を宛先として指定することで、宛先数 1 という制約を回避できます。
- 例: Snowflake の Snowpipe でも活用される構成です。
- SNS topic は S3 に直接 push できません。
- Kinesis Data Firehose を経由して S3 にデータ連携できます。Fanout to Kinesis Data Firehose delivery streams
- SNS FIFO
- SQS FIFO と同様です。処理性能は FIFO ではない通常の topic の方が高くなります。
- SNS FIFO の subscriber としては SQS FIFO のみ指定可能です。
関連記事
- AWS EC2 インスタンスの選定方法準仮想化と完全仮想化 AWS のインスタンスタイプが準仮想化と完全仮想化のどちらの仮想化技術を採用したハードウェアであるかによって、使用できる AMI (OS) が異なるのは以下の理由によります。 準仮想化 ParaVirtualization (PV) において OS は自分が仮想化用のハードウェア上で動作していることを知っています。つまり仮想化用にカスタマイズされた専用の OS が必要になりま...
- OpenVPN で二つの VPC をつなぐための設定インターネット VPN (Virtual Private Network) には二拠点間の通信を暗号化する方式によって IPsec-VPN や SSL-VPN などがあります。OpenVPN は SSL-VPN の実装のひとつです。AWS VPC を二つ用意してそれらを OpenVPN で接続してみます。 VPC の構成 myvpc-1 (10.1.0.0/16) mysubnet-1-1 (10...
- Windows Server EC2 インスタンスへの CAL インストールWindows サーバを AWS EC2 インスタンスとして起動した後は、RDP 接続が必要となります。RDP 接続を行なうためには Remote Desktop Services (RDS) ライセンスが必要となります。 Windows Server のライセンスは、管理用途の RDS 接続を許可しています。その際に RDS ライセンスは不要です。ただし、[同時接続数が 2 という制限があります...
- AWS Lambda の基本的な使い方AWS Lambda はイベントドリブンな「関数」を登録できるサービスです。例えば S3 に画像がアップロードされたときにサムネイル用のサイズに加工する処理が記述された関数を登録できます。基本的な使い方をまとめます。 事前準備 関数の登録はブラウザで AWS コンソールにログインして行うこともできますが、本ページでは AWS C
- AWS 落穂拾い (Data Engineering)Kinesis Kinesis Streams データは 3 AZ にレプリケーションされます。Amazon Kinesis Data Streams FAQs 24 時間 (既定値) から 1 年までデータ保持できます。[Changing the Data Retention Period](https://docs.aws.amazon