hero-rinのブログ

某会社で某システムの運用、開発をやっているただのおじさん

AWSのサービスを理解するーアプリケーション統合カテゴリ編ー

AWSのサービスを理解して行きたい!の続き

前回からの続きでAWSのカテゴリ別サービスの簡単解説行っていきます。今回はアプリケーション統合です。

カテゴリ:アプリケーション統合

アプリケーションとアプリケーションを結びつけるサービス郡といった感じのようです。分析カテゴリと同じように以下アプリケーション統合カテゴリにぶら下がっているサービス一覧です。

AWS Step Functions

AWS LambdaやAmazon EC2 Container Service (ECS)で作成した処理やサービスを繋げて一つのワークフローを構築できるサービスです。昔の感覚で自分流に書いてしまうと、各ジョブ管理システムの拡張版という感じでしょうか?

使用方法としは、Amazon States Language (ASL)*1を使って各Task*2を制御(例えば処理が成功したらTask'A'を実行など)するフロー図を作成し実行することができるようです。

docs.aws.amazon.com

Amazon MQ

前回"Amazon Kinesis"のところでも少し書きましたが、Apacheから出しているActiveMQAWSとしてサービス化したものが"Amazon MQ"になります。昔からのMQを使用したい人はこちらを利用する感じでしょうか。

docs.aws.amazon.com

Amazon Simple Notification Service (SNS)

小難しくいうと"pub(Publish)-sub(Subscribe)メッセージング"を仲介するサービスだそうな。噛み砕くと"出版-購読仲介サービス"。モバイルプッシュ、Short Message Service (SMS)、Eメールの配信や送信タイミングを管理・調整するサービスです。なんですが"出版-購読仲介サービス"なんで、「システムから人へ」だけでなく「システムからシステムへ」にも使用できるとのこと、ただ個人的には「システムからシステムへ」の場合はキューやストリーミングサービスを使用した方が幸せにあれる感じがするのでやっぱり用途は、人への配信かなと思ったしだいです。

docs.aws.amazon.com

Amazon Simple Queue Service (SQS)

これも前回"Amazon Kinesis"のところでも少し書きましたが、MQという規格をもっとシンプルにすることで、"SQS"を使用するサービスをよりスケーラブルな(拡張性のある)システムにすることができるというのが"Amazon MQ"との違いのようです。なので新規でMQを使用したい場合は、"SQS"を使用した方が幸せになれるみたいです。

docs.aws.amazon.com

AWS AppSync

GraphQLをより簡単に利用しやすくした管理サービスです。ではGraphQLとは何でしょう?

GraphQLとは?

APIへの問い合わせ言語』だそうな。そしてこれを利用したAPIがGraphQL APIとなります。同列には皆さんご存知REST APIがあります。仕組みとして、REST APIAPI側で設定した定義をもとに値を返すのに対してGraphQL APIはフロント側で設定した定義をAPIが解釈して値を返す言語らしいです。なのでREST APIの場合「今回はこの情報要らないんだけどなー」という時でも全部取り込んで必要なものだけ表示をするんだけど、GraphQL APIは、「今回はこれだけ必要」とか定義するとそれだけ抽出してくれるそうな。

AppSyncの場合、下のデータソースとのやり取りがやりやすいように準備されているみたいです。

ちなみにモバイルカテゴリにも存在している(?)

docs.aws.amazon.com

Amazon Simple Workflow (SWF)

これもワークフロー管理サービスみたいです。SWFの特徴は、『スケーラブルで分散したワークフローを提供することが可能』で、『リージョンをまたいだワークフローやAWSとオンプレとの連携も実現することが可能』とのことです。AWSには他に"AWS Step Functions"というワークフローを管理するサービスがあるので、ここで違い(使い分け)をザックリ書いておこうと思います。

この2つのサービスの使い分けとしてタスク間でより細かな制御をする場合は"Amazon Simple Workflow"。ある程度シンプルな制御で済む場合は"AWS Step Functions"を使った方がいいようです。では複雑な制御って何なのかという話なんですが、"Amazon Simple Workflow"では"ディサイダー"というタスク間の連携を制御する機能が必要でこれは各自で自作して用意する必要があるようです。自作の内容によってはオンプレサーバに繋ぐことやクライアントからの返答待ちなど自由な制御が可能となっています。(自作プログラムは、サービスAPIとの通信ができれば何でもよいとのこと)なので、こんな自前制御なんて必要ないという話であれば"AWS Step Functions"を使った方が幸せになれるようです。

ドキュメント一覧には"AWS AppSync"が無くこちらのサービスがあったので、載せておきます。(どちらにせよ製品リスト、ドキュメントどちらか間違っているかと(^^; )

docs.aws.amazon.com

今回も公開までに時間がかかってしまいました。見た目同じ様なサービスで違いを調べるのに結構時間がかかる。。。

次回こそ休憩がてら軽いものを書こうと思います。その後次のカテゴリ"AR およびバーチャルリアリティ"とい流れで、行こうかなと思ってます。

 

それでは今回はここまで!

*1:JSONベースの構造化言語らしい

*2:各実行処理単位 大きさは様々function単位だったりサービス単位だったり