スポンサーリンク

【図解】AWSで疎結合な構成を実現する方法【SQS/SNS】

★悩み★
・AWSで疎結合な構成ってできるのだろうか。
・Amazon SQSで疎結合を実現できるらしいけど本当なのかな。
・Amazon SNSで疎結合を実現できるらしいけど本当なのかな。

こういった「悩み」に答えます。

★本記事の内容★
(1) 疎結合な構成とは何か?を徹底解説
(2) AWSで疎結合な構成を実現する方法をご紹介

これからご紹介する「AWSで疎結合な構成を実現する方法」を理解しておくことで、「AWS 認定 ソリューションアーキテクト アソシエイト」の資格に合格しやすくなります。

本記事の前半では「疎結合な構成とは何か?」を具体的に解説し、本記事の後半では「AWSで疎結合な構成を実現する方法」をご紹介します。

この記事を読み終えることで、「AWSで疎結合な構成をどのようにして実現するのか」を理解した状態になります。

「AWSとは何か?」や「AWSの基礎的なサービスは何か?」を知りたい方は、以下の記事をご覧ください。

疎結合な構成とは何か?

疎結合な構成の必要性に関してご紹介します。

疎結合な構成ではないシステム(密結合なシステム)の例として、下図があります。


密結合なシステムの欠点として以下があります。

★密結合なシステムの欠点★
・アプリがデータ保存処理中にサーバ停止した場合、保存しようとしたデータが消失する。
・WebServerから大量にデータ転送が発生した場合、アプリがハングアップし、DBへデータを保存できなくなる。
・アプリの数を増やした場合、WebServerの作り(新規追加したアプリへデータ転送するロジックの追加)を修正する必要がある。

密結合なシステムの欠点を解消するために、下図のような疎結合な構成が求められるようになりました。


疎結合な構成を採用することで、以下の利点を得ることができます。

★疎結合なシステムの利点★
・キューイングに保存されたデータを再取得することで、再びデータ保存をできる。
・アプリのキャパシティを超える処理を抑止することができる。
・アプリの数を増やしてもWebServerの作りを修正する必要がなくなる。

上記の利点のおかげで、疎結合な構成を採用したシステムは、容易にスケーリングが可能です。

スケーリングを容易に実現したいシステムを構築したい際は、疎結合な構成を検討しましょう。

AWSで疎結合な構成を実現する方法

AWSで疎結合な構成を実現する方法をご紹介します。

以下のサービスを利用することで、AWSで疎結合な構成を実現できます。

★AWSで疎結合な構成をするためのサービス★
・Amazon Simple Queue Service
・Amazon Simple Notification Service

以降で、上記サービスに関してご紹介します。

Amazon Simple Queue Service【疎結合を実現するサービス①】

疎結合を実現するサービスの1つとして、Amazon Simple Queue Service(Amazon SQS)があります。

Amazon SQSは、以下のようなサービスです。

★Amazon SQSとは★
・フルマネージド型のメッセージキューイングサービス
・格納されたメッセージは、処理/削除が終わるまで保持
・システム間のバッファの役割

Amazon SQSを利用することで、以下の利点を得ることができます。

★Amazon SQSの利点★
・データがSQS内に残るため、失敗したデータ保存を再試行可能
・インスタンスの追加ができるため、容易にスケーリングが可能

Amazon SQSは、以下のように利用します。

注意するべき点としては、「アプリからのデータ削除依頼がくるまでそのデータをキューイングに保持し続ける」ことです。


Amazon SQSは、以下の機能を持っています。

★Amazon SQSの機能★
・2種類のキューイング方法
 → 標準キュー
 →→ 格納されたデータの配信を少なくとも1回行う
 →→ 1秒あたりのデータ配信数に制限なし
 → FIFOキュー
 →→ 格納されたデータの配信を1回のみ行う
 →→ 1秒あたりのデータ配信数は300件の制限あり

・デッドレターキュー
 → 正常にデータを配信できなかったものを格納
 → 設定した配信数を超えた場合、自動的にデッドレターキューへ

・ロングポーリング
 → キューが空であるデータを取得できるまで待つ時間を設定

・データの保存期間
 → 保存期間は、1日から14日(設定可能)

・保存できるデータサイズ
 → 数百KB級のデータをキューイング可能

Amazon SQSは、以下のことが不得意です。

★SQSの不得意なこと★
・MB級以上のデータ格納
・キューから特定のデータを取り出すこと

以上が、「疎結合を実現するサービスの1つであるAmazon Simple Queue Service」となります。

Amazon Simple Notification Service

疎結合を実現するサービスの1つとして、Amazon Simple Notification Service(Amazon SNS)があります。

Amazon SNSは、以下のようなサービスです。

★Amazon SNSとは★
・メッセージ通知サービス
・受け取ったデータを連携するサービスやアプリに通知
 → CloudWatchやSQSといったAWSサービスへ通知可能
 → SNSはデータを受け取りしだい、連携するサービスへ通知

Amazon SNSは、以下のように利用します。


データを受信した際に、複数のサービスでそのデータを用いて処理をしたい場合は、Amazon SNSを利用するといいでしょう。

以上が、「AWSで疎結合な構成を実現する方法」となります。

【まとめ】AWSで疎結合な構成を実現する方法を徹底解説

今回の記事を通して、「AWSで疎結合な構成を実現する方法」をご紹介することで、以下の悩みを解消しました。

★悩み★
・AWSで疎結合な構成ってできるのだろうか。
・Amazon SQSで疎結合を実現できるらしいけど本当なのかな。
・Amazon SNSで疎結合を実現できるらしいけど本当なのかな。

AWSでの疎結合な構成ってどうやって実現するんだろうか?」と悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

コメント

タイトルとURLをコピーしました