- スクリプトをサーバレス化する手順
概要
AWSのLambdaを使い、サーバレスで定期的にスクリプトを実行してみました。
元のスクリプトの内容は、引数をファイル名としてtxtファイルを保存するだけのものです。
このスクリプトをAWSを使って、サーバレス化していきます。
AWSの構成
スクリプトをAWSのサービスレベルに分解して、以下の図のような構成にしました。
今回はAWSの4種類のサービスを利用して実装しています。
Amazon EventBridge
定期的にプログラムを実行するためにAmazon EventBridgeを使用します。
EventBridgeの詳しい設定と手順はこちらの記事で説明しています。

AWS Step Functions
Lambdaに引数を渡して、繰り返し実行するためにAWS Step Functionsを使用します。
もともとのプログラムではfor文を使って実装していたのですが、繰り返し部分の条件をStep Functionsに処理させることで、Lambdaの実行時間が長くなりすぎることを防いでいます。
Step Functionsの詳しい設定と手順はこちらの記事で説明しています。

AWS Lambda
プログラムを実行するためにAWS Lambdaを使用します。
サーバレスなので当たり前ですが、Lambda単体ではデータの保存やプログラムを自動的に実行することはできません。
Lambdaの詳しい設定と手順はこちらの記事で説明しています。

Amazon S3
データを保存するためにAmazon S3を使用します。
ラムダにはストレージがないので、保存先を用意する必要があります。
S3の詳しい設定と手順はこちらの記事で説明しています。

まとめ
AWSのLambdaを使い、サーバレスで定期的にスクリプトを実行してみました。
サーバレスでは、格納先のディスクや起動元のcronがないので、AWSサービスで連携する必要があります。
サーバのあるアプリケーションよりも開発時には手間がかかりますが、運用時には環境のことを気にする必要がなくなるので非常に管理が楽になります。
時代の流れもサーバレスになってきている?ので、身につけておきたいスキルであることは間違いありません。
コメント