AWS LamdaでSeleniumを利用して毎月のAWSの請求書をS3にアップロード

システム概要

今回、AWSサービスを利用して毎月のAWSの請求書ファイルをS3にアップロードするというシステムを構築しました。

具体的なアーキテクチャは以下の通りです。

まず、EventBridgeを利用して、毎月特定日にLambdaを起動するよう設定します。

起動されたLambdaはSeleniumを利用してAWSマネジメントコンソールにログイン、当月の請求ページにアクセスを行い、ページのPDF化を行います。(AWS LambdaではPythonを利用)

PDF化を行った後は、そのファイルをS3にアップロードします。

本システムにより、毎月の請求書を自動的にS3に保管することができます。

その他の活用方法

今回はAWSの請求ページで動作するシステムを構築しましたが、似たようなシステム構成で他の事例に応用することができます。

例えば、以下のようなものが考えられます。

  • 毎月XXXというサイトにアクセスし、ページをPDF化したものをメールで送信する
  • 毎時YYYというサイトにアクセスし、取得したデータをSlackに通知する

AWSを活用すればオンプレでサーバーを管理する必要もなく、Lambdaであればサーバレスのためコストは実行時間分のみの課金になり経済的、かつ、想定以上のアクセスが続いた時にサーバが落ちる心配がありません。

Lambdaの利用料金

Lamdaはサーバレスのためコストは実行時間分で課金されるとは言え、やはり利用料金を気にする方は多いかと思います。

ここで、参考までに東京リージョンのLambda利用料を確認してみます。

今回作成したLambda関数のスペックは「メモリ512MB」になります。

また、実行時間については、Seleniumの起動に多少オーバーヘッドがありますが、30秒程度となります。

上記の表を確認すると、メモリ512GBの場合1ミリ秒あたりの料金は0.0000000083ドルのため、1秒では0.0000083ドルとなります。
これに30をかけ、1回の起動にかかる料金は0.000249ドル、日本円に換算すると約0.03円です。

本プログラムは月1でしか起動しないため、なんと月の利用料金は0円です。

如何にAWS Lambdaを利用するのが経済的かご理解頂けましたでしょうか。

月に数百回起動する必要がある内容でも、それを人手でやるよりは明らかにコストは低いと思います。

より詳細に計算したい方は、AWSが料金計算ページを用意していますので、こちらのリンクからご確認いただけます。

ご依頼について

NeeNetでは、AWSを活用したアプリケーションの作成のご相談もお受けしています。

「インフラの知識が無くて環境構築が難しい」という方でも、クラウドサービスを利用すれば比較的容易にサービスの構築ができますので、何かお悩みがございましたら一度ご相談いただければと思います。

ご相談や依頼は下記のお問い合わせページからご連絡下さい。

  • URLをコピーしました!