AWSサービスの機能を調べる(Application Integration)

皆さんは、AWSクラウドが持つ機能を調べるとき、どうしていますか?

また、使おうと考えているサービスの仕様をどのように調べていますか?

私はこのところ、AWSサービスの機能のホントのところを確認するために、AWS公式ホームページの「AWSサービス別資料」で確認を取っています。
(資料には、SlideShare 、PDF 、Youtube があります)

ちまたのインターネットでの技術ネタを調べることも過去多かったのですが、情報の鮮度もありますし、やっぱり本家の情報がしっくりと安心できます!!

今回は、この画面の左にあるカテゴリー分けから「Application Integration」を選んだときに、各資料にはどのような情報が含まれているかを箇条書きにします。(99-99 形式の数字はページを表します)

Application Integrationカテゴリには、メッセージ管理関係の機能が入っています。

Application Integration

●●資料【1_Amazon EventBridge】

7-11Page

   概念

14Page

   イベントバス:デフォルト/カスタム/パートナーイベント

18Page

   イベントバスの使い分け:
   各AWSサービス     → デフォルトイベント
   他のアプリケーション → カスタムイベント
   外部SaaS       → パートナーイベント

19Page

   EventBridgeとCloudWatch Eventsとの違い
   ・EventBridgeは Amazon CloudWatch Eventsから派生・独立したサービスで、
    デフォルトイベントバスはその延長線上にある機能
   ・カスタムイベントバスやSaaS連携の機能を追加

31Page

   カスタムイベント:EventBridgeのPutEvents APIを呼び出し
   SaaSイベント  :送信元のSaaSアプリケーションによる

32Page

   EventBridgeに直接送信されるイベント:
     AWSリソースの状態変化を起点にイベントが発生する。
   CloudTrail経由で送信されるイベント :
     ユーザーのAWSリソースに対する操作(=API呼び出し)を起点にイベントが発生する。

33Page

   EventBridgeにイベントを送信するサービスと機能

44-47Page

   ルール・ルールのイベントパターン・ルールのスケジュール式(cron式、rate式)

49Page

   ターゲットとして指定できるもの

56Page

   ターゲットへのアクセス制御:リソースベースポリシー(=ターゲット側で制御)
    →Lambda, SNS, SQS, CloudWatch Logs

58Page

   ターゲットへのアクセス制御:IAMポリシー(=IAM側で制御)
    →Lambda, SNS, SQS, CloudWatch Logs以外のサービスをターゲットに指定する場合

59Page

   イベントバスのアクセス制御
   ⇒ 他のアカウント、または、AWS Organizationsにおける同一の組織からの
    イベント送信をイベントバスのポリシーで許可する。

62Page: 案1:SaaSのAPIをポーリングする(EC2)
63Page: 案2:SaaSのAPIをポーリングする(Lambda)
64Page: 案3:SaaSのWebhook機能でPushしてもらう
65Page: 案4:EventBridgeのSaaS連携機能の利用 66Page:対応しているSaaSアプリケーション
69-72Page  :SaaSアプリケーションとの連携方法

75Page

   クロスアカウント連携:ルールで他アカウントのイベントバスをターゲットに指定

77Page

   CloudWatch Alarmのステータス変化がEventBridgeで取得可能に

78Page

   ECR(Elastic Container Registry)のイベントが取得可能

79Page

   コンテンツベースのフィルタリング

80-82Page

   Schema Registry :EventBridgeでやり取りされる様々なデータのスキーマを、
           コンソールからまとめて参照可能
   Schema Discovery:SaaSイベントやカスタムイベントがイベントバスに送信されると、
            スキーマ情報を自動生成可能になった
   Code Bindings :AWS Toolkit for IntelliJ および Visual Studio Codeを用いてスキーマ定義
          を取得可能。スキーマ定義を言語ごとにダウンロード可能。

84Page

   Amazon EventBridgeの料金

85Page

   Amazon EventBridgeの制限

●●資料【2_AmazonMQ】

