Amazon SNSとAWS Lambda

はじめに

顧客のデータを活用したサービスが増加している現在、提供される情報はより個人に興味・関心があるものになってきています。有効な情報提供ができるかは、情報発信者にとって重要な問題になっており、情報の発信手段も多様になっています。今回は、情報発信手段のツールの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サービスとの併用

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

 

AWS Lambda

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

 

SNSとLambda

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

おわりに

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です