★悩み★
・Amazon SQSってどういう用途(使い方)で使うのかな?
・そもそもAmazon SQSとは何?どういった機能や仕組みなの?
・Amazon SQSとAmazon SNSって似た名称っぽいけど、どう違うの?
こういった「悩み」に答えます。
★本記事の内容★
① 疎結合(マイクロサービス)なシステムとは?概要と必要性を解説
② Amazon SQSとSNSとは?特徴/用途(使い方)/違いを解説
これからご紹介する「AWSのSQSとは?SQSの特徴や用途(使い方)のまとめ」を理解することで、「AWS Certified Solutions Architect – Associateの合格率アップ(筆者は合格済み)」および「Amason SQSの用途やAmazon SNSとの違いの理解」を見込めます。
記事の前半では「疎結合(マイクロサービス)とは?を解説しつつ、Amazon SQSとの関係性」を解説します。
記事の後半では「Amazon SQSとAmazon SNSの仕組み、特徴(メリット・デメリット)、用途(使い方)」を紹介します。
この記事を読み終えることで、「Amazon SQSやAmazon SNSとは何か?や違いは?」を把握できるだけでなく、「Amazon SQSをどういった場面で使うべきか」も把握した状態になります。
ちなみに、「そもそもAWSとは何?」や「AWSの使い方は?」を知りたい方には、以下の記事がオススメです。
疎結合(マイクロサービス)なシステムとは?概要と必要性を解説
「疎結合(マイクロサービス)なシステムとは?概要と必要性を解説」に関してご紹介します。
★疎結合(マイクロサービス)なシステムに関するご紹介事項★
・疎結合(マイクロサービス)なシステムとは?必要性は?
・AWSで疎結合(マイクロサービス)を実現するために利用されるサービス
以降で、上記「疎結合(マイクロサービス)なシステムに関するご紹介事項」の各項目に関してご紹介します。
疎結合(マイクロサービス)なシステムとは?必要性は?
「疎結合(マイクロサービス)なシステムとは?必要性は?」に関して説明します。
疎結合(マイクロサービス)なシステムとは何か?やその必要性を図を使って説明しますね。
疎結合(マイクロサービス)なシステムを説明する前に、疎結合ではないシステムを説明します。
疎結合ではないシステム(密結合なシステムとも言う)の例として、下図があります。
疎結合ではないシステム(密結合なシステム)の欠点として以下があります。
★疎結合ではないシステム(密結合なシステム)の欠点★
・アプリがデータ保存処理中にサーバ停止した場合、保存しようとしたデータが消失する。
・WebServerから大量にデータ転送が発生した場合、アプリがハングアップし、データベース(DB)へデータを保存できなくなる。
・アプリの数を増やした場合、WebServerの作り(新規追加したアプリへデータ転送するロジックの追加)を修正する必要がある。
近年では、上記「密結合なシステムの欠点」を解消するために、下図のような疎結合な構成(マイクロサービスとも言う)が求められるようになりました。
疎結合な構成(マイクロサービス)を採用することで、以下の利点を得ることができます。
★疎結合なシステム(マイクロサービス)の利点★
・キューイングに保存されたデータを再取得することで、再びデータ保存をできる。
・アプリのキャパシティを超える処理を抑止することができる。
・アプリの数を増やしてもWebServerの作りを修正する必要がなくなる。
上記利点により、疎結合な構成(マイクロサービス)を採用したシステムは、容易にスケーリングが可能です。
以上が、「疎結合(マイクロサービス)なシステムとは?必要性は?」となります。
AWSで疎結合(マイクロサービス)を実現するために利用されるサービス
「AWSで疎結合(マイクロサービス)を実現するために利用されるサービス」に関して解説します。
AWSで疎結合(マイクロサービス)を実現したい場合によく利用されるAWSのサービスに関して簡単に説明しますね。
以下のサービスを利用することで、AWSで疎結合な構成(マイクロサービス)を実現できます。
★AWSで疎結合(マイクロサービス)を実現するためによく使うサービス★
・Amazon Simple Queue Service(SQS)
・Amazon Simple Notification Service(SNS)
・Amazon Managed Streaming for Apache Kafka(MSK)
Amazon Managed Streaming for Apache Kafka(MSK)は、OSSの「Apache Kafka」で構成されるサービスです。
AWSでは、OSSの「Apache Kafka」を簡単に管理・使える仕組みを提供してくれます。
参照:Apache Kafkaの概要(Apache Kafka運営元サイト)
Apache Kafkaを実際に使ってみたい方には、以下の記事がオススメです。
「Amazon Simple Queue Service(SQS)」と「Amazon Simple Notification Service(SNS)」に関しては、以降で解説します。
以上が、「AWSで疎結合(マイクロサービス)を実現するために利用されるサービス」となります。
スケーリングを容易に実現したいシステムを構築したい際は、AWSのSQSやMSKなどを用いて疎結合な構成(マイクロサービス)を検討しましょう。
Amazon SQSとSNSとは?特徴/用途(使い方)/違いを解説
「Amazon SQSとSNSとは?特徴/用途(使い方)/違いを解説」に関してご紹介します。
★Amazon SQSとSNSとは?特徴/用途(使い方)/違いに関する紹介事項★
・Amazon Simple Queue Service(SQS)とは?特徴/用途(使い方)を解説
・Amazon Simple Notification Service(SNS)とは?特徴/用途(使い方)を解説
・Amazon SQSとAmazon SNSの違いを解説
以降で、上記「Amazon SQSとSNSとは?特徴/用途(使い方)/違いに関するご紹介事項」に関して解説します。
Amazon Simple Queue Service(SQS)とは?特徴/用途(使い方)
「Amazon Simple Queue Service(SQS)とは?特徴/用途(使い方)」に関して解説します。
疎結合を実現するサービスの1つとして、Amazon Simple Queue Service(略称はAmazon SQS)があります。
Amazon Simple Queue Service(SQS)とは、以下のようなサービスです。
★Amazon Simple Queue Service(SQS)とは★
・フルマネージド型のメッセージキューイングサービス
・格納されたメッセージは、処理/削除が終わるまで保持
・システム間のバッファの役割
また、Amazon Simple Queue Service(SQS)は、以下の機能を持っています。
★Amazon Simple Queue Service(SQS)の機能★
・2種類のキューイング方法
→ 標準キュー
→→ 格納されたデータの配信を少なくとも1回行う
→→ 1秒あたりのデータ配信数に制限なし
→ FIFOキュー
→→ 格納されたデータの配信を1回のみ行う
→→ 1秒あたりのデータ配信数は300件の制限あり
・デッドレターキュー
→ 正常にデータを配信できなかったものを格納
→ 設定した配信数を超えた場合、自動的にデッドレターキューへ
・ロングポーリング
→ キューが空であるデータを取得できるまで待つ時間を設定
・データの保存期間
→ 保存期間は、1日から14日(設定可能)
・保存できるデータサイズ
→ 数百KB級のデータをキューイング可能
上記機能を持つAmazon Simple Queue Service(SQS)を利用することで、以下のメリットを得られます。
★Amazon Simple Queue Service(SQS)の利点★
・データがSQS内に残るため、データ保存に失敗した場合、再試行可能
・インスタンスの追加ができるため、容易にスケーリングが可能
Amazon Simple Queue Service(SQS)は、以下のことが不得意(デメリット)です。
★Amazon Simple Queue Service(SQS)の不得意なこと★
・キューにMB級以上のデータを格納すること
・キューから特定のデータを取り出すこと
ちなみに、Amazon Simple Queue Service(SQS)は、以下の用途(使い方)で用いられます。
注意するべき点としては、「アプリからのデータ削除依頼がくるまでそのデータをキューイングに保持し続ける」ことです。
以上が、「Amazon Simple Queue Service(SQS)とは?特徴/用途(使い方)」となります。
Amazon Simple Notification Service(SNS)とは?特徴/用途(使い方)
「Amazon Simple Notification Service(SNS)とは?特徴/用途(使い方)」に関して解説します。
疎結合を実現するサービスの1つとして、Amazon Simple Notification Service(略称はAmazon SNS)があります。
Amazon Simple Notification Service(SNS)は、以下のようなサービスです。
★Amazon Simple Notification Service(SNS)とは★
・メッセージ通知サービス
・受け取ったデータを連携するサービスやアプリに通知
→ CloudWatchやSQSといったAWSサービスへ通知可能
→ SNSはデータを受け取りしだい、連携するサービスへ通知
Amazon Simple Notification Service(SNS)は、以下の用途(使い方)で用いられます。
データを受信した際に、複数のサービスでそのデータを用いて処理をしたい場合は、Amazon Simple Notification Service(SNS)を利用するといいでしょう。
以上が、「Amazon Simple Notification Service(SNS)とは?特徴/用途(使い方)」となります。
Amazon SQSとAmazon SNSの違い
「Amazon SQSとAmazon SNSの違い」に関して解説します。
Amazon SQSとAmazon SNSの違いを簡単に説明しますね。
Amazon SQSとAmazon SNSの違いを端的に表すと以下となります。
★Amazon SQSとAmazon SNSの違い★
Amazon SNSは、受け取ったメッセージを異なるサービスへ通知する仕組み
Amazon SQSは、メッセージを受け取る仕組み
以上が、「Amazon SQSとAmazon SNSの違い」となります。
Amazon Simple Queue Service(SQS)とAmazon Simple Notification Service(SNS)を適切に使い、AWSでマイクロサービスを構築しましょう。
【まとめ】AWSのSQSとは?SQSの特徴や用途(使い方)のまとめ
いかがでしたでしょうか?
「疎結合なシステム(マイクロサービス)とは?」や「AWSのSQSとSNSの特徴と用途(使い方)を解説し、以下の悩みを解決しました。
★悩み★
・Amazon SQSってどういう用途(使い方)で使うのかな?
・そもそもAmazon SQSとは何?どういった機能や仕組みなの?
・Amazon SQSとAmazon SNSって似た名称っぽいけど、どう違うの?
「Amazon Simple Queue Service(SQS)とAmazon Simple Notification Service(SNS)の用途(使い方)とは?用途や使い方は?」で悩んでいるあなたに少しでも本記事が悩み解決の手助けになっていれば幸いです。
コメント