Slide 1

Slide 1 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. T O K Y O 2 0 1 9 . 1 0 . 0 3 - 0 4

Slide 2

Slide 2 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. T O K Y O 2 0 1 9 . 1 0 . 0 3 - 0 4 AWS を活用した Database Reliability Engineering Keisuke Awata Database Reliability Engineer 株式会社ビズリーチ/DBRE グループ G - 6

Slide 3

Slide 3 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 自己紹介 mysql > SELECT * FROM me ¥G *********** 1. row ********** name: 粟田 啓介 nickname: あわっち company: 株式会社 ビズリーチ title: DBRE twitter: @_awache 1 rows in set (0.00 sec)

Slide 4

Slide 4 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. BizReach, Inc 株式会社 ビズリーチ / BizReach, Inc 創業 : 2009年4月 代表者 : 南 壮一郎 従業員数 : 1,326名 (2019年8月現在) 拠点 : 東京/大阪/名古屋/福岡 事業内容 : インターネットを活用したサービス事業

Slide 5

Slide 5 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Slide 6

Slide 6 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Database Reliability Engineering とは Database におけるモノゴトを `Reliability Engineering` という側面から解決 n 主な役割 n 開発チームに対する教育、知見の共有 n プラットフォーム構築 n 自動化、自律化推進による生産性向上 n Database 運用のスペシャリスト n 他分野のスペシャリストとの分野を超えたコラボレーション

Slide 7

Slide 7 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Organization QA Security ORE DBRE 事業横断組織 Platform Product Group Support エンジニア組織: 約15 社内のエンジニアの数: 約300名

Slide 8

Slide 8 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. BizReach 流の Database Reliability Engineering DBRE グループ n 2019 年 2月 横断組織の一角として発足 n Database 運用は各開発部署で対応 n DBA Role の存在する部署は DBA が Database 管理を行う n DBA Role の存在しない部署では所属するエンジニアがフルスタックに対応 プロダクト組織 A SWE Team A..X SRE Team DBA(DBRE) Team プロダクト組織 B Scrum Team A..X プロダクト組織 C SWE Scrum Team A..X SRE Scrum Team

Slide 9

Slide 9 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. プラットフォーム基盤推進室 組織理念 エンジニアが成長でき、居続けたいと思う会社にする 優秀なエンジニアが集まり、育て、居続けられる環境を作ることで世の中に多くの価値を提供できる Mission 全サイトの信頼性を担保することで、 自社のサービス価値を最大化する Vision Make it Visible 品質、生産性を可視化することで 課題発見と健全な成長を促す No Ops, More Code エンジニアに対して開発と事業成長に 注力できる環境を提供する

Slide 10

Slide 10 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. BizReach 流の Database Reliability Engineering DBRE グループ n Platform を提供することで組織の Mission/Vision を具現化 n Database の 3大非機能要件の共通化を行い各事業に提供 (Cross-Functional Platform) n Backup n Provisioning n Monitoring

Slide 11

Slide 11 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. BizReach 流の Database Reliability Engineering DBRE グループ n Platform を提供することで組織の Mission/Vision を具現化 n Database の 3大非機能要件の共通化を行い各事業に提供 (Cross-Functional Platform) n Backup n Provisioning n Monitoring n DBA としてのナレッジを Engineering でサポート (Operational Platform) n Point In Time Recovery n 命名規則・設計ルールの共通化 n Release Operation 仕組み化 n Slow Query Analyze, etc.

Slide 12

Slide 12 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. BizReach 流の Database Reliability Engineering DBRE グループ DBRE グループ Cross-Functional Platforms ・ Backup ・ Provisioning ・ Monitoring , etc. DBRE 推進 ・ DBRE 認知 ・ 全社DBA DBRE化推進 Operational Platforms ・ Point In Time Recovery ・ Release Operation 仕組み化 ・ 命名規則/設計ルール ・ Slow Query Analyze , etc. 全社 SLA/SLO/SLI の策定 Database 知見共有、教育 各プロダクト 事業部内 SLA/SLO/SLI の策定 Database を安心安全に誰でも扱うことができる状態 ・属人化の排除 ・Toil の削減 再帰性があり、信頼のできる ツール、仕組みの提供

