質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Amazon DynamoDB

Amazon DynamoDBは、 AWS上のNoSQLデータベースサービスです。フルマネージド型のサービスで、スキーマレス、高速且つ安定性のある動作、自動的に容量を変更する自動スケーリングなどの特徴を持ちます。

Datadog

Datadogは、インフラの運用監視ができるクラウドサービス。サーバなどのモニタリング機能をSaaS形式で利用することができ、ホスト監視に限らずアプリ監視に用いることも可能です。シンプルで使いやすい点が特徴です。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

3回答

1743閲覧

Webサービスのパフォーマンスを上げる方法について(DataDog、サーバーレス(AWS Lambda))

KoukoMatsumoto

総合スコア41

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Amazon DynamoDB

Amazon DynamoDBは、 AWS上のNoSQLデータベースサービスです。フルマネージド型のサービスで、スキーマレス、高速且つ安定性のある動作、自動的に容量を変更する自動スケーリングなどの特徴を持ちます。

Datadog

Datadogは、インフラの運用監視ができるクラウドサービス。サーバなどのモニタリング機能をSaaS形式で利用することができ、ホスト監視に限らずアプリ監視に用いることも可能です。シンプルで使いやすい点が特徴です。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/07/06 12:44

AWS Lambdaを使ったサーバーレスのWebサービスで、フロント側はReactで実装しています。
DataDogが使えるため、メトリクスやトレースの収集を行っております。
本当に申し訳ございませんが、「パフォーマンスを上げる」という方法が全くわかりません。何から調べて良いのかもわからない状態で・・・
たくさんのエンドポイントがあり、一つずつ見ることなどもできず、何を持ってパフォーマンスが悪いというのかすらわからない状態です。
正直、何から手をつけていけば良いのでしょうか。
サービスそのものを変えることは厳しいため、今の環境のままパフォーマンスを上げることに繋がる改善提案を作っていければ良いのですが、どこがボトルネックなのか、DataDogの膨大な情報を見てもわからなくて、何をしたら良いのかも見えず、困っています。
このような質問で申し訳ございません。何からやれば良いか、という具体的な道筋があればお教えいただけるとありがたいです。ヒントだけでも構いません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

AWS Lambdaなのであれば、AWS X-Rayを有効化することで簡便に遅くなってるであろう箇所の特定につながる可能性があります。棒グラフが長いところを短くすることで、ユーザ体験時間の削減とそもそものAWS Lambdaの費用削減ができます。

チェックボックスをチェックするだけですのでお試しください。

投稿2020/08/07 14:02

photographed

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoukoMatsumoto

2020/08/08 02:48

ありがとうございます。AWS LambdaのX-ray、設定してあるので見てみました。各種リソースがちゃんと認識されきれていないようなので、ソースコードをいじる必要がありそうです。 ある程度は取得できましたが、サービスによって言語が違って、取得しきれていないリソースがあります。 もうちょっとみてみたいと思います。
guest

0

どのようなシチュエーションかが見えないので一般論よりの回答となりますが。

Datadogを見るよりは、まずはユーザーサイドに近い意見や感覚値を吸い上げるのが良いと思います。

ただ漠然と「パフォーマンスアップしたい!」という話が出てくるシチュエーションはあまり考えづらく、なんらかのトリガーとなる事象があってのことと思います。であれば、まずはユーザーサイドに近い人からの意見を吸い上げて仮説を立てて絞り込むのかよろしいかと思います。

例えば、特定のページでのみ応答/表示が遅い、ということであれば、そのページで投げているバックエンドAPIを掘り下げればなにか手がかりがあるかも?と多少なり方向性が見いだせますし、全体的に遅いのであればフロントでロードするファイルサイズが重すぎたり、CDNのキャッシュが十分効いていなかったりするかもしれません。
なにも手がかりのない状態から漠然と手を出すのはさすがに辛すぎますので、報告事例が集められるならそこから網を絞っていくのが良いと思います。

lambdaを使っているということは、おそらく裏は API Gateway や DynamoDB を使っているのでは無いでしょうか。その前提で初歩的なところを挙げるなら、

・DynamoDBをScanしていないか?(これは明確にバッドプラクティスです)
・Lambdaの同時実行数の制限に抵触していないか?(lambdaの同時実行数はリージョン単位で制限があります。たしか、東京リージョンのデフォルトでは100ぐらいだったような気がしてますが、詳しくは公式ドキュメント、 lambda の制限事項をお調べください)

バックエンドにアタリをつけるのであれば、とりあえず lambda の duration time, throttling, error などを見ると思います。API Gateway のレスポンスコードやレイテンシあたりも有力なのではないかと。あとは前述したように DynamoDB に変なクエリを投げていないかコードとスキーマを確認するなどが考えられます(いずれにせよ、収集できる仮説を集めるのが最優先であろうとは思いますが)。

私自身はあまり使ったことがありませんが、トレーシングである程度バックエンドの状況を概観することことで見える傾向があるかもしれません。こちらは Datadog のAPM (個別の有償プランだったと思います)や、AWS の X-Ray を有効化するなどで確認可能です。

投稿2020/07/16 12:49

hassaku_63

総合スコア92

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoukoMatsumoto

2020/08/08 02:46

遅くなってしまって申し訳ありません。長く色々ありがとうございます。 はい、API Gateway や DynamoDB、まさしく使っております。 DynamoDB自体のレイテンシーはあまり掛かっていないようなので、他がネックになりそうです。 API Gateway のパフォーマンスについて無知のため、色々ヒントをありがとうございます。 ちなみにDataDogのAPMとAWSのX-rayに差はあるのでしょうか?両方設定すると無駄、、、などあるようでしたら知りたいところです。
hassaku_63

2020/09/10 17:29

Datadog APM の方は正直きちんと活用できてないので、私から明確なアドバイスは難しいです。申し訳ありません。ただし基本は AWS が提供するサービスよりは監視を専門とする Datadog のほうが色々行き届いてるはず、とは思います。APMでない metric, logs, dashboard の話になりますが、複数メトリック(ログイベントも含めて)を横串で view にしたりとかが簡単にできるので、 AWS 標準で可視化を頑張るよりは色々と分析・考察が捗りやすい使い勝手という印象は持っています あと、Datadog APM を AWSに使う場合は X-Ray の有効化が必須だったはずです。なので、どちらを使うにせよ少なくとも X-Ray の有効化は無駄にならないと思います
guest

0

Webパフォーマンス虎の巻という非常にありがたい記事がありました。

読んだ本は超速! Webページ速度改善ガイドだそうです。
よくわからないならこれを読むというのはいかがですか?

ちなみに、上記は検索したら一番上に出てきました。
調べることができない場合は、知ってる人に投げるのが良いと思います。

投稿2020/07/08 02:21

FiroProchainezo

総合スコア2421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoukoMatsumoto

2020/08/08 02:44

遅くなってしまって申し訳ありません。なるほど、書籍で基礎を抑えていくのはありですね。 まとまった時間が取れるか微妙ですが、取れそうであれば試し読みできるものであれば見たいと思います。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問