メッセージ指向ミドルウェア (MoM)またはメッセージブローカーを置き換える
オープンソースメッセージブローカー向け完全マネージド型サービス
Apache ActiveMQ、RabbitMQ をサポート

●●資料【5_AmazonSQS】

23-24Page

  アプリケーション連携、AWSのマネージドサービスの検討
   1.ストリーミング/メッセージングの検討:
     Amazon Kinesis Amazon Managed Streaming for Kafka Amazon API Gateway
   2.同期/非同期方式の検討
   3.Push/Pull方式検討: 非同期&Push→AmazonSNS Pull&P2P方式→AmazonSQS
             Pull&P2P/PublishSubscribe方式→AmazonMQ
   4.P2P/Publish Subscribe方式の検討(処理依頼先1か所?複数?)

   Amazon SQSの利用ケース
   ケース1 大量リクエストが一時的に発生する場合にキューで受ける
   ケース2 アプリケーション間の依存関係を弱めたい場合
   ケース3 重い処理が含まれていても素早く応答をしたい場合
   ケース4 複数の処理を並列処理したい場合

46Page

   配信方法 少なくとも1回の配信(2回以上の配信もあり得る)

   ・スタンダードキュー:最低1回の配信/順序はベストエフォート
   ・FIFOキュー:1回のみ配信/順序を保証

47Page

   二回以上の配信がある場合の設計とは?

   同じメッセージで処理をした場合、何回処理をしても結果が変わらない設計
   Dynamo DB等を活用して処理済みであることを判定できる仕組みを導入し重複実行しない設計

47Page

   キューのメッセージ取得方法
   ショートポーリング方式/ロングポーリング方式

48Page

   Amazon SQSでメッセージを取得する際のお作法
   1.ポーリング 2.取得&処理 3.削除 ★キューに削除指示

54Page

   可視性タイムアウトによる処理中のメッセージロック
   ⇒ スタンダードキューの場合は、可視性タイムアウトはメッセージを2回受信しない保証
    にはなりません。
     ※ 障害ロック発生しても、処理が動くようにできる

55Page

   遅延キューとメッセージタイマー
   :メッセージをキューに送信してから一定時間後に利用可能になる(プロデューサー側の動き)
   ①遅延キューはキュー全体に、メッセージタイマーは特定のメッセージに対して
    遅延時間を設定するもの
   ②両方指定された場合はメッセージタイマーの値が優先される
   ③ メッセージタイマーはFIFOキューは未サポート

56Page

   Dead Letter Queue(DLQ)
   :メッセージの滞留回避 最大受信数を設定 最大受信数を達した場合、DLQに移動
   ①FIFOキューで順序が変わることが許容できない場合は利用しない
   ②無制限に繰り返したい場合は利用しない

57Page サーバサイド暗号化を利用したメッセージの暗号化(AWS KMS)
58Page キューのアクセス制御(IAMポリシー/Amazon SQSポリシー)
59Page メッセージ属性を利用したメタ情報の格納(MAX10)(サーバサイド暗号化の対象外)
60Page キューのモニタリング(CloudWatch)

61Page

   Amazon SQS/Amazon Kinesisの使い分け

   Amazon Kinesis
   ⇒ストリーミングデータ(単発メッセージではなく関連する複数メッセージを処理するケース)
   ⇒①シャード内で順序保証 ②複数のConsumerで同一データを並列処理可能

   Amazon SQS(スタンダードキュー/FIFO)
   ⇒メッセージ消費型。同一メッセージの並列処理には向かない。

64Page

   Amazon SQSのご利用料金:1 つのリージョン内におけるAmazonSQSとAmazonEC2間
   でのデータ転送は無料

●●資料【6_StepFunctions】

17-19Page

  ステートマシンの実行方法 (呼び出し元)
  ステートマシンから呼び出し可能な AWS のサービス
  Activity ポーリングでStep Functionsを呼び出す ハートビート(Step Functions?APP?)

28Page

  7種類の State Type

48-51Page
  AWS Step Functions の主な制限
  スロットリング – トークンバケットアルゴリズム
  AWS Step Functions Local
  Amazon Simple Workflow Service (SWF)