Slide 13

Slide 13 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. BizReach 流の Database Reliability Engineering DBRE グループ DBRE グループ Cross-Functional Platforms ・ Backup ・ Provisioning ・ Monitoring , etc. DBRE 推進 ・ DBRE 認知 ・ 全社DBA DBRE化推進 Operational Platforms ・ Point In Time Recovery ・ Release Operation 仕組み化 ・ 命名規則/設計ルール ・ Slow Query Analyze , etc. 全社 SLA/SLO/SLI の策定 Database 知見共有、教育 各プロダクト 事業部内 SLA/SLO/SLI の策定 Database を安心安全に誰でも扱うことができる状態 ・属人化の排除 ・Toil の削減 再帰性があり、信頼のできる ツール、仕組みの提供 どの部署でも同じ基準で判断 できる仕組みを導入

Slide 14

Slide 14 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. BizReach 流の Database Reliability Engineering DBRE グループ DBRE グループ Cross-Functional Platforms ・ Backup ・ Provisioning ・ Monitoring , etc. DBRE 推進 ・ DBRE 認知 ・ 全社DBA DBRE化推進 Operational Platforms ・ Point In Time Recovery ・ Release Operation 仕組み化 ・ 命名規則/設計ルール ・ Slow Query Analyze , etc. 全社 SLA/SLO/SLI の策定 Database 知見共有、教育 各プロダクト 事業部内 SLA/SLO/SLI の策定 Database を安心安全に誰でも扱うことができる状態 ・属人化の排除 ・Toil の削減 再帰性があり、信頼のできる ツール、仕組みの提供 どの部署でも同じ基準で判断 できる仕組みを導入 横展開できるナレッジを Platform へと昇華

Slide 15

Slide 15 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Slide 16

Slide 16 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. BizReach 流の Database Reliability Engineering DBRE グループの Activity の裏側を紹介させていただきます n Platform を提供することで組織の Mission/Vision を具現化 n Database の 3大非機能要件の共通化を行い各事業に提供 (Cross-Functional Platform) n Backup n Provisioning n Monitoring n DBA としてのナレッジを Engineering でサポート (Operational Platform) n Point In Time Recovery n 命名規則・設計ルールの共通化 n Release Operation 仕組み化 n Slow Query Analyze, etc.

Slide 17

Slide 17 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. DBRE Platform Tools 組織横断的に利用できる Tool 開発 スローガン n 個別最適を行わない n 個別機能を開発しないのではない n 個別の機能をいかに Platform として昇華させるか n ただやるだけではつまらない n 実現していることは枯れたこと n How の部分を今っぽく n 組織横断的に作るプラットフォームによって実現できることは新しいことではない n それを今の技術を使いながら実現することで楽しみながら開発を行う

Slide 18

Slide 18 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform

Slide 19

Slide 19 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 簡易的なイメージ DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成

Slide 20

Slide 20 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 簡易的なイメージ DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有

Slide 21

Slide 21 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 簡易的なイメージ DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ③Snapshot から復元

Slide 22

Slide 22 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 簡易的なイメージ DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ⑤Backup ファイルの アップロード ③Snapshot から復元

Slide 23

Slide 23 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 簡易的なイメージ DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ⑤Backup ファイルの アップロード ③Snapshot から復元 ⑥クリーンアップ

Slide 24

Slide 24 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 組織横断的に利用できる Backup Platform 開発 n 前提条件① n プロダクトそのものの稼働率に影響を与えない n 本番稼働中 DB に影響を及ぼさない Backup 処理 n プロダクトのエンジニアの工数の極小化

Slide 25

Slide 25 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform プロダクトの稼働率に影響を与えない DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ 本番稼働と別の環境で Backup を実行 どれだけ負荷を与えても問題ない ⑤Backup ファイルの アップロード

Slide 26

Slide 26 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform プロダクトの稼働率に影響を与えない DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ 本番稼働と別の環境で Backup を実行 どれだけ負荷を与えても問題ない Snapshot を参照・共有・削除するための IAM Role/Policy の設定のみで適用可能 ⑤Backup ファイルの アップロード

