【ITニュース解説】Part 2: Automating News Alerts with AWS Lambda, SNS, and Event Bridge!
2025年09月14日に「Dev.to」が公開したITニュース「Part 2: Automating News Alerts with AWS Lambda, SNS, and Event Bridge!」について初心者にもわかりやすく解説しています。
ITニュース概要
AWS Lambda、SNS、EventBridgeを活用し、ニュースAPIから取得した最新技術ニュースを毎日メールで自動配信するシステムを構築する。手動で情報収集する手間を省き、サーバーレスで効率的に最新情報を得る方法を、AWS SAMでのデプロイを含めて解説する。
ITニュース解説
この記事は、AWSの様々なサービスを組み合わせて、最新のニュースを自動的に取得し、その要約を毎日メールで受け取れるシステムを構築する方法について解説している。前回の記事で作成したニュース要約機能をさらに拡張し、手動でニュースをチェックする手間を省き、効率的に情報を収集できる仕組みを作り上げる。
このシステムを構築する主な目的は、最新のテクノロジーニュースに常にアンテナを張り続けることの難しさを解決することにある。毎日ブログやニュースサイトを巡回して情報を集めるのは時間がかかる作業だが、AWSのサーバレス技術と自動化ツールを活用することで、このプロセスを完全に自動化し、最新の技術ニュースの要約を毎日メールボックスに直接届けることを目指す。これにより、シンプルかつ迅速に情報を手に入れることが可能になる。
システムを構成する主要な要素は、AWS Lambda、Amazon SNS、Amazon EventBridge Schedulerの三つのAWSサービスと、外部のニュース取得APIであるNewsAPI.orgである。
まず、AWS Lambdaは、サーバレスなコンピューティングサービスだ。これは、サーバーの管理をすることなくコードを実行できる点が特徴で、使った分だけ料金が発生する。このシステムでは、ニュースAPIから記事の情報を取得し、その内容を読みやすい形式に整形するPythonコードがLambda関数として実行される。
次に、**Amazon SNS (Simple Notification Service)**は、メッセージを複数の購読者(ここではメールアドレス)に効率的に送信するためのサービスだ。Lambda関数が作成したニュースの要約テキストは、SNSの「トピック」と呼ばれる仮想の通信チャネルに送信される。このトピックを購読しているメールアドレスには、自動的にそのニュース要約がメールとして配信される仕組みになっている。
そして、Amazon EventBridge Schedulerは、AWSのリソースに対してスケジュールに基づいたアクションを自動的に実行させるサービスだ。このシステムでは、毎日決まった時間にLambda関数を起動させるために利用される。例えば、「毎日午前9時にニュースを取得してメールを送る」といった設定を、cron式と呼ばれる形式で簡単に設定できる。
ニュースのコンテンツ自体は、NewsAPI.orgという外部のニュースアグリゲーションサービスから取得する。このサービスは、CNNやBBC、TechCrunchなどの主要なニュース媒体からヘッドラインや記事にプログラム的にアクセスできるAPIを提供している。無料プランでは1日あたり100リクエストまで利用でき、特定の国やカテゴリ(テクノロジーなど)でニュースをフィルタリングし、JSON形式で取得できるため、開発者がリアルタイムのニュースコンテンツにアクセスするのに非常に便利だ。
システムの構築には、**AWS SAM (Serverless Application Model)**というフレームワークが使われる。AWS SAMは、Lambda関数やAPI Gateway、DynamoDBといったサーバレスアプリケーションのAWSリソースを簡単に定義し、デプロイするためのツールだ。これにより、Infrastructure as Code (IaC) と呼ばれる手法で、インフラストラクチャの設定もコードとして管理できるため、システムの再現性や管理が非常に容易になる。
具体的な構築の流れとしては、まずAWS SAMのテンプレートファイル(template.yaml)で、Lambda関数、EventBridge Scheduler、SNSトピックといった必要なAWSリソースの構成を定義する。次に、PythonとAWS SDK (Boto3) を使ってLambda関数のコードを記述する。このコードはNewsAPIを呼び出し、米国テクノロジーカテゴリの最新ニュースから上位5件を取得し、タイトル、ソース、URL、簡単な説明を含む形式に整形する。その後、整形されたニュース要約をSNSトピックにパブリッシュする処理を行う。
コードとテンプレートの準備ができたら、AWS SAMのコマンドを使って、アプリケーションをローカル環境でビルドし、正しく動作するかテストする。ローカルでの検証が成功したら、sam deployコマンドを実行して、定義したAWSリソースとLambda関数をAWSクラウド上にデプロイする。このデプロイプロセスでは、変更内容が「変更セット」として表示され、デプロイ前にその内容を確認し、承認することが求められる。
デプロイ完了後、AWSマネジメントコンソールにログインして、EventBridge Scheduler、Lambda関数、SNSトピックが意図通りに作成されていることを確認できる。ここで特に重要なステップが、SNSの「購読確認」だ。デプロイ時に指定したメールアドレス宛にSNSから購読確認のメールが届くので、そのメール内のリンクをクリックして必ず承認する必要がある。この承認を行わないと、SNSはメッセージを配信しないため、せっかくニュースを生成してもメールが届かない事態になる。
これらの設定が完了すれば、あとはEventBridge Schedulerが設定されたスケジュール(例えば毎日午前9時)になると自動的にLambda関数を起動し、ニュース取得とメール送信が行われるのを待つだけだ。システムの動作状況は、AWS CloudWatch Logsの「Live Tail」機能を使ってリアルタイムで監視できる。ログで関数が正常に起動し、SNSを通じてメールが送信されたことが確認できれば、最終的に指定したメールアドレスの受信トレイにニュース要約メールが届いていることを確認する。
構築したシステムが不要になった場合は、無駄な料金が発生するのを避けるために、作成したAWSリソースを削除することが推奨される。AWS SAMを使ってデプロイされたリソースは、sam deleteコマンド一つで、スタック全体を簡単に削除できる。これにより、Lambda関数、EventBridge Scheduler、SNSトピック、関連するロググループやIAMロールといったすべてのリソースがまとめて削除されるため、手間なくクリーンアップが可能だ。
この解説で紹介したシステムは、AWS Lambda、EventBridge Scheduler、Amazon SNSという主要なサービスを連携させることで、NewsAPI.orgから取得した最新のニュースを毎日自動的にメールで配信するサーバレスなソリューションだ。手動でのニュースチェックの手間を省き、効率的に情報を収集するための強力なツールとなる。この基本システムは、今後さらに生成AIによる高度な要約機能の追加や、HTML形式でのリッチなメール配信など、さらなる機能拡張の基盤ともなり得る。