「AWS Lambda」と「AWS API Gateway」について解説します。
どちらもAWSでよく使われるサービスですが、中身は全く異なります。
Lambda はプログラム実行、API Gateway はリバースプロキシの役割を持っています。
AWS Lambda はプログラムの実行場所
AWS Lambda(ラムダ)は、プログラムを実行できる環境です。
自分で用意したプログラムを Lambda に登録して実行することができます。
サーバーはAWSが用意してくれるため、準備する必要がありません。
サーバー構築・運用の手間が不要で、プログラム開発に専念できるのがメリットです。
利用者がサーバーを意識せずに済むため、「サーバーレス」とも呼ばれます。
ステート(状態)を保持できないため、イベントを契機とした単発処理と相性が良いです。
特に次のような場面で AWS Lambda が活用されています。
- 画像がアップロードされたらサイズを変換する
- ログが増えたら圧縮して S3 に格納する
API Gateway はリバースプロキシの役割
API Gateway は、一言で表すと「リバースプロキシサーバー」です。
Lambda を外部から呼びたい、URLを付与したい場合に利用するサービスです。
Lambda そのものには HTTP を待ち受ける機能がありません。
API Gateway と組み合わせると、インターネット側から Lambda の起動が可能となります。
その他、リクエストを一部加工して他の API へ転送したり、
特定の IP からの接続のみを受け付けたり、といったアクセス制御も可能です。
API Gateway も、AWS がサーバーを管理してくれます。
呼び出した回数に応じて料金が発生しますが、100万回で $4.25 と安価です。
AWS Lambda と API Gateway の活用場面
「Lambda はプログラム実行環境」、「API Gateway はリバースプロキシ」でした。
それぞれの活用場面について考えてみます。
AWS Lambda の活用場面
AWS Lambda は、単発の小規模なバッチに最適です。
実行時間による課金のため、サーバーを起動し続けるよりも安価となります。
しかし、実行時間や利用できるリソースに限りがあるため、大きな処理には向きません。
API Gateway の活用場面
インターネット上にエンドポイント(接続窓口)を作成したい場合に便利です。
バックエンドサーバーへの接続点として利用することが主な用途です。
リクエストの加工・API 同士のつなぎ込みには、API Gateway が最適です。
まとめ
AWS のサービス「AWS Lambda」「Amazon API Gateway」を解説しました。
いずれもサーバーレスで利用できるようになっています。
ちょっとした処理を動かしたい、といった場面で役に立ちます。
料金も安価なため、システムにうまく組み込んでコストと運用負荷の低減に繋げましょう。
【関連記事】
⇒ AWS Lambda の VPC モードを解説
⇒ Fargate、ECS、EKS の違いを解説
⇒ AWS でサーバーレス構成を実現する
⇒ AWS用語の解説(コンピューティング編)
⇒ AWS用語の解説(データベース編)
⇒ AWS用語の解説(ネットワーク編)
⇒ AWS用語の解説(ストレージ編)