Slide 27

Slide 27 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 組織横断的に利用できる Backup Platform 開発 n 前提条件② n 会社としての要件を担保 n 要件は自分たちのコントロールできない場所で変わることがある n 事件、世論、政治などの外部要件 n 保持期間、保持方法、保存場所などの内部要件

Slide 28

Slide 28 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 会社としての要件を担保 DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ Backup に伴う How の部分を DBRE グループで一元管理 • 要件変更にも一律で対応可能 ⑤Backup ファイルの アップロード

Slide 29

Slide 29 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 会社としての要件を担保 DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ Backup に伴う How の部分を DBRE グループで一元管理 • 要件変更にも一律で対応可能 Backup を Statement Base に統一 • 世代を超えた Restore を保証し続けてくれるとは限らない • Restore する先のプラットフォームを選ばない ⑤Backup ファイルの アップロード

Slide 30

Slide 30 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 会社としての要件を担保 DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ Backup に伴う How の部分を DBRE グループで一元管理 • 要件変更にも一律で対応可能 Backup を Statement Base に統一 • 世代を超えた Restore を保証し続けてくれるとは限らない • Restore する先のプラットフォームを選ばない ⑤Backup ファイルの アップロード 場合によっては専用の ストレージにするかも?

Slide 31

Slide 31 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 組織横断的に利用できる Backup Platform 開発 n 前提条件③ n Security 要件を満たすこと n データの持ち出しを防止

Slide 32

Slide 32 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform Security 要件を満たすこと DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ Restore するタイミングで毎回 ランダムなパスワードを設定 ⑤Backup ファイルの アップロード

Slide 33

Slide 33 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform Security 要件を満たすこと DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ Restore するタイミングで毎回 ランダムなパスワードを設定 監査ログを含め Database に対する 操作ログを全て保存 ⑤Backup ファイルの アップロード

Slide 34

Slide 34 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform Security 要件を満たすこと DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ Restore するタイミングで毎回 ランダムなパスワードを設定 監査ログを含め Database に対する 操作ログを全て保存 不要にリソースを保持し続けない 処理終了時に全て掃除 ⑤Backup ファイルの アップロード

Slide 35

Slide 35 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform Security 要件を満たすこと DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ Restore するタイミングで毎回 ランダムなパスワードを設定 監査ログを含め Database に対する 操作ログを全て保存 不要にリソースを保持し続けない 処理終了時に全て掃除 CloudTrail, GuardDuty, Security Hub, Trusted Advisor 等を組み合わせて アカウントそのものに対する監視、管理 ⑤Backup ファイルの アップロード GuardDuty Security Hub Trusted Advisor Cloud Trail

Slide 36

Slide 36 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. プロダクト RDS Database Backup Platform アーキテクチャ詳説(事前設定) プロダクト担当者にて IAM Role と Policy を設定 n Policy 内容 n 対象の RDS が存在することを確認 n Backup に必要な Snapshot を作成 n 作成した Snapshot を共有 n 作成した Snapshot を削除 Role Policy - RDS に対する Describe - Snapshot の作成、共有 - 作成した Snapshot の削除 Policy 例 (Aurora) - "rds:Describe*", - "rds:CreateDBClusterSnapshot", - "rds:ModifyDBClusterSnapshotAttribute", - "rds:DeleteDBClusterSnapshot" Policy 例 (RDS) - "rds:Describe*", - "rds:CreateDBSnapshot", - "rds:ModifyDBSnapshotAttribute", - "rds:DeleteDBSnapshot"

Slide 37

Slide 37 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. DBRE Parallel Backup Platform アーキテクチャ詳説 (DBRE) AWS Step Functions workflow CloudWatch Event(time-based) RDS Cleanup Snapshot Cleanup Snapshot Cleanup Store Audit Log 必要な情報の登録、作成 n Workflow に必要な処理 n CloudWatch Event の設定 n Step Functions, ECS Fargate, Lambda の設定 n DynamoDB へ Master 情報の書き込み n Terraform で構成管理 n 1つのバックアップ対象につき、1環境作成

Slide 38

