AWS Lambdaで始めるサーバーレス設計入門|インフラ管理ゼロの自動化基盤

現場実践|サーバーレスアーキテクチャ
AWS Lambdaで始めるサーバーレス設計入門|インフラ管理ゼロの自動化基盤
「EC2を立てずに処理を自動化したい」——AWS Lambdaの仕組み・イベントトリガーの種類・コスト計算・設計パターンまでインフラエンジニア向けにサーバーレスを解説します。
💡 AWS Lambdaはサーバー管理不要・実行した時間だけ課金のサーバーレス実行環境。インフラ自動化・定期バックアップ・CloudWatchアラームの処理に最適です。
1. AWS Lambdaとは
まず、AWS Lambdaはコードをアップロードするだけでサーバーの管理なしに実行できるサーバーレスコンピューティングサービスです。イベント(APIリクエスト・S3アップロード・スケジュール等)をトリガーに実行され、実際に実行された時間・回数に応じた従量課金です。月100万リクエストまでは無料枠があります。
2. 代表的なイベントトリガー
EventBridge(スケジュール)
Cron式でLambdaを定期実行。EC2の夜間停止・日次バックアップ・定期レポート生成に使う。
SNS / CloudWatchアラーム
アラーム発火時にLambdaでSlack通知・自動リカバリ処理を実行する構成の定番。
S3イベント
S3にファイルがアップロードされたときに自動でサムネイル生成・データ変換・通知を実行する。
API Gateway
HTTPリクエストをLambdaに転送するAPIエンドポイントを作成。サーバーレスWebAPIの定番構成。
3. インフラ自動化のサンプル(EC2夜間停止)
import boto3
def lambda_handler(event, context):
ec2 = boto3.client("ec2", region_name="ap-northeast-1")
# タグ Name=dev-server のEC2を停止
response = ec2.describe_instances(
Filters=[{"Name": "tag:Env", "Values": ["dev"]},
{"Name": "instance-state-name", "Values": ["running"]}]
)
instance_ids = [
i["InstanceId"]
for r in response["Reservations"]
for i in r["Instances"]
]
if instance_ids:
ec2.stop_instances(InstanceIds=instance_ids)
print(f"Stopped: {instance_ids}")
return {"stopped": instance_ids}4. Lambdaの設計のポイント
- タイムアウトを適切に設定:デフォルト3秒・最大15分。処理時間の余裕を持ったタイムアウトを設定する
- 環境変数で設定値を管理:リージョン名・バケット名等の設定値はコードではなく環境変数に持つ
- IAMロールは最小権限で:LambdaのIAMロールには必要なリソースへのアクセスのみ許可する
- CloudWatch Logsでログを確認:Lambdaの実行ログは自動でCloudWatch Logsに記録される。print()の出力が確認できる
📌 この記事のポイント
- AWS Lambdaはサーバー管理不要・従量課金のサーバーレス実行環境
- EventBridge+Lambdaで定期自動化、SNS+Lambdaでアラーム対応自動化が定番パターン
- LambdaのIAMロールは最小権限で設定しCloudWatch Logsでログを確認する
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




