Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーバーレスアプリケーションの観測を適正化し、運用負荷を減らしていってる話
Search
Sho
September 10, 2024
Programming
0
43
サーバーレスアプリケーションの観測を適正化し、運用負荷を減らしていってる話
serverless meetup osaka #3 で登壇した内容です。
#serverlessosaka
Sho
September 10, 2024
Tweet
Share
More Decks by Sho
See All by Sho
できたこと・やっていきたいこと
ririru0325
0
33
jq を駆使して aws cli の運用を最適化
ririru0325
1
72
サーバーレス SaaS における運用監視の負荷軽減のためのアプローチ
ririru0325
0
250
Lambdaのこと
ririru0325
0
23
Other Decks in Programming
See All in Programming
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
1k
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
8
1.4k
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
2k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
26
6k
php-conference-japan-2024
tasuku43
0
440
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
960
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
950
Jaspr Dart Web Framework 박제창 @Devfest 2024
itsmedreamwalker
0
150
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
370
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
ドメインイベント増えすぎ問題
h0r15h0
2
580
rails newと同時に型を書く
aki19035vc
6
730
Featured
See All Featured
Being A Developer After 40
akosma
89
590k
Measuring & Analyzing Core Web Vitals
bluesmoon
5
210
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Bash Introduction
62gerente
610
210k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
サーバーレスアプリケーションの 観測を適正化し、運用負荷を減ら していってる話
自己紹介 • 名前:桑名 翔 • 会社:エムオーテックス株式会社 • 資格: • 最近やったこと:JVM
Lambda を カスタムランタイム に置き換えてコスト削減と性能UP
今日の話 • 運用 ◦ アプリケーションのデプロイ ◦ パッチ適用 … etc •
運用監視 ◦ ログ・メトリクス監視 ◦ リソース使用率の監視 … etc
今日の話 • 運用 ◦ アプリケーションのデプロイ ◦ パッチ適用 … etc •
運用監視 ◦ ログ・メトリクス監視 ◦ リソース使用率の監視 … etc
構成について簡単に • AWS をメインにほとんどサーバレス構成でアプリケー ションを構築して運用 ◦ 1000個を超えるLambda関数 ◦ 数百のDynamoDbテーブルやS3バケット ◦
数十のKinesis ストリームやSQSキュー • 運用監視システムは自前実装 ◦ ログやメトリクスに対してアラームをセットし、チャットに投稿される 仕組み ◦ 基本的には通知トリガーで対応する
通知の仕組み
こんな感じ
そもそもどうして運用監視をするのか?
そもそもどうして運用監視をするのか? • 可用性と信頼性の確保 • パフォーマンスやコストの最適化 • セキュリティの確保 … etc
そもそもどうして運用監視をするのか? • 可用性と信頼性の確保 • パフォーマンスやコストの最適化 • セキュリティの確保 … etc
観測しすぎによる運用負荷の高まり • 基本的には全てのリソースにアラームをセット ◦ 新規リソースを作成するたびにアラームが増える ◦ 管理コストも増える • 開発サイクルによる問題 ◦
新機能開発が多くリリース後の見直しが起こりづらい
こんなAPIを考えてみる
課題点 • アラームが重複して発生する ◦ Lambdaのエラーログによるアラーム ◦ API G/Wの5xxエラーのアラーム • 対応不要なアラームが発生する
◦ マネージドなサービスに対する瞬間的な接続エラー等 ▪ それでもエラーは発生するのでアラームになってしまう ▪ 慢性的に発生すると、本当は対応が必要だったのにスルーされてしまう
観測しすぎな現状から抜け出すために • やりたいことは可用性と信頼性の確保 つまり、お客様が問題なくサービスを利用し続けら れていること ↓言い換えると お客様がサービスを利用できなくなっていることを 検知したい
さっきのAPIについて考えてみる • 基本的には自動で復旧やスケーリングする構成 ◦ つまるところ、アプリケーション障害以外ではほとんど対応の余地がない
さっきのAPIについて考えてみる
さっきのAPIについて考えてみる 確かに対処はいらないかもしれないが、原因解明とお客 様へ告知をする義務がある ↓ 告知が必要になる場合にだけ検知できれば十分 ◦ 単発のマネージドサービスへの接続エラーや関数のランタイムでのエラ ー等は観測対象外にする
対応効果 • 現在も取り組み中ですが、通知の数は60 - 70%は減った ◦ まず確認する量が減ったので負荷が下がった ◦ アラームの役割が明確になったので初動にかかる時間が減った
対応効果 • それぞれのアラームが発生したら、対応が必要なものに なってきたので、対応へのスピード感も上がった ◦ オオカミ少年的アラームがいなくなるだけで危機感が上がった
簡単まとめ 適切なアラームを設定することで迅速な対応が可能になります そのためにもアラームの意義と役割を明確にしましょう
ご清聴ありがとうございました!