RDSのレプリカが便利過ぎて涙が出た話

0cbace11fbbbd1f73c344b9243531160?s=47 21ma
January 16, 2019

 RDSのレプリカが便利過ぎて涙が出た話

発表イベント:テクテクテック #7 DB勉強会(新機能や運営でのあれこれ)
2019/01/16
で発表した LT 資料です。
https://spookies.connpass.com/event/104684/

0cbace11fbbbd1f73c344b9243531160?s=128

21ma

January 16, 2019
Tweet

Transcript

  1. 1 / 13 RDSのレプリカが便利過ぎて涙が出た話 [ 京都] テクテクテック #7 DB勉強会(新機能や運営でのあれこれ) 2019/1/16

    LT発表 @21ma
  2. 2 / 13 自己紹介 西村匡司(@21ma) 株式会社スプーキーズ 創業メンバー 経理兼総務兼ソフトウェアエンジニア テクテクテック運営者

  3. 3 / 13 キャンペーンサイトを構築することになった 年末年始向けのとあるキャンペーンサイト ユーザ投稿による画像生成有り

  4. 4 / 13 アーキテクチャ Nginx( 1.12) FuelPHP( PHP7.2) Flask( Python3.6)

    pillow: 画像生成 MySQL( 5.6.40) テーブル数: 6
  5. 5 / 13 サーバ構成(AWS) EC2 RDS MySQL Elasticache memcached S3

  6. 6 / 13 求められる性能 500req/s

  7. 7 / 13 本番直前の負荷対策中 「RDS のCPU が100% で張り付いて、スケールアウトしないです」 な、なんだって!! たかだか1テーブルの参照にそんなにかかるのか?!

    必要ないと思ってたけど、スレーブ構成を検討。
  8. 8 / 13 今までやってたスレーブ構成準備 1. スレーブ用mysqlサーバ準備 2. my.cnfでレプリケーション設定(server‑id, log‑bin, relay‑log等設定)

    3. mysql再起動 4. master statusでPositionを記録 5. dumpデータ作成 6. スレーブにdumpデータインポート 7. スレーブにPositionを設定 8. スレーブ開始 あーめんどくさい
  9. 9 / 13 RDSのレプリカ機能 これ押してちょっと設定するだけ。設定10秒。インスタンス作成5分くらい インスタンス作成がもう少し早ければなー・・

  10. 10 / 13 2つ目も3つ目も簡単 同じ操作を繰り返すだけ。

  11. 11 / 13 消すときも、ボタン一つ。

  12. 12 / 13 お陰様で 500req/s 達成 わーい!! (他にも、S3画像転送速度、memcachedエラー等いろいろありましたが・・。それはま たー別のお話。)

  13. 13 / 13 まとめ 便利そうだなーとは思っていたけど、本番反映直前の時間が無いときにこの簡易さは神だ った。 EC2借りてその中にMySQL手動でインストールなんてしないでRDSですよー。 (高いけど) 今年はAWS使いこなすぞー!