AWS Lambdaファンクションを作成する手順【初心者向け】
生徒
「先生、AWS Lambda(エーダブリューエス ラムダ)のファンクションって、どうやって作成するんですか?」
先生
「AWS Lambdaファンクションは、クラウド上でコードを実行するための単位です。作成手順を理解すれば、誰でもサーバーレスアプリケーションを始められますよ。」
生徒
「なるほど!サーバーを意識せずにコードを動かせるんですね。でも初心者でもちゃんと作れますか?」
先生
「もちろんです。ステップごとに整理すれば難しくありません。それでは作成手順を一緒に見ていきましょう。」
1. AWS Lambdaとは?【初心者向けにわかりやすく解説】
AWS Lambda(エーダブリューエス ラムダ)は、Amazon Web Servicesが提供する「サーバーレス」という概念を代表する実行環境です。最大の特徴は、サーバーの構築やOSのアップデート、CPU・メモリ(主記憶装置)の管理といった面倒な作業をすべてAWS側にお任せできる点にあります。
Lambdaファンクションとは、この環境で動作する「処理の最小単位」です。例えば、「画像がアップロードされたらサイズを小さくする」「決まった時間にメールを送る」といった特定のタスクを、必要な時だけ自動で実行してくれます。
「注文が入った時だけ、どこからともなく現れて料理を作り、終わったら消える魔法の料理人」のようなものです。キッチン(サーバー)をずっと借りておく家賃(維持費)がかからず、料理を作った時間分だけ料金を支払えばよいため、非常に効率的です。
例えば、Python(パイソン)という初心者にも学びやすい言語を使った、最もシンプルなサンプルコードを見てみましょう。これは、呼び出されると「Hello from Lambda!」という挨拶を返すプログラムです。
import json
def lambda_handler(event, context):
# event:Lambdaに渡されるデータ(注文票のようなもの)
# context:実行環境の情報
# 画面やログに出力するメッセージ
message = "Hello from Lambda! 初めてのファンクション実行に成功しました。"
print(message)
# 実行結果を返す
return {
'statusCode': 200,
'body': json.dumps(message, ensure_ascii=False)
}
この数行のコードをLambdaに登録するだけで、世界中のどこからでも動かせるアプリケーションの「脳」が完成します。専門的なインフラ知識がなくても、コードさえ書ければすぐにサービスを公開できるのがLambdaの魅力です。
2. Lambdaファンクション作成の基本フロー
Lambdaファンクションを作成する流れは次のとおりです。
- Lambdaコンソールにアクセス
- 「関数の作成」を選択
- 関数名やランタイム(PythonやNode.jsなど)を指定
- IAM(アイエーエム)ロールを設定して権限を付与
- コードを入力またはアップロード
- トリガーを設定してイベント駆動を有効化
- テスト実行をして動作確認
この手順を覚えれば、初心者でも迷わずファンクションを作れるようになります。
3. ステップ1:Lambdaコンソールにアクセス
AWSマネジメントコンソールにログインし、検索バーから「Lambda」と入力してサービスページを開きます。ここがLambdaファンクションの管理画面です。
コンソールは直感的に操作できる画面設計になっているので、初心者でも安心して利用できます。
4. ステップ2:関数の作成
「関数の作成」ボタンをクリックすると、新しいファンクションを作成する画面が表示されます。ここで以下の設定を行います。
- 関数名:わかりやすい名前をつけましょう。
- ランタイム:使用するプログラミング言語を選びます。Python(パイソン)、Node.js(ノードジェイエス)、Java(ジャバ)などがあります。
- 権限設定:IAMロールを新規作成または既存ロールを利用します。
5. ステップ3:コードの登録
Lambdaファンクションのコードは、次の方法で登録できます。
- ブラウザ内エディタで直接入力する
- ZIPファイルをアップロードする
- S3バケットから読み込む
初心者のうちは、コンソールのエディタを使って簡単なコードを試すのがおすすめです。
6. ステップ4:トリガーの設定
Lambdaファンクションは「イベント駆動」で動きます。トリガーを設定することで、特定の操作をきっかけにコードを実行できます。
代表的なトリガーには次のようなものがあります。
- S3にファイルがアップロードされたとき
- API Gateway(エーピーアイゲートウェイ)からリクエストが来たとき
- CloudWatch(クラウドウォッチ)でスケジュールが発火したとき
7. ステップ5:テストとデバッグ
コードを保存したら、テストイベントを作成して実行してみましょう。正常に動けば設定完了です。もしエラーが出た場合は、ログを確認して修正します。
ログはCloudWatchに保存されるので、詳細なエラーメッセージを確認できます。
8. 歴史的背景とLambdaの普及
AWS Lambdaは2014年に登場したサービスで、サーバーレスアーキテクチャの先駆けとして注目されました。それまで開発者はサーバー管理に時間を割いていましたが、Lambdaの登場で「イベントに応じてコードを自動実行する」という新しい開発スタイルが広まりました。
現在では、API処理、IoTデバイスのバックエンド、バッチ処理など幅広い用途で利用されています。
まとめ
ここまで、AWS Lambda(アマゾン ウェブ サービス ラムダ)の基本的な概念から、具体的なファンクション(関数)の作成手順までを詳しく解説してきました。サーバーレス開発の登竜門とも言えるLambdaは、インフラの管理から解放され、純粋に「プログラムを書くこと」に集中できる非常に強力なサービスです。初心者の方でも、マネジメントコンソールから直感的に操作できるため、クラウドネイティブな開発スタイルを身につける第一歩として最適です。
AWS Lambdaを使いこなすための重要ポイント
Lambdaファンクションの構築において、特に意識しておきたいのは「イベント駆動(Event-Driven)」という考え方です。Lambdaは常に動き続けているわけではなく、何らかの「きっかけ(トリガー)」があって初めて起動します。この仕組みにより、実行された時間分だけ料金が発生する従量課金制が実現されており、コストパフォーマンスの面でも非常に優れています。
また、開発の現場では、コンソール上のエディタだけでなく、ローカル環境で作成したコードをデプロイすることも一般的です。例えば、Pythonを使用して外部ライブラリを含むプログラムを動かす場合は、ライブラリを含めたパッケージを作成してアップロードする必要があります。
実践的なサンプルコード:PythonによるHello World
実際にLambdaでよく使われるPythonの基本的なハンドラーの構造を確認してみましょう。以下のコードは、API Gatewayなどのトリガーからデータを受け取り、レスポンスを返す標準的な構成です。
import json
def lambda_handler(event, context):
# eventオブジェクトからデータを取得
print("Received event: " + json.dumps(event, indent=2))
# メッセージの作成
message = "AWS Lambdaの世界へようこそ!"
# レスポンスの構築
return {
'statusCode': 200,
'body': json.dumps({
'message': message,
'input_event': event
}, ensure_ascii=False)
}
この「lambda_handler」という関数名が、Lambdaの設定における「ハンドラ」として指定されるエントリーポイント(プログラムの入り口)になります。引数の「event」には呼び出し元からのデータが入っており、「context」には実行環境の情報が含まれています。
IAMロールと権限管理の重要性
Lambdaを作成する際、初心者が最も躓きやすいのが「IAM(アイエーエム)ロール」の設定です。LambdaファンクションがS3にファイルを保存したり、DynamoDB(ダイナモディービー)にデータを書き込んだりするためには、適切な「許可(ポリシー)」が必要です。
デフォルトで作成される「基本的なLambda実行権限」には、CloudWatch Logsへのログ出力権限が含まれています。これにより、トラブルが発生した際に以下のコマンドのようなログ確認作業が可能になります。
ログ確認のイメージ(AWS CLIを利用した場合)
開発が進むと、コンソール画面だけでなくコマンドラインインターフェース(CLI)からも動作を確認する機会が増えます。
aws logs tail /aws/lambda/MyFirstFunction --follow
2026-01-29T14:00:00Z [INFO] Received event: { "key": "value" }
2026-01-29T14:00:05Z [REPORT] Duration: 12.45 ms Billed Duration: 13 ms Memory Size: 128 MB Max Memory Used: 64 MB
このように、リアルタイムでログを追跡することで、デバッグの効率が格段に上がります。
今後の学習に向けて
Lambdaの基本を理解したら、次は「環境変数」の設定や「タイムアウト時間」の調整、さらには「Lambdaレイヤー」を活用した共通ライブラリの管理など、より高度な設定に挑戦してみましょう。サーバーレスの世界は非常に奥が深く、一度マスターすればスケーラブルで堅牢なシステムを短期間で構築できるようになります。
まずは小さな関数を作り、実際に動かしてみること。その積み重ねが、クラウドエンジニアとしてのスキルアップに繋がります。この記事があなたのAWS学習の助けになれば幸いです。
生徒
「先生、まとめまで読んでみて、Lambdaの全体像がかなりはっきりしてきました!最初は『サーバーがない』っていうのが不思議でしたが、管理を全部AWSに任せられるっていう意味だったんですね。」
先生
「その通りです。物理的なサーバーのパッチ当てやOSの更新といった面倒な作業を考えなくていいのが、サーバーレス最大のメリットですよ。サンプルコードを見て、何か気づいたことはありますか?」
生徒
「はい!『lambda_handler』という関数が全ての起点になっているんですね。引数のeventに色々な情報が入ってくるというのも、イベント駆動という言葉の意味と繋がって納得できました。あと、ログをCloudWatchで見るのも大事なステップなんですね。」
先生
「素晴らしい洞察です。プログラムが動かないときは、必ずログに答えが書いてあります。コマンドラインでログを追う方法は、実際の現場でもよく使われるテクニックですよ。ちなみに、次に作ってみたい機能はありますか?」
生徒
「そうですね、例えばS3に画像をアップロードしたら、自動でリサイズして別のバケットに保存するような仕組みを作ってみたいです!」
先生
「それは最高の実践演習になりますね!S3のイベントをトリガーにして、画像処理ライブラリをLambdaレイヤーで読み込ませれば実現可能です。権限設定(IAM)に注意しながら、ぜひチャレンジしてみてください。」
生徒
「ありがとうございます!IAMロールで『何ができるか』をしっかり定義するのがコツですね。まずは簡単なHello Worldから始めて、少しずつ機能を拡張してみます!」