【速報】料金 / 開発コストを大幅削減!Amazon API Gatewayの新しい料金モデル「HTTP API」が発表されました! #reinvent

2019.12.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

よりシンプルに、お安く使える新プラン「HTTP API」

Amazon API Gatewayの新しい料金モデル、その名も「HTTP API」が発表されました。現在プレビューとして、US East (Ohio), US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Sydney), Asia Pacific (Tokyo), EU (Frankfurt), EU (Ireland)で提供されています。

HTTP APIとは

Amazon API Gatewayはこれまで REST API または WebSocket API という形で提供されてきました。色々なユースケースで使える非常に便利なサービスでしたが、課題もありました。

  • もっと多くの機能が欲しい
  • より低いレイテンシで使いたい
  • より安いコストで使いたい

HTTP APIはこれらの要求を叶えるべく生まれた新しいプランになります。

HTTP APIの機能

どのような機能を持っているか、ざざっと見ていきましょう。

低コスト!

まず特徴的なのが低コストであるというところです。

  • はじめの3億リクエストまでは100万リクエストにつき$1
  • 3億以降のリクエストは100万リクエストにつき$0.9

これは多くのお客様にとって、平均70%のコスト削減 という計算になるそうです。

JWT Authorizer (OpenID Connect) をサポート!

API Gatewayに認証/認可の機能を持たせたい場合、これまではLambda AuthorizerまたはCognito User Pools Authorizerのいずれかが利用可能でした。

HTTP APIは JWT Authorizer (OpenID Connect) をサポートしています。つまり標準で、OpenID ConnectのJWTの仕様に準拠した認証システムとインテグレーションできます。これまではLambda Authorizerでコードを書かなければいけませんでしたが、その必要がなくなりました。

デフォルトStage & 自動デプロイ

APIに変更を加えた際にE2Eで動作確認をしたい場合は都度Stageにデプロイする必要がありましたが、HTTP APIでは変更内容が自動反映されるデフォルトStage $default が用意されます。特にAPIを作り始めの際に、面倒な作業が減ることになります。

CORS設定のカスタマイズ

CORS設定も面倒な作業の一つでしたが、API単位ではなく全体で1つの設定で対応できるようになりました。それぞれのレスポンスヘッダーにどのような値を乗せるか(例えば Access-Control-Allow-Origin に設定するOriginのホワイトリストなど)の設定が劇的に簡単になります。

API作成のシンプル化

SAMでは新たに AWS::ApigatewayV2 がサポートされるようになりました。以下のような形でシンプルに記述できるようになっています。

Resources:
  HttpApi:
    Type: AWS::ApiGatewayV2::Api
    Properties:
      Name: Lambda Proxy
      Description: Lambda Proxy using Quick Create
      ProtocolType: HTTP
      Target: arn:aws:lambda:us-west-1:[your acct number here]:function:Echo

CLIでは以下のようなコマンドになります。

$ aws apigatewayv2 create-api \
  —name MyAPIname \
  —protocol-type HTTP \
  --target arn:aws:lambda:us-west-1:[your acct number here]:function:Echo

ポイントは デフォルトの Route & Stage が自動作成される という点です。どのリソースにおいても必ず必要な設定は不要になるということです。

また、APIの設定をインポートできる機能も用意されています。

$ aws apigatewayv2 import-api —body file://api-definition.json

開発者の体験が劇的に改善されます!

コスト削減、そして開発者がより簡単に/よりシンプルに扱えるような機能にフォーカスした、素晴らしいアップデートでした。開発者の体験の向上は、開発コストの削減にも繋がり結果としてビジネススピード向上の要となります。以下に開発者向けドキュメントが公開されていますので、まずはプレビューで使い倒しつつ、正式公開されたら速攻で適用できるウォームアップをしておきましょう!