Jayendra’s Blog

この記事は自己学習用に「AWS Certification – Application Services – Cheat Sheet(Jayendra’s Blogより)」を日本語に訳した記事です。


SQS

  • 非常にスケーラブルなキューサービスと、何百万ものメッセージを処理する可能性がある。
  • フォールトトレラント、分散疎結合アプリケーションの構築に役立ちます。
  • 冗長性と高可用性を実現するために、メッセージのコピーを複数のサーバーに格納。
  • 少なくとも1回の配信を保証しますが、重複メッセージが発生する可能性のある正確な1回の配信は保証されません (FIFO キューの導入には該当しません)
  • メッセージの順序を維持または保証せず、必要に応じてシーケンス情報をメッセージ自体に追加する必要がある場合 (FIFO キューの導入には該当しません)
  • 同じキューと同時にやり取りする複数のリーダーとライタをサポート
  • デフォルトでは、4日間のメッセージを保持し、1分から変更することができます – 14 日後には、メッセージが削除されます。
  • メッセージは、一度処理されたコンシューマーによって明示的に削除する必要があります。
  • バッチを送信、受信、削除することができ、単一のバッチで最大10個のメッセージをサポートし、1つのメッセージの料金を請求する。
  • 可視性タイムアウトを使用して、コンシューマによって読み取られたメッセージが、タイムアウトが発生するまで他のコンシューマに表示されないようにする、複数のコンシューマへのメッセージの可視性を処理します。
  • 需要の変化 (ジョブオブザーバパターン) としてワーカーインスタンスをスケーリングすることにより、負荷とパフォーマンスの要件を処理できます。
  • 短時間と長時間ポーリングを可能にするメッセージサンプル。
    • 即時 vs 固定時間待つ(例えば、20秒間)
    • サーバーのサブセットのサンプルとしてすべてのメッセージが返されない vs すべての利用可能なメッセージを返します。
    • 反復 vs 長い接続でコストを節約
  • 遅延キューをサポートし、特定の遅延後にメッセージを利用できるようにする、優先順位キューとの区別に使用できます。
  • 繰り返し処理されるのではなく、特定の試行後に処理に失敗したメッセージをリダイレクトするために、デッドレターキューをサポートします。
  • デザインパターン
    • ジョブオブザーバパターンは、ジョブ要求数 (キューサイズ) によって EC2 インスタンスの数を自動的に調整することができるため、コストの効果とパフォーマンスが向上します。
    • 優先キューパターンは、遅延キューまたは低い優先度キューでメッセージを処理するための低スケーリング容量によって異なる処理を持つ異なるキューをセットアップするために使用できます。

SNS

  • サブスクライブするエンドポイントまたはクライアントへのメッセージの配信または送信。
  • パブリッシャ-サブスクライバモデル
  • プロデューサとコンシューマは、トピックにメッセージを生成して送信することにより、サブスクライバと非同期に通信します。
  • 電子メール (Plain または json)、HTTP/HTTPS、SMS、SQS をサポート
  • モバイルプッシュ通知をサポートしており、Amazon デバイスメッセージング (ADM)、Apple プッシュ通知サービス (APNS)、Google クラウドメッセージング (GCM) などのサービスを使用して、モバイルデバイスに直接通知をプッシュ。
  • 順序は保証されないし、リコールは利用できない。
  • Lambda と統合して通知の関数を呼び出す。
  • 電子メール通知の場合は、SNS または SES を直接使用し、SQS は動作しません。

SWF

  • 分散コンポーネント間で作業を調整するためのオーケストレーションサービス
  • タスクの定義、格納、作業者へのタスクの割り当て、ロジックの定義、タスクの追跡と監視、および永続的な方法でのワークフロー状態の維持を支援します。
  • AWS クラウドまたはオンプレミスで実行可能なタスクの定義に役立ちます。
  • アプリケーション間の依存関係、スケジューリング、同時実行性の管理を含む、アプリケーション全体のタスクを調整するのに役立ちます。
  • 組み込みの再試行、タイムアウト、およびログ記録をサポート。
  • 手動タスクをサポート。
  • 特性
    • 正確に1回配信する。
    • 長いポーリングを使用して、結果のないポーリング数を減らします。
    • API によるタスクの状態の可視性。
    • タイマ、シグナル、マーカー、子ワークフロー。
    • バージョン管理をサポート。
    • ユーザーが指定した時間のワークフロー履歴を保持
  • AWS SWF vs AWS SQS
    • タスク指向 vs メッセージ指向
    • すべてのタスクとイベントのトラック vs カスタム処理が必要

SES

  • 拡張性とコスト・パフォーマンスに優れたメール・サービス。
  • コンテンツフィルタリング技術を使用して送信メールをスキャンし、スパムやマルウェアの標準および電子メールコンテンツをチェック。
  • SNSと比較して送信される完全な本格的な電子メールをサポートし、メッセージのみが電子メールで送信されます。
  • スケールでバルクメールを送信するための理想的な。
  • 大規模な電子メールの送信に最適。
  • 最初のホップを保証する。
  • メール転送の力仕事を行うためのカスタムソフトウェアやアプリケーションをサポートする必要がなくなる。