JAWS-UG SRE支部#1 SREのプラクティスにAWSで取り組むときの悩み

8.6K Views

November 09, 21

スライド概要

JAWS-UG SRE支部 #1の発表内容です
https://jawsug-sre.connpass.com/event/227752/

profile-image

経済ニュースアプリのSREの仕事をしています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

JAWS-UG SRE支部 #1 SREのプラクティスに AWSで取り組むときの悩み Yuki Ando

2.

Yuki Ando / あんどぅ AWS好きの駆け出しSRE JAWS-UG SRE支部運営メンバー 経済ニュースメディアでSREチーム所属 前職SIerではオンプレミスのインフラ運用で激しいトイルを経験し、 AWSのマネージドサービスとSREの考え方に感動 好きなAWSのサービス:ECS、CodeDeploy @integrated1453 好きなSREのプラクティス:SLO、非難なきポストモーテム文化 2

3.

今日、みなさんと共有したいこと 1 SRE、やっていきたい気持ち 2 SRE on AWS、やっていく大変さ 3

4.

なぜSREに 取り組みたいのか 1 4

5.

そもそもSREとは SRE = Site Reliability Engineering Googleで生まれた ソフトウェアエンジニアリングでサービス運用を改善する方法論 技術的な手法だけではなく、組織・コミュニケーション・文化的な側面まで幅広い範囲を扱う考え方 “class SRE implements DevOps” DevOpsも、ツール・プロセス・文化など幅広い範囲を扱う考え方なので、 スケールするサービスの信頼性に焦点をあてたGoogle流のDevOpsインターフェースの実装がSRE、というのが発表者の理解 5

6.

信頼性とスピードのバランスをとる考え方 SRE本『はじめに』より ”SREはシステムの信頼性※に焦点を置きます。 SREという言葉の提唱者であり、Googleの常時稼働運用担当バイスプレジデントの Ben Treynor Slossは、信頼性こそがあらゆるプロダクトの基本的な機能だと考えています。 誰も使えないシステムは、有益なものではありえません。 信頼性は非常に重要なので、SRE はシステムのスケーラビリティ、信頼性、効率性を 向上させるために、その設計と運用の改善方法を見つけることに集中します。 とはいえこの改善努力は際限なく行われるわけではありません。 システムが「十分な信頼性を持った」なら、私たちは 機能の追加や新プロダクトの構築のために力を注ぐのです 。” ※信頼性とは「[システム ]求められる機能を、定められた条件の下 、定められた期間にわたり、障害を起こすことなく実行する確率」 で が 6

7.

スケールするシステムで信頼性を保つ難しさ とあるECサイトのインフラエンジニア時代の原体験 いつもよりなんか遅いんだけど。 インフラで問題ないか調べて いつもよりとは、具体的にいつからどの APIが何秒くらい遅いですか? ユーザに影響出ていますか? 知らないけど、体感でいつもより 購入までの操作が遅いんだよ 7

8.

スケールするシステムで信頼性を保つ難しさ とあるECサイトのインフラエンジニア時代の原体験 3日前からアクセス数が急増して て、スロークエリログも増えてるなぁ。 でも5XXエラーはそんなに出てないし、 問題なのかなぁ… 8

9.

スケールするシステムで信頼性を保つ難しさ とあるECサイトのインフラエンジニア時代の原体験 3日前からアクセス数が急増して て、スロークエリログも増えてるなぁ。 でも5XXエラーはそんなに出てないし、 問題なのかなぁ… あ、先日リリースしたアプリ の新機能でDBに負荷がかかって たっぽいです 9

10.

スケールするシステムで信頼性を保つ難しさ とあるECサイトのインフラエンジニア時代の原体験 3日前からアクセス数が急増して て、スロークエリログも増えてるなぁ。 でも5XXエラーはそんなに出てないし、 問題なのかなぁ… あ、先日リリースしたアプリ の新機能でDBに負荷がかかって たっぽいです 期末の広告やメルマガでクーポン 配ってたみたい。そうゆう状況な ら、いつもより多少遅くても商品の 購入に支障がなければOKよ 10

11.

