Gatewayのパフォーマンスに関する仕組みと設定をご紹介します。Gateway自身がボトルネックになるようなアーキテクチャは望ましくありません。GatewayのベースアーキテクチャとしてCloudFrontのスケーラビリティが得られる、と考えて良さそうです。CloudFrontは、世界数十カ所のエッジロケーションと呼ばれるデータセンターで提供され、DNSレイテンシーレコードによりクライアントの最寄りのエッジロケーションに自動で接続されるようになっています。Gatewayの場合はどうでしょうか。Gatewayで以下のようにカリフォルニアのエッジロケーションのDNSレコードが返ってきます。Europeに設定する場合と同じだったりします(日本からの最寄りのエッジロケーションが、恐らく太平洋ケーブルを介したカリフォルニアなのでしょう)。GatewayのAPIを作成するリージョンは、パフォーマンスの面ではあまり大きな影響はないかもしれません。Classの区分にあわせてアジア3リージョンに同時展開されるのではないでしょうか。Gatewayを利用するのは厳しいかもしれません。Gatewayのオリジン)が日本だとさらに太平洋を往復することにもなります。GatewayにVPC関連の設定は一切見当たりません。Connectで接続する社内向けAPIにも活用できそうなので、その辺りは今後のアップデートに期待しましょう。Gatewayのパフォーマンスオプションの一つとして、APIキャッシュが利用できます。Gatewayでキャッシュし、2回目以降の同じリクエストに対してキャッシュをクライアントに返送する仕組みです。キャッシュ設定は、キャッシュ容量とTTL(キャッシュ期限)の2つがあります。キャッシュ容量に応じて課金が発生することと、TTLは先にキャッシュ容量を設定、反映させて初めて設定画面が出るようになることに注意しましょう。キャッシュ容量の設定画面Stageの設定画面の[Settings]タブにあります。Changes]ボタンで決定します。status]がAVAILABLEになったらOKです。TTLは、Stageのツリーを展開してMethodをクリックしたメソッドの設定画面の[Cache]タブにあります。既定で300秒(5分)です。キャッシュが効いているかどうかは、CloudWatchメトリクスで確認します。GatewayのCloudWatchメトリクスは既定で無効なのでStageの設定画面の[Settings]タブで有効化しましょう。GatewayのメトリクスはカスタムメトリクスのApiGatewayネームスペース(最近Backplaneネームスペースから変更されました)として確認できます。こんな感じで、CacheHitCountとCacheMissCountでヒット率を比較します。URLにリクエストを送ったのでCacheMissCountが5分間隔で1、その他は全てCacheHitCountとしっかりキャッシュが効いていることが見て取れました。cloudfrontになるため判別手段としては利用できません。スロットリングもう一つのパフォーマンスオプションとしてスロットリングがあります。*3を制限する機能です。Limit)」と「レート(Rate)」の2つの設定を組み合わせます。ドキュメントには既定でどちらも1RPSが設定されるとあるのですが、実際に試すともう少しアクセスが許容されるので定かではないです。Requests、レスポンスボディのmessageはnullになります。Settings]にあります。GatewayのSSL/TLSハンドシェイクがTLSv1.2を強要するようで、軒並みハンドシェイクに失敗しエラーになってしまいました。フォーラムでも報告があります。これらのツールで上手くアクセスできるオプションを知っている方がいれば教えてください!で、今回はcurlを連続実行するシェルスクリプトを組んで試してみました。1))done今回はバースト上限が10なので、多めの100アクセスでどうなるかの実験です。"null"}が返ってくる感じで、制限がかかっている様子がわかります。1を挟んでリクエスト間隔を調整すると制限の特性が見えてくると思います。今回は前述のキャッシュ設定と組み合わせてスロットリングを試してみました。様子としては先にスロットリングの制限がかかって、許可されるとキャッシュ有無が判定されるロジックのようです。本来、スロットリングはキャッシュ元を保護するための仕組みだと思うので、判定順が逆でもいいのかなぁと思ったりしました。Functionの場合リクエストのタイミングで毎回Lambdaの起動がキックされるため、負荷テストの計測が難しい場合もあると思います。いったときには今回のキャッシュ設定を有効にすると良いでしょう(さっきと言っていることがずれてますがw)。Gatewayのロケーションの分析とパフォーマンスに関する2つのオプションをご紹介しました。Gatewayの目的の一つであるAPIの安定運用に役立つオプションであることがご理解いただけたのではないでしょうか。4,302,309ゲストブロガーです。株式会社ソラコムでソリューションアーキテクトやってます。クラウドの自動化やIoT周りについての記事を書きます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。EC2)環境において、不要な踏み台サーバをなくすことができる便利なアップデートです。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介252SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。