Slide 1

Slide 1 text

DB 暗号化をやれと言われたけど、 Aurora 移行を同時に実現した話 株式会社スタディスト 北野 勝久 Geeks Who Drink in Tokyo -AWS & 神楽坂 Edition-

Slide 2

Slide 2 text

インドのIT企業で2年半ほど働いた後、 スタディストで、SRE らへんの仕事をしています。 すきなヌーラボさんのサービスは、Cacoo です。 北野 勝久 katsuhisa91 https://github.com/katsuhisa91 Katsuhisa Kitano https://www.facebook.com/katsuhisa.kitano.33 @katsuhisa__ https://twitter.com/katsuhisa__ 自己紹介 # GWD_Nulab

Slide 3

Slide 3 text

スタディストという会社からきました。 『Teachme Biz 』というサービスを つくっています。 弊社のゆるキャラ『マロン』 会社紹介 # GWD_Nulab

Slide 4

Slide 4 text

Teachme Biz のデータベースを Aurora へ移行しました (2017/07) # GWD_Nulab

Slide 5

Slide 5 text

# GWD_Nulab

Slide 6

Slide 6 text

# GWD_Nulab

Slide 7

Slide 7 text

めちゃくちゃ参考にさせていただきました。 本当にありがとうございました。 # GWD_Nulab

Slide 8

Slide 8 text

DB 暗号化はともかく、 なぜAurora に移行したのか? # GWD_Nulab

Slide 9

Slide 9 text

Aurora の裏側をいろいろ調べて、 これはすごい!と思ったから。 # GWD_Nulab

Slide 10

Slide 10 text

AWS 史上、最も成長が早いサービス Aurora 概要 # GWD_Nulab

Slide 11

Slide 11 text

「クラウド時代にリレーショナルデータベースを  1から作るとどうなるか」 Aurora 概要 # GWD_Nulab

Slide 12

Slide 12 text

現在のモノリシックなデータベース Aurora 概要 SQL Transactions Caching Logging Storage # GWD_Nulab

Slide 13

Slide 13 text

複数の機能レイヤが1つのセットになっている でも、実は無駄がある場合も・・・ Aurora 概要 SQL Transactions Caching Logging Storage # GWD_Nulab

Slide 14

Slide 14 text

SQL Transactions Caching Logging Storage Aurora 概要 例えば、再起動させる # GWD_Nulab

Slide 15

Slide 15 text

キャッシュが消える Aurora 概要 SQL Transactions Caching Logging Storage # GWD_Nulab

Slide 16

Slide 16 text

Aurora 概要 Master Replication 例えば、Replication を行う Binary log Replica SQL Transactions Caching Logging Storage SQL Transactions Caching Logging Storage # GWD_Nulab

Slide 17

Slide 17 text

SQL Transactions Caching Logging Storage SQL Transactions Caching Logging Storage Aurora 概要 UPDATE, INSERT が遅くなる原因に Master Binary log Replication Replica # GWD_Nulab

Slide 18

Slide 18 text

現在のモノリシックなデータベースは、 1970年代に考案されたものであり、改善余地がある Aurora 概要 SQL Transactions Caching Logging Storage # GWD_Nulab

Slide 19

Slide 19 text

そこで、AWS のエンジニアは、 こう考えた Aurora 概要 SQL Transactions Caching Logging + Storage # GWD_Nulab

Slide 20

Slide 20 text

Aurora 概要 SQL Transactions Caching Logging + Storage データベースプロセスの外に キャッシュを切り離せば、 再起動時にもキャッシュが残る # GWD_Nulab

Slide 21

Slide 21 text

Aurora 概要 SQL Transactions Caching Logging + Storage データベースエンジンから、 Logging + Storage を切り離す # GWD_Nulab

Slide 22

Slide 22 text

# GWD_Nulab SQL Transactions Caching SQL Transactions Caching Logging + Storage Master Replica Aurora 概要 Replication は、 メタ情報だけでOK 高速Replication (※) かつMaster 負担減 ※ 数十ミリ秒程度 メタ情報 データ書き込んだで 参照 書き込み

Slide 23

Slide 23 text

Aurora 概要 その結果、 ● 検証条件によっては、従来のMySQL より5倍高速 ● 可用性が大幅に向上 ● 超高速フェイルオーバー などを実現 他にも色々な側面で再考されたリレーショナルデータベース # GWD_Nulab

Slide 24

Slide 24 text

