Open3
APIGatewayあれこれ
CloudWatch連携

CloudWatch ログ

- 選択し
- オフ
- デフォルト
- エラーのみ
- ERRORレベルのログのみロギング有効化
- エラーと情報ログ
- ERRORレベルのログのみロギング有効化(すべてのイベントのロギングが有効)
- リクエストとレスポンスの全ログ
- API のトラブルシューティングには役立つが、機密データがログに記録される可能性がある
- オフ
- アクセスおよびデバッグログには、標準の CloudWatch 料金が課金される
- 設定は自由に切り替え可能(有効化後に無効化できる)
CloudWatchメトリクス
基本的なCloudWatchメトリクス(標準メトリクス)
- デフォルトで有効
- API名、ステージ名、全体
詳細なCloudWatchメトリクス(カスタムメトリクス)

- デフォルトで無効
- API コール、レイテンシー、統合のレイテンシー、400 エラー、500 エラー
- メトリクスには、標準の CloudWatch 料金が課金される
- 設定は自由に切り替え可能(有効化後に無効化できる)
料金
- 有効なメトリクス数
- カスタムメトリクスを有効化すると、自動的に5つのメトリクス収集が行われる(1つにはできない?)
- APIリクエスト数
- メトリクスダッシュボード数
- ログのストレージ利用量
- アラーム数
最小の利用料

Config Summary
Number of Metrics (includes detailed and custom metrics) (5), GetMetricData: Number of metrics requested (43200), GetMetricWidgetImage: Number of metrics requested (), Number of other API requests (), Number of Dashboards (1), Number of Standard Resolution Alarm Metrics (1), Standard Logs: Data Ingested (1 GB)
カスタムアクセスのログ記録

- デフォルトで無効
- 設定後に切り替え可能?
- ログを受信するには、CloudWatch グループ ARN または Kinesis Firehose データストリーム ARN を入力が必要
- アクセスログ形式には $context.requestId または $context.extendedRequestId のいずれかを含める必要がある
X-Ray トレース

- デフォルトで無効
- 設定後に切り替え可能?
- X-Ray トレースを有効にすると、API Gateway により、「xray:PutTraceSegments」、「xray:PutTelemetryRecords」アクセス権限を持つ IAM ロールが作成される
- 標準の X-Ray 料金が適用される
CloudFrontからのアクセスに制限する(Resource Policy)
概要
- APIGatewayのアクセス元をCloudFrontに制限したい。
- CloudFrontでReferer keyを設定し、APIGatewayのResource PolicyでReferer keyを参照するよう設定する。
Cfnテンプレート
APIGateway (AWS SAM)
Auth:
ResourcePolicy:
CustomStatements: [{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/Prod/GET/pets",
"Condition": {
"StringEquals": {
"aws:Referer": !Ref {RefereKey}
}
}
}]
参考