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
Summit後の打ち上げから考える「分散システムにおける耐障害性のある設計」
Search
ShigeruOda
May 27, 2023
Technology
1
120
Summit後の打ち上げから考える「分散システムにおける耐障害性のある設計」
JAWS-UG初心者支部#56 Systems Manager 入門ハンズオン
https://jawsug-bgnr.connpass.com/event/283554/
でのLT
ShigeruOda
May 27, 2023
Tweet
Share
More Decks by ShigeruOda
See All by ShigeruOda
今年前半のAWSアップデートを振り返り
shigeruoda
0
39
#31 JAWS-UG主催 週刊AWSキャッチアップ (2024/5/6週)
shigeruoda
0
51
#30 JAWS-UG主催 週刊AWSキャッチアップ(2024/4/29週)
shigeruoda
0
32
#28 JAWS-UG主催 週刊AWSキャッチアップ(2024/4/15週)
shigeruoda
0
46
#27 JAWS-UG主催 週刊AWSキャッチアップ(2024/4/8週)
shigeruoda
0
59
#26 JAWS-UG主催 週刊AWSキャッチアップ(2024/4/1週)
shigeruoda
0
52
#24 JAWS-UG主催 週刊AWSキャッチアップ(2024/03/18週)
shigeruoda
0
150
#23 JAWS-UG主催 週刊AWSキャッチアップ(2024/03/11週)
shigeruoda
1
46
#22 JAWS-UG主催 週刊AWSキャッチアップ(2024/03/04週)
shigeruoda
0
23
Other Decks in Technology
See All in Technology
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
3
290
AI研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
130
GoとアクターモデルでES+CQRSを実践! / proto_actor_es_cqrs
ytake
1
160
データ分析を支える技術 生成AI再入門
ishikawa_satoru
0
380
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
160
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
480
AWSで”最小権限の原則”を実現するための考え方 /20240722-ssmjp-aws-least-privilege
opelab
10
4.4k
サービス開発を前に進めるために 新米リードエンジニアが 取り組んだこと / Steps Taken by a Novice Lead Engineer to Advance Service Development
nologyance
0
180
地理情報とAPIのトレンド
nagix
0
160
LLMアプリケーションの評価の実践と課題 ~PharmaXにおける今後の展望~
pharma_x_tech
2
170
AWS IAMのアンチパターン/AWSが考える最低権限実現へのアプローチ概略(JAWS-UG朝会#59資料改修20分版)
htan
0
330
Git 研修 Advanced【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
200
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
16
1.6k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
Docker and Python
trallard
37
2.9k
WebSockets: Embracing the real-time Web
robhawkes
59
7.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
44
4.7k
Designing on Purpose - Digital PM Summit 2013
jponch
113
6.6k
KATA
mclloyd
20
13k
Being A Developer After 40
akosma
72
580k
5 minutes of I Can Smell Your CMS
philhawksworth
200
19k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
Transcript
Summit後の打ち上げから考 える「分散システムにおける耐 障害性のある設計」 Shigeru Oda
Hello! Shigeru Oda AWS Community Hero AWS Samurai @OutputSeq 2
4月21日(金) 15:20-16:00(40分) 【AWS-27】 Everything fails, all the time: 分散システムにおける 耐障害性のある設計について
の内容を紹介するLTです。
セッション、Expo DeepRacer GameDay AWS Jam 打ち上げ
Summit後のグループ討論が楽しかった!!
Pub とあるPub
Pub グループがスケールする
Pub-A Pubが混んできたので、グループが移動 Pub-B
店舗は非効率だ、立ち飲みでスケールしよう (モノリスは非効率だ、マイクロサービスでスケールしよう)
グループ間の情報連携が出来ない可能性がある
システムでも同じNWがネックになる ホテル予約 ツアー予約 飛行機予約 ポイント 支払い
各サービスで障害の可能性もあり、考慮が必要 ホテル予約 ツアー予約 飛行機予約 ポイント 支払い
リトライ機能 ホテル予約 飛行機予約 ・サーバーエラー ・タイムアウト ・スロットリング 2s 2s 2s
Exponential backoff(指数関数的 後退) ホテル予約 飛行機予約 ・サーバーエラー ・タイムアウト ・スロットリング 2^0=1s 2^1=2s
2^2=4s 2^4=8s
NW障害は Exponential backoffでも軽減できない ホテル予約 飛行機予約 ホテル予約 ホテル予約 ホテル予約 ホテル予約 ホテル予約
ホテル予約 ホテル予約 ・サーバーエラー ・タイムアウト ・スロットリング … ・AWS障害 ・AZ障害
Exponential backoff(指数関数的 後退) + Jitter(ばらつき) ホテル予約 飛行機予約 ・サーバーエラー ・タイムアウト ・スロットリング
Min0 - Max1 Min0 - Max2 Min0 - Max4 Min0 - Max8
・Exponetial Backoff sleep = min(最大停止時間, 基準睡眠時間 * 2 ** 試行回数)
・Exponetial Backoff And Full Jitter sleep = random_between( 0,min(最大停止時間, 基準睡眠時間 * 2 ** 試行回数)) ・Exponetial Backoff And Equal Jitter tmp = min(最大停止時間, 基準睡眠時間 * 2 ** 試行回数) sleep = tmp / 2 + randam_between(0,temp / 2) Exponential backoff(指数関数的 後退) + Jitter(ばらつき)の種類
サーキトブレイカー(遮断機)の導入 ホテル予約 ツアー予約 飛行機予約 ポイント 支払い
通常時 ホテル予約 飛行機予約 DynamoDBにサービス名が登 録されているかチェック 登録なし
通常時 → 異常時 ホテル予約 飛行機予約 DynamoDBにサービス名が登 録されているかチェック 登録なし レコード登録 ・Service:飛行機予約
・Status:1 ・TTL:Sysdate + 10分 Exponetial Backoff And Full Jitter
Lambdaで定期チェック(死活監視) 飛行機予約 定期チェック(死活監視) レコード登録 ・Service:飛行機予約 ・Status:1 ・TTL:Sysdate + 10分
異常時 → 異常時 ・ホテル予約 ・飛行機予約 DynamoDBにサービス名が登録されて いるかチェック 登録あり ・Service:飛行機予約 ・Status:1
・TTL:Sysdate + 10分
異常時 →10分経過→ 正常時 ホテル予約 飛行機予約 DynamoDBにサービス名が登 録されているかチェック 登録なし
サーキットブレイカーを行うサービス
Polyglot Persitence (ポリグロット・パーシステンス) ホテル予約 ツアー予約 飛行機予約 ポイント 支払い Document DB
Relation DB Key-Value DB Graph DB Relation DB
Sagaパターン ホテル予約 飛行機予約 ポイント 支払い エラー発生 ホテル予約(取消) 飛行機予約(取消) ポイント(取消) 正常系
正常系 正常系 取消 取消 取消
Sageパターンの種類 オーケストレーション オーケストレーション 2.Error 1.OK 1.Rollback
Sageパターンの種類 コレオグラフィ メッセージ ブローカー 1.OK Publish 1.OK Subscribe 2.NG Publish 2.OK
Subscribe 1.RollBack Publish
私見: マイクロサービスでの耐障害性、取消処理には これらの考慮が必要と考えます。
私見: しかし、初期リリースからここまで必要? 最初から最高のUI/UXが必要なのか?
thank you