詳しくは、以下2つの資料がオススメです。 ● Amazon Web Services Japan が公開しているPDF ( https://aws-ref.s3.amazonaws.com/aurora/Amazon+Aurora.pdf ) ● ACMのジャーナルに公開されている論文 『Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases』 ( http://dl.acm.org/citation.cfm?id=3056101 ) Aurora 概要 # GWD_Nulab

Slide 25

Slide 25 text

Aurora すごい。 お客さんに絶対良い価値提供ができる。 でも、移行どうしよう。 # GWD_Nulab

Slide 26

Slide 26 text

移行準備 非技術面の確認 ● (移行時に停止する場合) メンテナンスに関する他部門との連携 ● 検証コストや、移行後の費用感を整理 ➪ RDS for MySQL から同等スペックに移行すると少し高くなる # GWD_Nulab

Slide 27

Slide 27 text

移行準備 技術面の確認 MySQL ⇨ Aurora 移行で、最低限注意しないといけないこと 1. 現行のMySQL のバージョンは? 2. ストレージエンジンは?MyISAM?InnoDB? # GWD_Nulab

Slide 28

Slide 28 text

移行準備 技術面の確認 1. 現行のMySQLのバージョンは? Aurora は、MySQL 5.6 互換。 もし、他バージョンを使用しているなら、 事前にMySQL 5.6 に移行しておくと安心 # GWD_Nulab

Slide 29

Slide 29 text

移行準備 技術面の確認 2. ストレージエンジンは?MyISAM?InnoDB? Aurora は、InnoDB のみ対応。 移行時に勝手に変換してくれますが、 事前に手動変換しておくと安心 # GWD_Nulab

Slide 30

Slide 30 text

移行準備もいろいろやった。 お金の面も、技術的な面も大丈夫そう。 あとは当日の計画・・・ # GWD_Nulab

Slide 31

Slide 31 text

移行計画 前提 「サービス停止して移行するの?」 # GWD_Nulab

Slide 32

Slide 32 text

移行計画 考慮すべきポイント ● 夜間時間帯の利用者数 ● 停止すると大きな損害が発生するサービス? ● そのシステムは、本当にライブマイグレーションできるのか? ○ アプリケーションのことちゃんと把握できてる? AWS の人は、Aurora へのマイグレーション時には、 アプリケーション停止をBestPractice として記載。 ( https://www.slideshare.net/AmazonWebServices/aws-webcast-31636793 ) # GWD_Nulab

Slide 33

Slide 33 text

移行計画 今回のうちのケースでは、 DB 暗号化を実現したかったので、 移行シナリオ全体のどこかで、 スナップショットからの復元が必須でした。 なので、サービス停止移行しました。 # GWD_Nulab

Slide 34

Slide 34 text

うちの計画の超大枠 メンテナンス開始 アプリケーション停止&DB への書き込み停止確認 スナップショット取得 Aurora master , Aurora Replica 作成 ← DB 暗号化を実施 パラメータ&セキュリティグループ付け替え DB エンドポイント切り替え DB プレウォーミング アプリ起動&簡易検証 メンテナンス終了 移行計画 サービス 停止時間 # GWD_Nulab

Slide 35

Slide 35 text

移行当日 あとは準備した通りやるだけ。 # GWD_Nulab

Slide 36

Slide 36 text

DB 移行前 DB 移行後 移行後の状態 大半の処理がかなり早くなりました。 ※ちなみに、ACM に公開されている Aurora の論文でも、性能測定には NewRelic を使用していました # GWD_Nulab

Slide 37

Slide 37 text

まとめ ● DB 暗号化をやれ、と言われていたけど、 同時にAurora 移行を実施した ● 技術的な面で言えば、MySQL 5.6 , InnoDB を使用していれば、 移行のハードルはほぼ0 ● 移行して、性能よくなった # GWD_Nulab

Slide 38

Slide 38 text

# GWD_Nulab

Slide 39

Slide 39 text

弊社では、先月発表されたばかりの R4 インスタンスに今月中に移行します。 (検証環境は移行済み) # GWD_Nulab

Slide 40

Slide 40 text

新しいAWS サービスをがんがんつかって 開発したいエンジニアを募集しています。 We are hiring!!! # GWD_Nulab

Slide 41

Slide 41 text

We are hiring!!! # GWD_Nulab

Slide 42

Slide 42 text

スタディストのオフィスは、神保町です!!! ヌーラボさん、これからよろしくおねがいします。 さいごに # GWD_Nulab

Slide 43

Slide 43 text

ご清聴ありがとうございました! 採用にご興味ある方は、 お気軽にご連絡ください! 北野 勝久 [email protected]