DB 暗号化をやれと言われたけど、Aurora 移行を同時に実現した話

C0479b152c326746e911be790617f75b?s=47 katsuhisa_
November 10, 2017

DB 暗号化をやれと言われたけど、Aurora 移行を同時に実現した話

ヌーラボさんのAWS 勉強会でLT した資料です。
Geeks Who Drink in Tokyo -AWS & 神楽坂 Edition-
https://nulab.connpass.com/event/70479/

C0479b152c326746e911be790617f75b?s=128

katsuhisa_

November 10, 2017
Tweet

Transcript

  1. DB 暗号化をやれと言われたけど、 Aurora 移行を同時に実現した話 株式会社スタディスト 北野 勝久 Geeks Who Drink

    in Tokyo -AWS & 神楽坂 Edition-
  2. インドの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
  3. スタディストという会社からきました。 『Teachme Biz 』というサービスを つくっています。 弊社のゆるキャラ『マロン』 会社紹介 # GWD_Nulab

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

  5. # GWD_Nulab

  6. # GWD_Nulab

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

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

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

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

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

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

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

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

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

  16. Aurora 概要 Master Replication 例えば、Replication を行う Binary log Replica SQL

    Transactions Caching Logging Storage SQL Transactions Caching Logging Storage # GWD_Nulab
  17. SQL Transactions Caching Logging Storage SQL Transactions Caching Logging Storage

    Aurora 概要 UPDATE, INSERT が遅くなる原因に Master Binary log Replication Replica # GWD_Nulab
  18. 現在のモノリシックなデータベースは、 1970年代に考案されたものであり、改善余地がある Aurora 概要 SQL Transactions Caching Logging Storage #

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

    Storage # GWD_Nulab
  20. Aurora 概要 SQL Transactions Caching Logging + Storage データベースプロセスの外に キャッシュを切り離せば、

    再起動時にもキャッシュが残る # GWD_Nulab
  21. Aurora 概要 SQL Transactions Caching Logging + Storage データベースエンジンから、 Logging

    + Storage を切り離す # GWD_Nulab
  22. # GWD_Nulab SQL Transactions Caching SQL Transactions Caching Logging +

    Storage Master Replica Aurora 概要 Replication は、 メタ情報だけでOK 高速Replication (※) かつMaster 負担減 ※ 数十ミリ秒程度 メタ情報 データ書き込んだで 参照 書き込み
  23. Aurora 概要 その結果、 • 検証条件によっては、従来のMySQL より5倍高速 • 可用性が大幅に向上 • 超高速フェイルオーバー

    などを実現 他にも色々な側面で再考されたリレーショナルデータベース # GWD_Nulab
  24. 詳しくは、以下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
  25. Aurora すごい。 お客さんに絶対良い価値提供ができる。 でも、移行どうしよう。 # GWD_Nulab

  26. 移行準備 非技術面の確認 • (移行時に停止する場合) メンテナンスに関する他部門との連携 • 検証コストや、移行後の費用感を整理 ➪ RDS for MySQL

    から同等スペックに移行すると少し高くなる # GWD_Nulab
  27. 移行準備 技術面の確認 MySQL ⇨ Aurora 移行で、最低限注意しないといけないこと 1. 現行のMySQL のバージョンは? 2. ストレージエンジンは?MyISAM?InnoDB?

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

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

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

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

  32. 移行計画 考慮すべきポイント • 夜間時間帯の利用者数 • 停止すると大きな損害が発生するサービス? • そのシステムは、本当にライブマイグレーションできるのか? ◦ アプリケーションのことちゃんと把握できてる?

    AWS の人は、Aurora へのマイグレーション時には、 アプリケーション停止をBestPractice として記載。 ( https://www.slideshare.net/AmazonWebServices/aws-webcast-31636793 ) # GWD_Nulab
  33. 移行計画 今回のうちのケースでは、 DB 暗号化を実現したかったので、 移行シナリオ全体のどこかで、 スナップショットからの復元が必須でした。 なので、サービス停止移行しました。 # GWD_Nulab

  34. うちの計画の超大枠 メンテナンス開始 アプリケーション停止&DB への書き込み停止確認 スナップショット取得 Aurora master , Aurora Replica

    作成 ← DB 暗号化を実施 パラメータ&セキュリティグループ付け替え DB エンドポイント切り替え DB プレウォーミング アプリ起動&簡易検証 メンテナンス終了 移行計画 サービス 停止時間 # GWD_Nulab
  35. 移行当日 あとは準備した通りやるだけ。 # GWD_Nulab

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

    NewRelic を使用していました # GWD_Nulab
  37. まとめ • DB 暗号化をやれ、と言われていたけど、 同時にAurora 移行を実施した • 技術的な面で言えば、MySQL 5.6 ,

    InnoDB を使用していれば、 移行のハードルはほぼ0 • 移行して、性能よくなった # GWD_Nulab
  38. # GWD_Nulab

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

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

  41. We are hiring!!! # GWD_Nulab

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

  43. ご清聴ありがとうございました! 採用にご興味ある方は、 お気軽にご連絡ください! 北野 勝久 katsuhisa.kitano@studist.jp