【AWS】サーバーレスで定期実行アプリを作ってみる

スポンサーリンク
【AWS】サーバーレスで定期実行アプリを作ってみるAWS
この記事を読んで分かること
  • スクリプトをサーバレス化する手順

 

概要

AWSのLambdaを使い、サーバレスで定期的にスクリプトを実行してみました。

元のスクリプトの内容は、引数をファイル名としてtxtファイルを保存するだけのものです。

サーバーレスで定期実行アプリ_スクリプトの概要

 

このスクリプトをAWSを使って、サーバレス化していきます。

 

AWSの構成

スクリプトをAWSのサービスレベルに分解して、以下の図のような構成にしました。

サーバーレスで定期実行アプリ_AWSの構成

 

今回はAWSの4種類のサービスを利用して実装しています。

利用したAWSサービス
  • Amazon EventBridge
  • AWS Step Functions
  • AWS Lambda
  • Amazon S3

 

Amazon EventBridge

定期的にプログラムを実行するためにAmazon EventBridgeを使用します。

EventBridgeの詳しい設定と手順はこちらの記事で説明しています。

【AWS】 Amazon EventBridgeの作成方法
この記事を読んで分かること Amazon EventBridgeの作成方法 今回は、Amazon EventBridgeを使ってStep Functionsの定期的な起動を設定していきます。 事前...

 

AWS Step Functions

Lambdaに引数を渡して、繰り返し実行するためにAWS Step Functionsを使用します。

もともとのプログラムではfor文を使って実装していたのですが、繰り返し部分の条件をStep Functionsに処理させることで、Lambdaの実行時間が長くなりすぎることを防いでいます。

Step Functionsの詳しい設定と手順はこちらの記事で説明しています。

【AWS】 Step Functionsの作成方法
この記事を読んで分かること  Step Functionsの作成方法 今回は、Step Functionsを使ってLambdaの呼び出し方のアルゴリズムを作成していきます。 事前準備 まず、Ste...

 

AWS Lambda

プログラムを実行するためにAWS Lambdaを使用します。

サーバレスなので当たり前ですが、Lambda単体ではデータの保存やプログラムを自動的に実行することはできません。

Lambdaの詳しい設定と手順はこちらの記事で説明しています。

【AWS】Lambdaの作成方法
この記事を読んで分かること AWS Lambdaの作成方法 事前準備 AWS Lambdaを動作させるための環境設定をしておきましょう。 大きく2つの作業が必要です。 Lambdaを...

 

Amazon S3

データを保存するためにAmazon S3を使用します。

ラムダにはストレージがないので、保存先を用意する必要があります。

S3の詳しい設定と手順はこちらの記事で説明しています。

【AWS】 S3バケットの作成方法
この記事を読んで分かること S3バケットの作成方法 今回は、データの保存先であるS3バケットを用意します。 AWS Lambdaで作成したデータを保管するためにも使うことができます。 S3バケ...

 

まとめ

AWSのLambdaを使い、サーバレスで定期的にスクリプトを実行してみました。

サーバレスでは、格納先のディスクや起動元のcronがないので、AWSサービスで連携する必要があります。

サーバのあるアプリケーションよりも開発時には手間がかかりますが、運用時には環境のことを気にする必要がなくなるので非常に管理が楽になります。

時代の流れもサーバレスになってきている?ので、身につけておきたいスキルであることは間違いありません。

コメント

タイトルとURLをコピーしました