SAM APIの圧縮設定の確認

圧縮に効果があるレスポンスに合わせて最小サイズを決めてください。

説明

AWS::Serverless::ApiのMinimumCompressionSizeはレスポンスの圧縮しきい値です。省略すると圧縮は無効になり、有効範囲は0から10485760バイトまでです。圧縮は暗号化でも必須のセキュリティ対策でもありません。

想定される影響

有効な圧縮を使わないと転送量や遅延が増える一方、小さなレスポンスの圧縮は処理コストを増やすことがあります。

対処方法

レスポンスに合う有効なしきい値を選び、デプロイ後にサイズと遅延を比較してください。クライアントが対応するAccept-Encodingを送ることも確認してください。

例

114は例示用のしきい値です。実際のロググループARNとサービスに適した圧縮しきい値を指定してください。

変更前

yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      TracingEnabled: true
      CacheClusterEnabled: true
      AccessLogSetting:
        DestinationArn: arn:aws:logs:us-east-1:123456789012:log-group:my-log-group
        Format: '{"requestId":"$context.requestId"}'

変更後

yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      TracingEnabled: true
      CacheClusterEnabled: true
      AccessLogSetting:
        DestinationArn: arn:aws:logs:us-east-1:123456789012:log-group:my-log-group
        Format: '{"requestId":"$context.requestId"}'
      MinimumCompressionSize: 114

参考資料