Amazon SNSとAWS Lambda

最終更新日:2026年8月12日

この記事でわかること

はじめに

項目 AWS Microsoft Azure Google Cloud
世界シェア 約33%(首位) 約22% 約11%
強み サービス数・実績 Microsoft製品連携 データ分析・AI
無料枠 12ヶ月+常時無料 12ヶ月無料 常時無料枠あり
主な資格 CLF / SAA / SAP AZ-900 / AZ-104 ACE / PCA

【要注意】上記のシェア・料金・資格名は変動する場合があります
クラウド市場シェアや無料枠の内容は時期により変わるため、最新の情報は各社公式サイトでご確認ください。

顧客のデータを活用したサービスが増加している現在、提供される情報はより個人に興味・関心があるものになってきています。有効な情報提供ができるかは、情報発信者にとって重要な問題になっており、情報の発信手段も多様になっています。今回は、情報発信手段のツールの1つであるAmazon SNSとプログラム実行環境であるAWS Lambdaについて紹介していきます。

Amazon SNS

Amazon SNS(Simple Notification Service)とは、サブスクライブしている対象にメッセージの通知を調整および管理するためのウェブサービスです。アプリケーションからメッセージを発行し、サブスクライバーやアプリケーションに配信することができます。トピックにサブスクライブされたサブスクライバーは、Lambda、Amazon SQS、HTTP/S、Eメール、SMSなどのプロトコルを使用してメッセージを受信することができます。

トピック

Amazon SNSにおけるトピックは、通信などのデータを伝送するための経路として機能する論理アクセスポイントのことを指します。トピックを利用すると、複数のサブスクライバーをグループにまとめることが可能です。AWSマネジメントコンソール、AWS SDK for Java、AWS SDK for.NETなどを使用してトピックを作成できます。トピックにエンドポイントをサブスクリプションすると発行されたメッセージの受信を開始できます。

サブスクリプション

トピックに紐づける送信先を定義することを指します。トピックにサブスクリプションされたものをサブスクライバーと呼びます。サブスクライバーには、ウェブサーバーやEメールアドレス、Amazon SQSキュー、AWS Lambda関数などがあります。

Amazon SNSのメリット

Amazon SNSのメリットを紹介します。

プッシュベースの配信

プッシュベースの配信のためポーリングなしで行えます。これにより、すぐにメッセージを配信することができます。

複数のプロトコルに対応

複数のプロトコルに対応しているので、柔軟なメッセージの配信を行うことができます。

従量課金制

安価な従量課金制なので使用した分だけ料金を支払います。前払い金が必要なく料金を低く抑えることも可能です。なお、具体的な料金・無料利用枠の範囲は変更されることがあるため、最新料金はAWS公式サイトでご確認ください。

AWSサービスとの併用

Amazon SNSは、Amazon SQS、Amazon EC2、Amazon S3など他のAWSのサービスと併用することが可能です。これにより、通知を他のサービスに記録することができます。

AWS Lambda

AWS Lambdaは、サーバーを必要としないプログラム実行環境のことを指します。開発者が処理したい内容を小さな関数として実装すると必要に応じてそれが実行される仕組みとなっています。AWS Lambdaで実行するコードは、Lambda関数と呼びます。Lambdaではイベントに応答して、自動的にコードが実行されます。Lambdaはサーバーを必要としないので、開発のための環境の構築や、運用保守に関する手間やコストを削減することができます。また、AWS Lambdaは、プログラムを実行した時間に対する従量課金制となっています。プログラムの実行開始時からコードが返されるまでの時間に対して課金されるので、プログラムを実行していないときは課金対象となりません。一定量までは無料で利用できる枠が用意されていますが、範囲や条件は変更されることがあるため、最新の内容はAWS公式サイトでご確認ください。

SNSとLambda

Amazon SNSとAWS Lambdaは連携することができます。LambdaにコードをアップロードすることでLambda関数をAmazon SNSに関連付けることができます。AWS Lambda関数を呼び出してカスタムのメッセージ配信処理を実行することができます。Amazon SNSをすでに利用しているアプリケーションやサービスでは、インフラストラクチャのプロビジョニングや管理をすることなくAWS Lambdaを利用してカスタムのメッセージ処理を実行することができます。リソースが変更されると、Lambdaは受信リクエストに対応して必要な関数の実行およびコンピューティングリソースの管理を行います。

押さえておきたいポイント

  • Amazon SNSは「トピック」を軸にメッセージを発行し、Lambda・SQS・HTTP/S・Eメール・SMSなど複数プロトコルのサブスクライバーへプッシュ型で配信する通知サービスである
  • AWS Lambdaはサーバー管理が不要なプログラム実行環境で、イベントをトリガーに関数(Lambda関数)を実行し、実行した時間に応じた従量課金となる
  • SNSのトピックにLambda関数をサブスクリプションとして紐づけることで、通知の受信をきっかけに任意の処理を自動実行する連携が組める

よくある質問

Q. Amazon SNSとAmazon SQSはどう違いますか?

Amazon SNSは複数のサブスクライバーに同時にメッセージを配信する「プッシュ型」の通知サービスです。一方Amazon SQSは、メッセージを一旦キューに蓄積し、受信側が必要なタイミングで取り出す「キューイング」の仕組みです。両者は用途が異なるため、通知の即時配信にはSNS、処理の順序制御や負荷分散を伴うメッセージ処理にはSQSが適しています。SNSとSQSを組み合わせ、1つのトピックから複数のキューへ配信するファンアウト構成もよく使われます。

Q. AWS Lambdaはどのようなプログラミング言語に対応していますか?

AWS Lambdaは、Python、Node.js(JavaScript)、Java、Go、Ruby、C#(.NET)など複数のランタイムに対応しています。対応ランタイムのバージョンは随時更新されるため、最新の対応状況はAWS公式サイトでご確認ください。また、カスタムランタイムやコンテナイメージを使うことで、公式にサポートされていない言語で実装することも可能です。

Q. Amazon SNSとAWS Lambdaを連携させる際の注意点はありますか?

SNSからのメッセージ配信をトリガーにLambda関数が実行される際、同じメッセージが複数回配信される可能性があるため、Lambda関数側で処理が重複しても問題ないように設計(冪等性の確保)しておくことが重要です。また、Lambda関数の実行が失敗した場合の再試行やエラー通知の仕組み(デッドレターキューなど)もあわせて検討すると、より堅牢な連携になります。

おわりに

Amazon SNSとAWS Lambdaについて理解を深めていただくことはできたでしょうか。Amazon SNSを利用することで、サブスクライブしている対象にメッセージを送信することができます。また、AWS Lambdaと連携することができるので、AWS Lambdaを利用したサービスに対応することができます。これを機に情報のより有効な発信手段を考えていきましょう。

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →