66
49

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS Lambda:API GatewayとApplication Load Balancerの違い

Last updated at Posted at 2019-08-07

AWS Lambdaを使ってサーバーレスでWeb APIを作る場合、Lambdaの呼び出し元としてAPI Gateway (API GW) もしくはApplication Load Balancer (ALB) のどちらかを選択することになる。この選択基準となる両者の違いを整理した。

API Gateway特有の機能

プロトコル・ポート番号

  • API GWは443番でのHTTPS (TLS 1.2) のみをサポートする。(VPC Endpoint経由での呼び出しはできるが、この場合でもHTTPSのみとなる。)
  • ALBは任意のポート番号でのHTTP/HTTPS(TLSバージョンも選択肢がある)をサポートする。

実行可能時間(タイムアウト時間)

リクエスト・レスポンスサイズ

Request Event(参考

  • evt.headers (Request)
    • API GWでは大文字小文字を区別した状態で設定するが、ALBではヘッダ名は小文字化された状態で設定する。
  • evt.queryStringParameters (Request)
    • クエリストリングが指定されない場合、API GWは null を設定するが、ALBは {} を設定する。
    • クエリストリングのキー・バリューについて、API GatewayはURLデコードされた状態で設定するが、ALBはデコード前の状態で設定する。
  • evt.multiValueHeaders / evt.multiValueQueryStringParameters (Request)
    • API GWではデフォルトで設定されるが、ALBでは設定で有効化する必要がある。

Response Event(参考

  • ALBではstatusDescription、isBase64Encoded、headers(Multi Value Headerを有効化している場合はmultiValueHeder)の指定が必須となる。

コスト

  • 一定のリクエスト頻度までであれば、時間課金があるALBよりも実行回数による課金であるAPI GWの方が安いが、大量のリクエストを受ける場合はALBの方が安くなる。(参考

参考

66
49
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
49

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?