Slide 38 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. DBRE Parallel プロダクト RDS Database Backup Platform アーキテクチャ詳説(処理実行前) AWS Step Functions workflow Role Policy - RDS に対する Describe - Snapshot の作成、共有 - 作成した Snapshot の削除 CloudWatch Event(time-based) RDS Cleanup Snapshot Cleanup Snapshot Cleanup Store Audit Log

Slide 39

Slide 39 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. DBRE プロダクト RDS Database Backup Platform アーキテクチャ詳説①: Snapshot Creation and Share AWS Step Functions workflow Role Policy - RDS に対する Describe - Snapshot の作成、共有 - 作成した Snapshot の削除 CloudWatch Event(time-based) Assume Role Credentials Create Snapshot Share Snapshot Get Master Data CloudWatch Event で発火 Lambda で Master Data を Dynamo から取得 ECS Fargate を起動 Snapshot の作成 -> 共有 プロダクトのアカウントに Snapshot を作成 作成した Snapshot を DBRE アカウントに Share

Slide 40

Slide 40 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. DBRE プロダクト RDS Database Backup Platform アーキテクチャ詳説②: Restore Snapshot AWS Step Functions workflow Role Policy - RDS に対する Describe - Snapshot の作成、共有 - 作成した Snapshot の削除 CloudWatch Event(time-based) Assume Role Credentials Create Snapshot RDS Database Share Snapshot Restore Snapshot Get Master Data Snapshot から Restore Master Password をランダム設定 監査ログ(general log) を有効化

Slide 41

Slide 41 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. DBRE プロダクト RDS Database Backup Platform アーキテクチャ詳説③: Backup and UPLOAD S3 AWS Step Functions workflow Role Policy - RDS に対する Describe - Snapshot の作成、共有 - 作成した Snapshot の削除 CloudWatch Event(time-based) Assume Role Credentials Create Snapshot RDS Database Share Snapshot Restore Snapshot Backup & UPLOAD S3 Get Master Data Backup and Store テーブル単位でパラレルに dump S3 へ Backup ファイルを UPLOAD

Slide 42

Slide 42 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. DBRE Parallel プロダクト RDS Database Backup Platform アーキテクチャ詳説④: Clean UP AWS Step Functions workflow Role Policy - RDS に対する Describe - Snapshot の作成、共有 - 作成した Snapshot の削除 CloudWatch Event(time-based) Assume Role Credentials Create Snapshot RDS Database Share Snapshot Restore Snapshot Backup & UPLOAD S3 RDS Cleanup Snapshot Cleanup Snapshot Cleanup Store Audit Log Get Master Data Cleanup Backup のために使ったリソースを削除 Restore した RDS Share された Snapshot プロダクトに作った Snapshot 監査ログ(or general log) の保存

Slide 43

Slide 43 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. DBRE Parallel プロダクト RDS Database Backup Platform アーキテクチャ詳説(処理実行後) AWS Step Functions workflow Role Policy - RDS に対する Describe - Snapshot の作成、共有 - 作成した Snapshot の削除 CloudWatch Event(time-based) RDS Cleanup Snapshot Cleanup Snapshot Cleanup Store Audit Log

Slide 44

Slide 44 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 横断組織的に利用できる Backup Platform 開発 AWS + BizReach DBRE n Serverless n CloudWatch Events, Step Functions, Lambda, ECS Fargate, DynamoDB, S3 n サーバ管理をしないことによる運用面の手軽さ n ヒトがアクセスしないことによるセキュリティ強化 n 全てをコード管理 n 1 Backup 対象につき1つの環境が Terraform で構築される n BizReach DBRE グループ以外の管轄のアカウントに対しても容易に構築可能

Slide 45

Slide 45 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 横断組織的に利用できる Backup Platform 開発 AWS + BizReach DBRE n Snapshot Driven n RDS, Aurora n Snapshot を Restore してから Backup 処理 n Database 的に定点が取れているメリットを活かした作りが可能 n パラレルに dump 等どれだけ負荷を掛けてもプロダクトには影響を与えない n 全ての操作ログを取得 n 完了したら削除 n Restore そのものに時間がかかってしまうことは許容

Slide 46