スケールするシステムで信頼性を保つ難しさ とあるECサイトのインフラエンジニア時代の原体験 3日前からアクセス数が急増して て、スロークエリログも増えてるなぁ。 でも5XXエラーはそんなに出てないし、 問題なのかなぁ… あ、先日リリースしたアプリ の新機能でDBに負荷がかかって アーキテクチャ変更や新機能の追加で たっぽいです 負荷特性が変わっていることがある / 可用性100%を目指すなら、もう新機能 を追加しないでください🥺(心の声) \ 販促施策や広告・キャンペーンなどで ユーザのアクセスパターンが変わることがある / レイテンシーの増加が許容されないなら、もう 期末の広告やメルマガでクーポン 新規ユーザを増やさないでください🥺(心の声) 配ってたみたい。そうゆう状況な ら、いつもより多少遅くても商品の \ 購入に支障がなければOKよ 11

12.

要はバランスおじさん 多くのサービスはビジネスが目的。信頼性とサービスの成長のバランスをとることになる。 信頼性 サービス の成長 12

13.

SREを実践するとして… みんながGoogleクラスのサービスの成長を支えるSREをやりたいわけではない Googleのサービスは世界中の数十億のユーザから使われることが前提で設計されている。 最初からそのレベルのスケーラビリティを考慮する必要があるか? サービス開始から19日で5,000万ユーザを獲得したポケモンGo(Google発Niantic)並のスピードで ビジネスを拡大するような見込みがあるか? おそらく、多くの企業は最初からSRE本に書いてあることをフルスタックで実践する必要はない 13

14.

SREが関わるテーマ 信頼性に関わることすべて: SRE Book 目次より SLO トイルの撲滅 分散システムのモニタリング 自動化 リリースエンジニアリング インシデント対応 ポストモーテムと根本原因分析 オンコール対応 過負荷への対応 …etc 14

15.

SLOはSRE特有の重要ツール 顧客体験からSLI/SLOを決め、SLOにSREが駆動されるという胸熱な考え方 POINT 01 02 03 クリティカルユーザー サービスレベル指標 サービスレベル目標 ジャーニー(CUJ) (SLI) (SLO) SLOの主眼は顧客体験の ユーザーにとって重要であ SLIで計測されるサービス 改善。ユーザーにとって重 ると考えられるサービスの レベルのターゲット値 要なサービス上のタスクの アウトカムに対する評価と 顧客が満足するレベルに ステップを補足する その計測方法 調整していく POINT POINT 15

16.

SLOはSRE特有の重要ツール 顧客体験からSLI/SLOを決め、SLOにSREが駆動されるという胸熱な考え方 ECサイトで、商品を 検索して、カートに入れ て、注文完了したい 検索のレイテンシー 注文のリクエスト成功率 をアクセスログから 計測する 500ms以内で検索できた リクエストの割合>98% 注文の可用性>99.5% POINT 01 02 クリティカルユーザー サービスレベル指標 サービスレベル目標 ジャーニー(CUJ) (SLI) (SLO) SLOの主眼は顧客体験の ユーザーにとって重要であ SLIで計測されるサービス 改善。ユーザーにとって重 ると考えられるサービスの レベルのターゲット値 要なサービス上のタスクの アウトカムに対する評価と 顧客が満足するレベルに ステップを補足する その計測方法 調整していく POINT 03 POINT 16

17.

SREがエンジニアリングである理由 サービス運用を”エンジニアリング”する上で、SLOが重要な役割を果たす SREの対処が必要となるトリガーをモデル化して、定量分析して、信頼性を改善できるようになる。 ソフトウェアに機能を追加したらユーザのアクセス数やCV率・継続率を分析して、改善するのと 同じアプローチがとれる。 SLO化できる信頼性の指標の例 WebサイトやAPIサービス:リクエスト成功率、レイテンシー CI/CDパイプライン:デプロイ頻度、リードタイム、変更失敗率、MTTR データ処理パイプライン:データの新鮮さ、正確さ 17

18.

SREのロールに関連するスキル サイトリライアビリティワークブック 『20.2.1 最初のSREを見つける』 運用 プロダクションでのアプリケーション運用経験は容易に身につかない価値ある知見 ソフトウェアエンジニアリング SREはソフトウェアを理解し、改善する力が必要 モニタリングシステム SREの原則では、計測し、納得のいく説明をつけることのできるSLOが必須 プロダクションの自動化 運用をスケールさせるには自動化が必要 システムアーキテクチャ アプリケーションをスケールさせるには良いアーキテクチャが必要 18

