亀のコツコツクラウドインフラ

2024年12月23日 (最終更新日:2024年12月24日)

【初心者向け】Lambdaを使ってみよう!AWSでサーバーレス環境を構築する方法

はじめに

LambdaはAWSを使用するなら必ず知っておいた方がいいサービスです。

以下のような方におすすめの内容です

  • サーバーレスについて学びたい
  • 初めてAWS Lambdaを設定する
  • 簡単なアプリケーションを試しに構築してみたい

この記事では、AWS Lambdaを初めて使う方向けに、その概要から設定方法、具体的なユースケースまでをわかりやすく解説します。

Lambdaの設定方法

AWS Lambdaの設定は、以下の手順で進めることができます。

  1. Lambda関数の作成
  2. コードの記述
  3. トリガーの設定
  4. デプロイとテスト

「Lambda」サービスを開きます。「関数を作成」ボタンをクリックし、以下を設定します。

関数名: 任意の名前を入力(例: KameTestLambda)。
ランタイム: 利用するプログラミング言語を選択(例: PythonやNode.js)。
実行ロール: AWS IAMロールを作成または選択(Lambdaが必要な権限を持つように設定)。

IAMロールの設定方法は以下を参考にしてください。

AWS IAMロールとは?初心者向けの説明と設定手順をご紹介!

今回はIAMロールの設定で「AmazonS3FullAccess」と「CloudWatchLogsFullAccess」を設定します。

関数やランタイム・作成したロールを設定していきます。

関数コードをエディタに入力します。例えば、以下はPythonを使った簡単な「Hello World」コードです。

def lambda_handler(event, context):
    print("Hello, World!")
    return {
        'statusCode': 200,
        'body': 'Hello, World!'
    }

タイムアウトは必要に応じて設定しましょう。今回は3秒のままで大丈夫です。

Lambda検証用のS3を作成します。
S3バケットの作成方法は以下を参考にしてください。

【AWS】S3で静的サイトを公開する方法!初心者向けの設定手順

Lambda関数を起動するトリガーを設定します。
例えば、S3にファイルがアップロードされたときに実行する場合は、S3イベントをトリガーに設定します。バケットには作成したバケットを設定します。

再帰呼び出しはS3への作成イベントを実行しなければOKですが、「S3にアップロード→Lambda→S3にオブジェクト作成→Lambda→・・・」と連続で呼び出されるとコストが上がるので注意してください。

設定を保存して関数をデプロイします。その後、対象のS3バケットにアップロードしてみましょう。

CloudWatch Logsでログが出力されたらOKです。

デプロイの下にテストという項目があると思うので、テストをクリックするとLambda関数が一度実行されます。
一度コードを書き終わったら「Test」をクリックしましょう。

Lambdaとは

AWS Lambdaは、サーバーを管理することなくコードを実行できるサービスです。

トリガーイベントが発生すると自動的に関数が実行され、必要な計算リソースはAWSがすべて管理します。

以下のような特徴があります。

  • サーバー不要:インフラ管理の手間を削減。
  • 自動スケーリング:負荷に応じて自動で処理能力を拡張。
  • コスト効率:リクエスト数や実行時間に応じた課金。

Lambdaのユースケース

Lambdaは、さまざまな場面で役立つ柔軟なサービスです。以下はその一例です

定期処理の自動化

CloudWatch Eventsと組み合わせて、毎日決まった時間にレポート生成やデータ集計を自動化。

リアルタイムなデータ処理

IoTセンサーからのデータや、ログファイルをリアルタイムで解析・処理。

APIバックエンド

API Gatewayと連携し、スケーラブルなバックエンドAPIを構築。

イベントドリブンな処理

S3へのファイルアップロードをトリガーに画像変換やデータ処理を実行。

まとめ

Lambdaは手軽にサーバーレスを始められる便利なサービスです。

幅広い用途があるので、応用できるように使いこなせるようにしましょう。

この記事を参考に、Lambdaを一度使用してみてください!

この記事を書いた人

コツコツ亀

コツコツ亀

Webエンジニアとして活動中
AWSを使用してWebアプリケーションを作ったり、サーバーを構築したりしています。

関連記事

新着記事