Slide 46 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 横断組織的に利用できる Backup Platform 開発 AWS + BizReach DBRE n Security n RDS, Aurora n Snapshot を Restore する際に毎回十分な長さのランダムパスワードを設定 n システム的に利用できるだけでいい状態 n ヒトはアクセスしない n DB に対する操作ログを全出力 n 処理完了時にリソースの停止、削除 n 不要にデータを保持し続けない n CloudTrail, GuardDuty, Security Hub, Trusted Advisor n Backup 処理だけでなくアカウントそのものに対する操作も監視 n 不正な操作を検知する仕組みを導入

Slide 47

Slide 47 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 最大のメリットの1つ 様々な RDBMS に対応可能 DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④Backup の取得 ③Snapshot から復元 ⑥クリーンアップ MySQL なら mysqldump PostgreSQL なら pgdump など ⑤Backup ファイルの アップロード

Slide 48

Slide 48 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. 最大のメリットの1つ ベースを変えずに新しい Platform を構築 (ex: Masking Platform) DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④データマスキング ⑤マスキングファイル のアップロード ③Snapshot から復元 ⑥クリーンアップ

Slide 49

Slide 49 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. プロダクト検証 最大のメリットの1つ ベースを変えずに新しい Platform を構築 (ex: Masking Platform Next) DBRE プロダクト 稼働中本番DB 当日の Snapshot ①Snapshot の作成 ②Snapshot の共有 ④データマスキング ③Snapshot から復元 ⑥クリーンアップ ⑤Snapshot 作成 ⑦ Snapshot を共有 QA 利用 DB

Slide 50

Slide 50 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Backup Platform 横断組織的に利用できる Backup Platform 開発 No Ops, More Code の実現 n 本質的には各プロダクトに存在すべき機能 n DBRE グループとして、プロダクトのエンジニアがより機能要件に注力できる環境を作る n 非機能要件に対する品質の担保 n プラットフォームとして品質の高水準化

Slide 51

Slide 51 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery

Slide 52

Slide 52 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery mysql > SELECT questions FROM me; +-----------------------------------------------+ | questions | +-----------------------------------------------+ | DB の Point In Time Recovery をやったことある方? | | 定期的にDBを含めたシステムの防災訓練をやっている方? | +-----------------------------------------------+ 2 rows in set (0.00 sec)

Slide 53

Slide 53 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery Point In Time Recovery 時間 < それを利用するサービスのダウンタイム PITR は突然必要になる n 大抵の場合は最大級のトラブルと抱き合わせ n オペレーションミス n アプリケーションバグ n RDBMS そのもののバグ

Slide 54

Slide 54 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery Point In Time Recovery 時間 < それを利用するサービスのダウンタイム PITR は突然必要になる n どうやって心理的、オペレーション的安全性を担保するか n サービス停止を伴う作業 n どんな作業が必要なのか n それにかかる時間 平常心でやり続けるためには情報が必要

Slide 55

Slide 55 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery PITR: オンプレ編 大まかな必要オペレーション n (同一スペックのサーバ(箱)を探す) n (同一ネットワーク内に配置) n Backup から `どうにかして` Restore n 独自スクリプトなどの仕込み n アプリケーションエンジニアに引き渡して動作確認 DBA の職人芸

Slide 56

Slide 56 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery PITR: RDS Aurora 編 大まかな必要オペレーション n Cluster を復旧 n 復元元の Cluster の状態を確認しながら設定 n Parameter Group n Security Group n CloudWatch の設定 など n Database Instance の復旧 n Cluster に紐付く Database Instance の個数 n Database Instance に紐付く諸々の設定 n アプリケーションエンジニアに引き渡して動作確認

Slide 57

Slide 57 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery PITR: BizReach DBRE グループとしてのアプローチ 必要なオペレーションをコード化 n 最低限の入力で確実に PITR n Restore 元の Cluster ID (Instance ID) n 新しいRDS の Cluster ID (Instance ID) n 戻したい時間

Slide 58

