Slide 1

Slide 1 text

Fault Injection Service アップデート @pre:Invent2024 2025年1月22日 #finjaws Fin-JAWS 第38回 ~re:Invent 2024 金融re:Cap~

Slide 2

Slide 2 text

自己紹介 >深津 新太郎 PjM @ JTC 情報システム子会社 基幹システムの運用・開発・リプレイスを担当 >AWS利用 2019- >好きなサービス S3 名前と機能のギャップが好き >re:invent 2022、2023、2024参戦

Slide 3

Slide 3 text

問題 何の数字でしょう?

Slide 4

Slide 4 text

答え 1日の最大歩数

Slide 5

Slide 5 text

Fin-JAWS後 ヌードルアジア→ホテル ホテル→キーノート会場 セッション会場→ホテル ホテル→Re:play会場 グルーヴ@Re:play

Slide 6

Slide 6 text

re:Invent2024 Map Flamingo The Venetian The LINQ Harrah’s Treasure Island Wynn Encore Caesars Forum MGM Grand Mandalay Bay Excalibur 約5km Horseshoe モノレール Strip road シャトルバス停 モノレール駅 会場 公式ホテル モノレールが一番おすすめ バスは渋滞に注意

Slide 7

Slide 7 text

re:Invent2024 Map Flamingo The Venetian The LINQ Harrah’s Treasure Island Wynn Encore Caesars Forum MGM Grand Mandalay Bay Excalibur 約5km Horseshoe モノレール Strip road re:Invent2024 Map シャトルバス停 モノレール駅 会場 公式ホテル キーノート・Expo会場 徒歩圏内

Slide 8

Slide 8 text

MGM Grand シャトルバス停 モノレール駅 会場 公式ホテル Flamingo The Venetian The LINQ Harrah’s Treasure Island Wynn Encore Caesars Forum Mandalay Bay Excalibur 約5km Horseshoe モノレール Strip road re:Invent2024 私のキャンプ地 エクスカリバーホテル

Slide 9

Slide 9 text

MGM Grand Flamingo The Venetian The LINQ Harrah’s Treasure Island Wynn Encore Caesars Forum Mandalay Bay Excalibur 約5km Horseshoe モノレール Strip road re:Invent2024 私のキャンプ地 遠い 最寄りのモノレール乗り場まで徒歩15分 ちょっと荷物を置きにもいけない シャトルバス停 モノレール駅 会場 公式ホテル

Slide 10

Slide 10 text

MGM Grand Flamingo The Venetian The LINQ Harrah’s Treasure Island Wynn Encore Caesars Forum Mandalay Bay Excalibur 約5km Horseshoe モノレール Strip road シャトルバス停 モノレール駅 会場 公式ホテル 高くてもベネチアン近くを! re:Invent2024 Map

Slide 11

Slide 11 text

ここから本題! -Fault Injection Service-

Slide 12

Slide 12 text

AWS Fault Injection Service (AWS FIS) ・マネコンから実行できる障害試験ツール ・ターゲット(AWSリソース) とアクション(障害内容) を指定 ・意図的に障害を発生させ、挙動や耐性を確認

Slide 13

Slide 13 text

出会いはre:Invent2023のWorkshop EC2・RDS、AZ障害に対する可用性確認を体験 私の理解 アプリケーションは変更不要 何度でも繰り返し実施可能 環境変更の戻し忘れがない(時限で変更) →障害試験、運用中の訓練に活用できるかも! 私とAWS FIS

Slide 14

Slide 14 text

出会いはre:Invent2023のWorkshop EC2・RDS、AZ障害に対する可用性確認を体験 私の理解 アプリケーションは変更不要 何度でも繰り返し実施可能 環境変更の戻し忘れがない(時限で変更) →障害試験、運用中の訓練に活用できるかも! 私とAWS FIS 正直、忘れていました。。

Slide 15

Slide 15 text

10/30 FIS アクションにLambdaが追加 https://aws.amazon.com/jp/about-aws/whats-new/2024/10/aws-lambda-fault-injection-service-actions/ FIS関連 アップデート@ pre:Invent2024 せっかくだから、現地で聞いてみよう! 11/13 FISに実験レポート生成機能が追加 https://aws.amazon.com/jp/about-aws/whats-new/2024/11/aws-fault-injection-service-experiment-reports/

Slide 16

Slide 16 text

