Amazon API Gateway
APIの作成、アプリケーションの通信の窓口。
いわゆるエンドポイントを作成する。
AWSのマネジメントコンソールから作成する。実処理は書かない。
認証機能も搭載、環境を分けてデプロイ、スケーリングしてくれる。
AWS Lambda
コードの実行をおこなうサービス。
Lambda関数と呼ばれる関数を作成して、処理を書く。
AWSのマネジメントコンソールで直接書くこともできるが、基本的にはコードをアップロードする。
処理さえ書けばよくて、サーバ管理、スケーリング、ログ記録1もやってくれる。
上の2つを組み合わせると何ができるの?
APIが5分で作れる。
フレームワーク探してー、APIアプリケーション探してー、EC2にデプロイしてー、
スケーリング考えてーとか一切いらない。
アプリ開発者で、サーバ側全然わかんないけどAPIとか作りたいんだよ!っていう人に向いている。
お高いんでしょ?
安心してください。従量課金です。
なんでみんな使わないの??
俺が聞きたい。
けど、以下のような理由なんじゃないかな。
- 比較的新しいサービスで、まだ導入実績が少ない
- 大規模アクセスがあり、性能にシビアなシステムには向いていない。2
2017/03/14 実際に使用して気付いたことを加筆
3. API Gatewayのタイムアウトは30秒固定で変更できない。よって、処理に時間のかかるLambda(バッチ)をキックするとかには向いていない。
そういうLambdaは、AWS CLIから呼び出す。(か、後にAWS Batch から呼べるようになるはず)
4. AWS Lambdaを動作させられる最大時間は5分。5分過ぎると処理が中断する。これを考慮して作成するのが中々大変。