Slide 58 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery PITR: BizReach DBRE グループとしてのアプローチ 普段から定期的に CI/CD で流しておく n オペレーションそのものの信頼性の向上 n 突然の対応にも平常心で臨むための土台作り n 心理的安全性の向上 n Aurora の場合 Copy-On-Write 機能は時間指定をすると使えない n Aurora 5.7系の場合 Backtrack がまだ使えない -> 時間がかかることをあらかじめ知ることができる Make it Visible / No Ops, More Code

Slide 59

Slide 59 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Point In Time Recovery PITR: BizReach DBRE グループとしてのアプローチ 完全に戻すためには この後に Binlog を充てる作業が必要 n SLA/SLO を決めておいて 場合によっては データを切り捨てる判断も重要 n Binlog からの PITR をやりきる為には DBA の経験が不可欠 n サービスの再開に時間がかかる n 更に悪い方向に進んでしまうこともある n 正常に戻せなかった場合のサービス断長期化リスク n Binlog の出力など設定そのものに対する制限 どこまで何をやるべきか、を見定めることをあらかじめ決めておく必要性

Slide 60

Slide 60 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Slow Query Analyze

Slide 61

Slide 61 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Slow Query Analyze Slow Query を分析することはアプリケーションの稼働率を上げる Slow Query が頻発していた場合どこから手をつけていいかわからない n 一番効果があるところから手をつけるためのアクション n Percona 社が提供している pt-query-digest というツールを使ってAnalyze n 対象の Slow Query Log を分析して n 同じ種類のクエリが何回流れているのか n どのテーブルを参照しているのか n 最大の時間や平均時間 などを出してくれる

Slide 62

Slide 62 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. pt-query-digest Output

Slide 63

Slide 63 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. pt-query-digest Output Example 上から順番に対応していくと全体的な効果が高い (対象のLogの中で 48回、合計で 260秒 程度影響を与えている)

Slide 64

Slide 64 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Slow Query Analyze AWS + pt-query-digest CloudWatch / Lambda / S3 との組み合わせ n Slow Query を CloudWatch Logs に出力 n 時間指定や ユーザー指定などをできるようにした上で Slow Query Log を生成 n pt-query-digest を使ってAnalyze RDS Database Slow Query Log を出力 期間/ユーザーなどを 指定 Slow Query Log Analyze Return S3 Path 対象データをCloudWatch から取り出し Put Analyzed File To S3

Slide 65

Slide 65 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Slide 66

Slide 66 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS + BizReach Database Reliability Engineering n 自社の全サービスの Reliability (稼働率)を守る n Database におけるモノゴトを Engineering で解決 n Database を聖域化しすぎない n DBA としての専門的な知識、技術を誰でも使えるようにするために n AWS を活用し Database を安全に操作できる仕組みを開発 n Platform へ昇華させ、各プロダクトへ展開することで事業の成長を支える

Slide 67

Slide 67 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS + BizReach Database Reliability Engineering n 自社の全サービスの Reliability (稼働率)を守る n Database におけるモノゴトを Engineering で解決 n Database を聖域化しすぎない n DBA としての専門的な知識、技術を誰でも使えるようにするために n AWS を活用し Database を安全に操作できる仕組みを開発 n Platform へ昇華させ、各プロダクトへ展開することで事業の成長を支える Database Reliability Engineering というアプローチ

Slide 68

Slide 68 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. We are Hiring! DBRE グループはまだ出来て7ヶ月の組織 やらなければならないこと、やりたいことはたくさんある n 今はまだあるべきものを形にしているだけ n 新しいことにもどんどん手をつけていきたい n 興味がある方はお気軽にご連絡ください! https://hrmos.co/pages/hrmos/jobs/160009210100

Slide 69

Slide 69 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. mysql > SELECT 'questions' FROM you;

Slide 70

Slide 70 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. mysql > SELECT 'questions' FROM you; mysql > SELECT 'Thank you!' FROM me;

Slide 71

Slide 71 text

Thank you! © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. mysql > SELECT * FROM me ¥G *********** 1. row ********** name: 粟田 啓介 nickname: あわっち company: 株式会社 ビズリーチ title: DBRE twitter: @_awache 1 rows in set (0.00 sec)

Slide 72

Slide 72 text

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.