Upgrade to Pro — share decks privately, control downloads, hide ads and more …

aws_reinvent_recap_chaos_engineering_to_serverless

morioka shuhei
December 10, 2018

 aws_reinvent_recap_chaos_engineering_to_serverless

morioka shuhei

December 10, 2018
Tweet

More Decks by morioka shuhei

Other Decks in Technology

Transcript

  1. 2018/12/10 ( 火) AWS re:Invent 報告会 by Yappli そんなに遠くない Chaos

    Engineering 株式会社 Speee 開発基盤ユニット 森岡周平 (@selmertsx)
  2. 今日の目的 Chaos Engineering とは何か理解できる Serverless の分野に Chaos Engineering を 適用する方法が分かる

    Chaos Engineering がちょびっと身近に感 じられる 気がついたら AWS の話よりもChaos Engineering の話メインに なってしまい、完全に趣味全開のお話になってしまいまし た...!!!
  3. Agenda 自己紹介 Chaos Engineering とは何か Chaos Engineering をServerelss の分野に適用する まとめ

    Chaos Engineering の概念について7 、Serverless での実践事例 が3 くらいの割合で話します。Session の中身を理解しやすくす るためにChaos Engineerings の原則について、セッションで話 されていた内容以外の情報も交えてお話をしていきます。
  4. 自己紹介 名前: 森岡周平 所属部署: 開発基盤ユニット GitHub & Twitter アカウント: @selmertsx

    主業務: IDaaS 関連の諸々をServerless で作る 技術: Ruby/Rails, TypeScript, AWS, GCP 最近の興味: AWS Amplify Console で サービスを作ってみたい
  5. Agenda 自己紹介 Chaos Engineering とは何か Chaos Engineering をServerelss の分野に適用する まとめ

    Chaos Engineering の概念について7 、Serverless での実践事例 が3 くらいの割合で話します。Session の中身を理解しやすくす るためにChaos Engineerings の原則について、セッションで話 されていた内容以外の情報も交えてお話をしていきます。
  6. Net ix は Microservices を採用してる Effective Interprocess Communications in the

    Cloud: The Pros and Cons of Microservices Architectures AWS re:Invent 2014
  7. Net ix のケース その2 一部のサービスが利用できなくなったとしても 全体としては稼働するサービスを設計していく Chaos Engineering はその教育のための取り組み 過去に障害を起こしたINPUT

    を定期的に再現する VM instance が落ちる (chaos monkey) サービス間のレイテンシー (latency monkey) サービス間のリクエストの失敗 予期しないユーザーからのリクエスト リージョン全体の障害発生 (chaos kong)
  8. 正常な状態 (Steady State) の定義 Steady State とは 「ユーザーから見えるサービス が正常に動作していることを示す指標」 Net

    ix では SPS (stream starts per second) で表現 障害が発生しても SPS に影響を与えないよう サー ビス全体を設計する
  9. Production で行う & 自動化する Net ix では 1 日に100 回程度デプロイ

    をしている ユーザーの振る舞いを指標としているので、コー ドで実現されたインテグレーションテストでは代 替できない デプロイの度に、テスターによるリグレッション テストをすることは難しい
  10. Agenda 自己紹介 Chaos Engineering とは何か Chaos Engineering をServerelss の分野に適用する まとめ

    Chaos Engineering の概念について7 、Serverless での実践事例 が3 くらいの割合で話します。Session の中身を理解しやすくす るためにChaos Engineerings の原則について、セッションで話 されていた内容以外の情報も交えてお話をしていきます。
  11. Serverless で Chaos Engineering Serverless こそ Chaos Engineering が重要である Auth

    0 、DynamoDB などの外部サービスと連携す ることが多い 依存する外部要素が増えると、Latency の影響を受 ける機会も多くなる Lambda A からLambda B を呼び出すとき、両方 cold 状態であったら実行に非常に時間が掛かる
  12. Latency Injection の実装 HTTP Request の処理を上記のようにラップする con g はSSM Parameter

    Store に格納 デプロイなしで即座に反映が可能 API Gateway のCanary release を使って影響範囲を制御して も良さそうに見える ( 資料にはない)
  13. Error Injection HTTP 5xx Amazon DynamoDB の throughput を超える AWS

    Lambda の同時起動数を超える Injection のやり方 management console 上でLambda の同時期同数を 設定する
  14. Agenda 自己紹介 Chaos Engineering とは何か Chaos Engineering をServerelss の分野に適用する まとめ

    Chaos Engineering の概念について7 、Serverless での実践事例 が3 くらいの割合で話します。Session の中身を理解しやすくす るためにChaos Engineerings の原則について、セッションで話 されていた内容以外の情報も交えてお話をしていきます。
  15. まとめと所感 Chaos Engineering をServerless の分野に適用した まだまだ手探り・力技感はあるものの、実現する ための肌感はつかめた 今後の予定 僕たちのServerless サービスでもエッセンスを取り

    入れていく 障害を引き起こしたINPUT を保持しておいて、再 発しないようリグレッションテストをするなど 近いうちにそんな話しが出来たらいいっすな!