Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
aws_reinvent_recap_chaos_engineering_to_serverless
Search
morioka shuhei
December 10, 2018
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
aws_reinvent_recap_chaos_engineering_to_serverless
morioka shuhei
December 10, 2018
More Decks by morioka shuhei
See All by morioka shuhei
LangChain Meetup Tokyo UPCYCLEにおけるLangChain 活用事例
selmertsx
1
1.2k
20191103_小山高専_卒業生講話
selmertsx
0
300
20190306_serverless_meetup_tokyo_11
selmertsx
5
1.8k
aws_reinvent_recap
selmertsx
2
430
2018_03_speeekaigi
selmertsx
0
490
sam_on_aws_2018_startup_days
selmertsx
0
450
20171019_aws_startup_tech
selmertsx
1
7k
rails_rdm_revieee
selmertsx
0
1.4k
2017_jaws_ug_night_shuhei
selmertsx
3
4.8k
Other Decks in Technology
See All in Technology
OneLakeをデータソースにした AI Search(Foundry IQ)の ライフサイクル管理
ryuseiiida
0
220
Don't write the architecture only in the prompt.
neohsu
0
310
IoTとは〜? 数字で見るSORACOM UG【SORACOM UG Explorer 2026】
soracom
PRO
0
180
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
520
kintoneで在庫管理システムを作るときの要件定義・設計ポイント
kai0707
0
230
Software Engineering in an AI-Driven World
erikjhordan_rey
0
120
AIで選択肢が広がった組織設計の理想と現実
konifar
16
7.7k
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
5
680
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
390
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
470
推論基盤と Scale-Up Interconnect の現状と制約から俯瞰する技術動向
markunet
2
810
reInvent2026stby LT00 "Change your life!"
shinichirokawano
1
590
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
310
The Curse of the Amulet
leimatthew05
3
16k
It's Worth the Effort
3n
188
29k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
How STYLIGHT went responsive
nonsquared
100
6.3k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
290
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.6k
Six Lessons from altMBA
skipperchong
29
4.6k
Scaling GitHub
holman
464
140k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
550
Transcript
2018/12/10 ( 火) AWS re:Invent 報告会 by Yappli そんなに遠くない Chaos
Engineering 株式会社 Speee 開発基盤ユニット 森岡周平 (@selmertsx)
Chaos Engineering を 聞いたことがある人
Chaos Engineering は 自分には縁遠いと思ってる方
本日はそういった方を ターゲットにお話をします
今日のお話 このセッションでChaos Engineering が身近に感じら れたので、その体験をおすそ分けしたい!
今日の目的 Chaos Engineering とは何か理解できる Serverless の分野に Chaos Engineering を 適用する方法が分かる
Chaos Engineering がちょびっと身近に感 じられる 気がついたら AWS の話よりもChaos Engineering の話メインに なってしまい、完全に趣味全開のお話になってしまいまし た...!!!
Agenda 自己紹介 Chaos Engineering とは何か Chaos Engineering をServerelss の分野に適用する まとめ
Chaos Engineering の概念について7 、Serverless での実践事例 が3 くらいの割合で話します。Session の中身を理解しやすくす るためにChaos Engineerings の原則について、セッションで話 されていた内容以外の情報も交えてお話をしていきます。
自己紹介 名前: 森岡周平 所属部署: 開発基盤ユニット GitHub & Twitter アカウント: @selmertsx
主業務: IDaaS 関連の諸々をServerless で作る 技術: Ruby/Rails, TypeScript, AWS, GCP 最近の興味: AWS Amplify Console で サービスを作ってみたい
最近作ってるIDaaS 関連システム 現在、クラウド人材管理ツールが人事マスター 人材管理ツールのデータに応じて、従業員が適切なサービス を適切な権限で見れるように、Serverless で自動化する ※ 人材管理ツールは人数課金で、かつ過去の履歴を保持しないためBigQuery に履歴を残す ※
人材管理ツールは他社内サービスと密接に関わっており、安易にリプレイスできない
Agenda 自己紹介 Chaos Engineering とは何か Chaos Engineering をServerelss の分野に適用する まとめ
Chaos Engineering の概念について7 、Serverless での実践事例 が3 くらいの割合で話します。Session の中身を理解しやすくす るためにChaos Engineerings の原則について、セッションで話 されていた内容以外の情報も交えてお話をしていきます。
Chaos Engineering の原則 意訳してみるとこんな感じ Chaos Engineering とは、分散システムが過酷な本番 環境でも耐えられる能力があるという確証を得るため の実験規範
Chaos Engineering の実践方法 Net ix の論文も読んで整理してみた
Net ix における Chaos Engineering 採用背景
Net ix は Microservices を採用してる Effective Interprocess Communications in the
Cloud: The Pros and Cons of Microservices Architectures AWS re:Invent 2014
Microservices において Net ix が信頼性を高めるため 考えてきたアプローチ
従来の信頼性向上のためのアプローチ システムへの INPUT (x) を網羅的にリストアップ x に対して適切な OUPUT(y) を実装する 想定される問題に対して、適切な対処を実装する
ことで障害を回避する f(x) はruntime con g 、機能更新などで動的に変化
Net ix のケース Microservices において、あるシステムのOUTPUT が他のシステムへのINPUT 挙動を網羅的に把握することが困難 「システム単体で正常に動いていること」 よりも 「何かあってもユーザーがコンテンツを視聴でき
ること」 を実現する設計にしなければならない
Net ix のケース その2 一部のサービスが利用できなくなったとしても 全体としては稼働するサービスを設計していく Chaos Engineering はその教育のための取り組み 過去に障害を起こしたINPUT
を定期的に再現する VM instance が落ちる (chaos monkey) サービス間のレイテンシー (latency monkey) サービス間のリクエストの失敗 予期しないユーザーからのリクエスト リージョン全体の障害発生 (chaos kong)
Production 環境に 障害(Failure) を注入する実験 = Chaos Experiments
Chaos Engineering 支援ツールGremlin のデモから (re:Invent 2018)
None
None
None
None
None
Chaos Experiments の補足説明 Steady State ( 正常な状態) をどう定義する のか? 実験の影響範囲はどうなっているの?
なぜ実験を自動化しProduction 環境で行う のか?
正常な状態 (Steady State) の定義 Steady State とは 「ユーザーから見えるサービス が正常に動作していることを示す指標」 Net
ix では SPS (stream starts per second) で表現 障害が発生しても SPS に影響を与えないよう サー ビス全体を設計する
実験の影響範囲を設定 Chaos Experiments は全ユーザに行う訳ではない 実験は一部のユーザーのみ抽出 して行う ( 実験群) 実験を受けないユーザーを 統制群
と呼ぶ 実験結果を、実験群と統制群で比較させる 比較する数値は主に SPS を利用する
Production で行う & 自動化する Net ix では 1 日に100 回程度デプロイ
をしている ユーザーの振る舞いを指標としているので、コー ドで実現されたインテグレーションテストでは代 替できない デプロイの度に、テスターによるリグレッション テストをすることは難しい
Chaos Engineering まとめ Microservices 下の複雑化したシステムにおいては従来の方 法では安定性を保つことは困難である 過去、障害の原因となった外乱を自動で定期的にINPUT し それにサービスが耐え続けられるように設計・実装し続ける このときサービス1つ1つが正しく動いている
より ユーザーが正常にサービスを利用できる を優先する これらの取り組みが Chaos Engineering である
この話を聴いて、思っていた よりも Chaos Engineering は 突飛な話じゃないと思った人
Agenda 自己紹介 Chaos Engineering とは何か Chaos Engineering をServerelss の分野に適用する まとめ
Chaos Engineering の概念について7 、Serverless での実践事例 が3 くらいの割合で話します。Session の中身を理解しやすくす るためにChaos Engineerings の原則について、セッションで話 されていた内容以外の情報も交えてお話をしていきます。
Serverless で Chaos Engineering Serverless こそ Chaos Engineering が重要である Auth
0 、DynamoDB などの外部サービスと連携す ることが多い 依存する外部要素が増えると、Latency の影響を受 ける機会も多くなる Lambda A からLambda B を呼び出すとき、両方 cold 状態であったら実行に非常に時間が掛かる
対象のサービス (sample) 注入する障害 (Failure) Latency Injection Error Injection https://github.com/theburningmonk/lambda-latency-injection-demo
Latency Injection の実装 HTTP Request の処理を上記のようにラップする con g はSSM Parameter
Store に格納 デプロイなしで即座に反映が可能 API Gateway のCanary release を使って影響範囲を制御して も良さそうに見える ( 資料にはない)
Error Injection HTTP 5xx Amazon DynamoDB の throughput を超える AWS
Lambda の同時起動数を超える Injection のやり方 management console 上でLambda の同時期同数を 設定する
Chaos Experiments にあたっての注意 Staging 環境で十分にテストすること マスキングした顧客データを持ってきてテスト することは可能である ロールバックプランを必ず用意しておくこと 必ず定時の中でやること 重要な日は避けること
Agenda 自己紹介 Chaos Engineering とは何か Chaos Engineering をServerelss の分野に適用する まとめ
Chaos Engineering の概念について7 、Serverless での実践事例 が3 くらいの割合で話します。Session の中身を理解しやすくす るためにChaos Engineerings の原則について、セッションで話 されていた内容以外の情報も交えてお話をしていきます。
まとめと所感 Chaos Engineering をServerless の分野に適用した まだまだ手探り・力技感はあるものの、実現する ための肌感はつかめた 今後の予定 僕たちのServerless サービスでもエッセンスを取り
入れていく 障害を引き起こしたINPUT を保持しておいて、再 発しないようリグレッションテストをするなど 近いうちにそんな話しが出来たらいいっすな!