19.

全部できる人はスーパーマンでは…😇

20.

SRE on AWS やっていく大変さ 2 20

21.

AWSのサービス、選択肢増えすぎ問題😇 去年の最適解が今年は変わっていることが普通にあり得る 200を超えるAWSサービス 2020年には2,757回のリリース 毎年12月のre:Invent付近で怒涛の サービスアップデート🎁 AWSのクラウドが選ばれる10の理由 https://aws.amazon.com/jp/aws-ten-reasons/ 21

22.

SLI/SLOの実装をする場合 SLIの実装を決める上で、AWSのサービスの組み合わせを考える必要がある クリティカルユーザージャーニーを定義する SLIの仕様を決める SLIを実装する SLOのターゲット値を決める エラーバジェットポリシーを文書化し、ビジネスサイドと握る SLOダッシュボード・アラートを実装する SLO駆動で信頼性の改善に取り組む 22

23.

SLI/SLOの実装をする場合 リクエスト成功率・レイテンシーをアクセスログから集計したい AWS Cloud ? Amazon ECS SLO Dashboard ? Request Users Application Load Balancer nginx App Storage service ? SLO Alert SREs ? Other 23

24.

SLI/SLOの実装をする場合 パターン① ALBのアクセスログをS3に保存。Athenaで集計する AWS Cloud Query Amazon Athena Amazon ECS Request Users Application Load Balancer nginx App Amazon S3 output bucket SREs Access Logs 24

25.

SLI/SLOの実装をする場合 パターン② nginxのアクセスログをコンテナの標準出力経由でCloudWatch Logsに保存 AWS Cloud Amazon ECS Request Users CloudWatch Logs Insight Application Load Balancer nginx App Amazon CloudWatch SREs Access Logs 25

26.

SLI/SLOの実装をする場合 パターン③ FireLensでFluentBit→S3に送信。Athenaで集計する AWS Cloud Query Amazon Athena Amazon ECS Request Users Application Load Balancer nginx App FluentBit Amazon S3 output bucket SREs Access Logs 26

27.

SLI/SLOの実装をする場合 パターン④ FireLensでFluentBit→S3に送信。Kinesis Data FirehoseでCloudWatch Logs(ry AWS Cloud Query Amazon Athena Amazon ECS Request Users Amazon S3 output bucket Application Load Balancer nginx SREs App FluentBit Amazon Kinesis Data Firehose CloudWatch Logs Insight Amazon CloudWatch 27

28.

SLI/SLOの実装をする場合 アクセスログを集計してSLOダッシュボードやアラートを設定したい!! AWS Cloud Query Amazon Athena Amazon ECS Request Users Application Load Balancer nginx Amazon S3 output bucket AWS Glue Amazon Kinesis Data Firehose AWS Lambda Amazon Redshift Amazon QuickSight SREs App FluentBit Amazon SNS CloudWatch Logs Insight Amazon CloudWatch 28

29.

SLI/SLOの実装をする場合 もういっそ全部SaaSでよくない? AWS Cloud Query Amazon Athena Amazon ECS Request Users • New Relic • Datadog Amazon S3 Smo Logic • output bucket • Splunk AWS Glue Application Load Balancer nginx App Amazon Redshift Amazon QuickSight SREs などのSaaS活用も選択肢に FluentBit Amazon Kinesis Data Firehose AWS Lambda Amazon SNS CloudWatch Logs Insight Amazon CloudWatch 29

30.

正解がわからない…😇

31.

まとめ SREやっていきたい。だけどSRE on AWSは大変 SREはソフトウェアエンジニアリングでサービス運用を改善できる素晴らしい方法論 だが、信頼性に関わることすべてが関心事なので要求されるスキルも多岐に渡る AWSのサービスは選択肢も多く、アップデートも頻繁なのでSREを実践する際の 設計・実装も、サービスの状況・ニーズ・時期によって激しく異なる

32.

JAWS-UG SRE支部で継続的に、 実践を伴った知見共有をしていきたいと思います! 一緒にSRE on AWSを考えて行きましょう! どんなテーマに興味があるか教えてください🙏 アンケートURL https://bit.ly/sre01_survey