Fidelity Investments社のChaos Engineering事例 FSI318:Fidelity Investments Building for mission-critical resilience ・Failure Mode and Effects Analysis(故障モード影響解析) 障害の影響度分析を体系的に実施 ・FISやSSMを組み合わせ「Chaos Buffet」導入 Lambdaレイヤー独自実装→ネイティブサポート 資料 • https://reinvent.awsevents.com/content/dam/reinvent/2024/slides/fsi/FSI318_Fidelity-Investments-Building-for-mission-critical-resilience.pdf YouTube • https://youtu.be/mYKNR0UXwMc?si=sLC_PJxRmXXtpDe-

Slide 17

Slide 17 text

AWS FIS S3 Lambda Function (Lambdaレイヤー) FISアクションがLambdaに対応

Slide 18

Slide 18 text

AWS FIS S3 Lambda Function (Lambdaレイヤー) 定義ファイル 生成 FISアクションがLambdaに対応

Slide 19

Slide 19 text

AWS FIS S3 Lambda Function (Lambdaレイヤー) 定義ファイル ポーリング 定義ファイル 生成 FISアクションがLambdaに対応

Slide 20

Slide 20 text

AWS FIS S3 Lambda Function (Lambdaレイヤー) 定義ファイル ポーリング 定義ファイル 生成 FISアクションがLambdaに対応

Slide 21

Slide 21 text

AWS FIS S3 定義ファイル 生成 FISアクションがLambdaに対応

Slide 22

Slide 22 text

AWS FIS S3 Lambda Function (Lambdaレイヤー /環境変数追加) FISアクションがLambdaに対応 IAMロール IAMポリシー IAMロール IAMポリシー Lambdaにいろいろ設定変更が必要…

Slide 23

Slide 23 text

・invocation-add-delay 実行時間を延ばす ・invocation-error エラーを返す ・invocation-http-integration-response 任意のHTTPレスポンスコードを返す 3つのアクションが指定可能 FISアクションがLambdaに対応

Slide 24

Slide 24 text

invocation-add-delay Duration 継続する時間 Invocation percentage 発生させる割合 Startup delay milliseconds 遅らせる時間

Slide 25

Slide 25 text

実行時間を延ばす invocation-add-delay 処理 Wait イベント

Slide 26

Slide 26 text

実行時間を延ばす invocation-add-delay Lambdaのタイムアウトを発生させられる タイマ20Sec 処理 Wait 30Sec イベント タイムアウト Lambda関数のタイマ値以上にDelayをセット

Slide 27

Slide 27 text

invocation-error Duration 継続する時間 Invocation percentage 発生させる割合 Prevent execution エラー前に処理を実行

Slide 28

Slide 28 text

イベント イベント 実行時にエラーを返す invocation-error Errorレスポンス 処理 Errorレスポンス 処理 Error Error Prevent execution:ON Prevent execution:OFF

Slide 29

Slide 29 text

更新系処理 中途半端な状態を再現可能 invocation-error (Prevent execution : OFF) Errorレスポンス 処理 Error createItem トランザクション管理の妥当性、冪等性の確認 500 Item有 処理NG

Slide 30

Slide 30 text

invocation-http-integration-response Duration 継続する時間 Invocation percentage 発生させる割合 Prevent execution エラー前に処理を実行 Status code HTTPステータスコード

Slide 31

Slide 31 text

AWS FIS シナリオ

Slide 32

Slide 32 text

AWS FIS シナリオ Lambdaはシナリオ無し

Slide 33

Slide 33 text

アクション 前後関係の設定が可能 組み合わせでシナリオ化 AWS FIS シナリオ 3min 4min 2min Delay 50% 4,000ms Delay 100% 4,000ms Error 50% Prevent execution:ON Error 100% Prevent execution:OFF

Slide 34

Slide 34 text

AWS FIS シナリオ

Slide 35

Slide 35 text

AWS FIS シナリオ 50%で4,000msのDelay (平均すると2,000ms前後) 100%で4,000msのDelay 50%でError 100%でError

Slide 36

Slide 36 text

Lambda対応 ここがうれしい ・ソースコードの変更なしで障害試験が可能 ここが面倒 ・Lambda自体に対する変更作業が多い レイヤー・環境変数追加、IAMロールの変更等 AWS Fault Injection Service トータルで考えると使えそう!

Slide 37

Slide 37 text

まとめ

Slide 38

Slide 38 text

・ただでさえ疲労困憊 ホテルはベネチアン近場がおすすめ ・AWS FIS のLambda用アクションは活用できる サービスの信頼性を上げていきましょう! まとめ

Slide 39

Slide 39 text

-Share your lessons-