LoginSignup
1
0

More than 5 years have passed since last update.

AWSで作成したAPIのパフォーマンスを上げるケース・スタディ

Posted at

自分なりに試してみたパフォーマンスアップについて書いていきます。

はじめに(ご注意)

以下の内容は試す際に料金が発生します。(無料範囲で出来るものもありますが)

構成図

以下のようにAPI Gatewayで受けてLambdaでDynamoDBに書き込むor読み込むという構成で試しました。

Untitled Diagram.jpg

検証方法

ApacheBenchやJMeterを使って同時接続数とアクセス数を増大させて検証します。

ケース・スタディ

DynamoDBの書き込みに失敗する。

同時接続数や瞬間アクセス数が増大するとDynamoDBの書き込みに失敗するようになります。

対処法
・キャパシティサイズを上げる
・オートスケーリングを有効にする
・書き込み失敗時はSQSに投げておき、後でリトライできるようにする

※オートスケーリングを有効にしておいてもアクセス急増時に瞬時にスケールしてくれるわけではないので、
エラーはゼロにはなりません。ゆえにSQSでのフォローが必要となります。

500エラーになり、Lambdaのコードまで辿り着かない

確認するポイント
・スロットリングサイズ(API Gateway)
・APIキャッシュが有効かどうか(API Gateway)
・同時実行数を他のLambda関数で予約しており、残量僅かになっていないか(Lambda)

対処法
上記の不足している部分を上げる。優先度としては
Lambda同時実行数>スロットリングサイズ>APIキャッシュ
です。

構成図(修正後)

以下のようになりました。
SQSから取得しDynamoDBに書き込む箇所はCloudWatchの定期実行で行います。

Untitled Diagram (1).jpg

参考

1
0
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
1
0